#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Jmat.Real.erfi, branch x less than or equal to 0.5";

double f_if(float x) {
        float r30744 = 1;
        float r30745 = atan2(1.0, 0.0);
        float r30746 = sqrt(r30745);
        float r30747 = r30744 / r30746;
        float r30748 = 2;
        float r30749 = x;
        float r30750 = fabs(r30749);
        float r30751 = r30748 * r30750;
        float r30752 = 3;
        float r30753 = r30748 / r30752;
        float r30754 = r30750 * r30750;
        float r30755 = r30754 * r30750;
        float r30756 = r30753 * r30755;
        float r30757 = r30751 + r30756;
        float r30758 = 5;
        float r30759 = r30744 / r30758;
        float r30760 = r30755 * r30750;
        float r30761 = r30760 * r30750;
        float r30762 = r30759 * r30761;
        float r30763 = r30757 + r30762;
        float r30764 = 21;
        float r30765 = r30744 / r30764;
        float r30766 = r30761 * r30750;
        float r30767 = r30766 * r30750;
        float r30768 = r30765 * r30767;
        float r30769 = r30763 + r30768;
        float r30770 = r30747 * r30769;
        float r30771 = fabs(r30770);
        return r30771;
}

double f_id(double x) {
        double r30772 = 1;
        double r30773 = atan2(1.0, 0.0);
        double r30774 = sqrt(r30773);
        double r30775 = r30772 / r30774;
        double r30776 = 2;
        double r30777 = x;
        double r30778 = fabs(r30777);
        double r30779 = r30776 * r30778;
        double r30780 = 3;
        double r30781 = r30776 / r30780;
        double r30782 = r30778 * r30778;
        double r30783 = r30782 * r30778;
        double r30784 = r30781 * r30783;
        double r30785 = r30779 + r30784;
        double r30786 = 5;
        double r30787 = r30772 / r30786;
        double r30788 = r30783 * r30778;
        double r30789 = r30788 * r30778;
        double r30790 = r30787 * r30789;
        double r30791 = r30785 + r30790;
        double r30792 = 21;
        double r30793 = r30772 / r30792;
        double r30794 = r30789 * r30778;
        double r30795 = r30794 * r30778;
        double r30796 = r30793 * r30795;
        double r30797 = r30791 + r30796;
        double r30798 = r30775 * r30797;
        double r30799 = fabs(r30798);
        return r30799;
}


double f_of(float x) {
        float r30800 = 2/3;
        float r30801 = x;
        float r30802 = fabs(r30801);
        float r30803 = 3;
        float r30804 = pow(r30802, r30803);
        float r30805 = r30800 * r30804;
        float r30806 = 2;
        float r30807 = r30806 * r30802;
        float r30808 = 1/21;
        float r30809 = 7;
        float r30810 = pow(r30802, r30809);
        float r30811 = r30808 * r30810;
        float r30812 = 1/5;
        float r30813 = 5;
        float r30814 = pow(r30802, r30813);
        float r30815 = r30812 * r30814;
        float r30816 = r30811 + r30815;
        float r30817 = r30807 + r30816;
        float r30818 = r30805 + r30817;
        float r30819 = 1;
        float r30820 = atan2(1.0, 0.0);
        float r30821 = r30819 / r30820;
        float r30822 = sqrt(r30821);
        float r30823 = r30818 * r30822;
        float r30824 = fabs(r30823);
        return r30824;
}

double f_od(double x) {
        double r30825 = 2/3;
        double r30826 = x;
        double r30827 = fabs(r30826);
        double r30828 = 3;
        double r30829 = pow(r30827, r30828);
        double r30830 = r30825 * r30829;
        double r30831 = 2;
        double r30832 = r30831 * r30827;
        double r30833 = 1/21;
        double r30834 = 7;
        double r30835 = pow(r30827, r30834);
        double r30836 = r30833 * r30835;
        double r30837 = 1/5;
        double r30838 = 5;
        double r30839 = pow(r30827, r30838);
        double r30840 = r30837 * r30839;
        double r30841 = r30836 + r30840;
        double r30842 = r30832 + r30841;
        double r30843 = r30830 + r30842;
        double r30844 = 1;
        double r30845 = atan2(1.0, 0.0);
        double r30846 = r30844 / r30845;
        double r30847 = sqrt(r30846);
        double r30848 = r30843 * r30847;
        double r30849 = fabs(r30848);
        return r30849;
}

void mpfr_fmod2(mpfr_t r, mpfr_t n, mpfr_t d, mpfr_rnd_t rmd) {
        mpfr_fmod(r, n, d, rmd);
        if (mpfr_cmp_ui(r, 0) < 0) mpfr_add(r, r, d, rmd);
}


static mpfr_t r30850, r30851, r30852, r30853, r30854, r30855, r30856, r30857, r30858, r30859, r30860, r30861, r30862, r30863, r30864, r30865, r30866, r30867, r30868, r30869, r30870, r30871, r30872, r30873, r30874, r30875, r30876, r30877;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30850, "1", 10, MPFR_RNDN);
        mpfr_init(r30851);
        mpfr_init(r30852);
        mpfr_init(r30853);
        mpfr_init_set_str(r30854, "2", 10, MPFR_RNDN);
        mpfr_init(r30855);
        mpfr_init(r30856);
        mpfr_init(r30857);
        mpfr_init_set_str(r30858, "3", 10, MPFR_RNDN);
        mpfr_init(r30859);
        mpfr_init(r30860);
        mpfr_init(r30861);
        mpfr_init(r30862);
        mpfr_init(r30863);
        mpfr_init_set_str(r30864, "5", 10, MPFR_RNDN);
        mpfr_init(r30865);
        mpfr_init(r30866);
        mpfr_init(r30867);
        mpfr_init(r30868);
        mpfr_init(r30869);
        mpfr_init_set_str(r30870, "21", 10, MPFR_RNDN);
        mpfr_init(r30871);
        mpfr_init(r30872);
        mpfr_init(r30873);
        mpfr_init(r30874);
        mpfr_init(r30875);
        mpfr_init(r30876);
        mpfr_init(r30877);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30851, MPFR_RNDN);
        mpfr_sqrt(r30852, r30851, MPFR_RNDN);
        mpfr_div(r30853, r30850, r30852, MPFR_RNDN);
        ;
        mpfr_set_d(r30855, x, MPFR_RNDN);
        mpfr_abs(r30856, r30855, MPFR_RNDN);
        mpfr_mul(r30857, r30854, r30856, MPFR_RNDN);
        ;
        mpfr_div(r30859, r30854, r30858, MPFR_RNDN);
        mpfr_mul(r30860, r30856, r30856, MPFR_RNDN);
        mpfr_mul(r30861, r30860, r30856, MPFR_RNDN);
        mpfr_mul(r30862, r30859, r30861, MPFR_RNDN);
        mpfr_add(r30863, r30857, r30862, MPFR_RNDN);
        ;
        mpfr_div(r30865, r30850, r30864, MPFR_RNDN);
        mpfr_mul(r30866, r30861, r30856, MPFR_RNDN);
        mpfr_mul(r30867, r30866, r30856, MPFR_RNDN);
        mpfr_mul(r30868, r30865, r30867, MPFR_RNDN);
        mpfr_add(r30869, r30863, r30868, MPFR_RNDN);
        ;
        mpfr_div(r30871, r30850, r30870, MPFR_RNDN);
        mpfr_mul(r30872, r30867, r30856, MPFR_RNDN);
        mpfr_mul(r30873, r30872, r30856, MPFR_RNDN);
        mpfr_mul(r30874, r30871, r30873, MPFR_RNDN);
        mpfr_add(r30875, r30869, r30874, MPFR_RNDN);
        mpfr_mul(r30876, r30853, r30875, MPFR_RNDN);
        mpfr_abs(r30877, r30876, MPFR_RNDN);
        return mpfr_get_d(r30877, MPFR_RNDN);
}

static mpfr_t r30878, r30879, r30880, r30881, r30882, r30883, r30884, r30885, r30886, r30887, r30888, r30889, r30890, r30891, r30892, r30893, r30894, r30895, r30896, r30897, r30898, r30899, r30900, r30901, r30902;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30878, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30879);
        mpfr_init(r30880);
        mpfr_init_set_str(r30881, "3", 10, MPFR_RNDN);
        mpfr_init(r30882);
        mpfr_init(r30883);
        mpfr_init_set_str(r30884, "2", 10, MPFR_RNDN);
        mpfr_init(r30885);
        mpfr_init_set_str(r30886, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30887, "7", 10, MPFR_RNDN);
        mpfr_init(r30888);
        mpfr_init(r30889);
        mpfr_init_set_str(r30890, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30891, "5", 10, MPFR_RNDN);
        mpfr_init(r30892);
        mpfr_init(r30893);
        mpfr_init(r30894);
        mpfr_init(r30895);
        mpfr_init(r30896);
        mpfr_init_set_str(r30897, "1", 10, MPFR_RNDN);
        mpfr_init(r30898);
        mpfr_init(r30899);
        mpfr_init(r30900);
        mpfr_init(r30901);
        mpfr_init(r30902);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r30879, x, MPFR_RNDN);
        mpfr_abs(r30880, r30879, MPFR_RNDN);
        ;
        mpfr_pow(r30882, r30880, r30881, MPFR_RNDN);
        mpfr_mul(r30883, r30878, r30882, MPFR_RNDN);
        ;
        mpfr_mul(r30885, r30884, r30880, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30888, r30880, r30887, MPFR_RNDN);
        mpfr_mul(r30889, r30886, r30888, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30892, r30880, r30891, MPFR_RNDN);
        mpfr_mul(r30893, r30890, r30892, MPFR_RNDN);
        mpfr_add(r30894, r30889, r30893, MPFR_RNDN);
        mpfr_add(r30895, r30885, r30894, MPFR_RNDN);
        mpfr_add(r30896, r30883, r30895, MPFR_RNDN);
        ;
        mpfr_const_pi(r30898, MPFR_RNDN);
        mpfr_div(r30899, r30897, r30898, MPFR_RNDN);
        mpfr_sqrt(r30900, r30899, MPFR_RNDN);
        mpfr_mul(r30901, r30896, r30900, MPFR_RNDN);
        mpfr_abs(r30902, r30901, MPFR_RNDN);
        return mpfr_get_d(r30902, MPFR_RNDN);
}

static mpfr_t r30903, r30904, r30905, r30906, r30907, r30908, r30909, r30910, r30911, r30912, r30913, r30914, r30915, r30916, r30917, r30918, r30919, r30920, r30921, r30922, r30923, r30924, r30925, r30926, r30927;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30903, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30904);
        mpfr_init(r30905);
        mpfr_init_set_str(r30906, "3", 10, MPFR_RNDN);
        mpfr_init(r30907);
        mpfr_init(r30908);
        mpfr_init_set_str(r30909, "2", 10, MPFR_RNDN);
        mpfr_init(r30910);
        mpfr_init_set_str(r30911, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30912, "7", 10, MPFR_RNDN);
        mpfr_init(r30913);
        mpfr_init(r30914);
        mpfr_init_set_str(r30915, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30916, "5", 10, MPFR_RNDN);
        mpfr_init(r30917);
        mpfr_init(r30918);
        mpfr_init(r30919);
        mpfr_init(r30920);
        mpfr_init(r30921);
        mpfr_init_set_str(r30922, "1", 10, MPFR_RNDN);
        mpfr_init(r30923);
        mpfr_init(r30924);
        mpfr_init(r30925);
        mpfr_init(r30926);
        mpfr_init(r30927);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r30904, x, MPFR_RNDN);
        mpfr_abs(r30905, r30904, MPFR_RNDN);
        ;
        mpfr_pow(r30907, r30905, r30906, MPFR_RNDN);
        mpfr_mul(r30908, r30903, r30907, MPFR_RNDN);
        ;
        mpfr_mul(r30910, r30909, r30905, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30913, r30905, r30912, MPFR_RNDN);
        mpfr_mul(r30914, r30911, r30913, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30917, r30905, r30916, MPFR_RNDN);
        mpfr_mul(r30918, r30915, r30917, MPFR_RNDN);
        mpfr_add(r30919, r30914, r30918, MPFR_RNDN);
        mpfr_add(r30920, r30910, r30919, MPFR_RNDN);
        mpfr_add(r30921, r30908, r30920, MPFR_RNDN);
        ;
        mpfr_const_pi(r30923, MPFR_RNDN);
        mpfr_div(r30924, r30922, r30923, MPFR_RNDN);
        mpfr_sqrt(r30925, r30924, MPFR_RNDN);
        mpfr_mul(r30926, r30921, r30925, MPFR_RNDN);
        mpfr_abs(r30927, r30926, MPFR_RNDN);
        return mpfr_get_d(r30927, MPFR_RNDN);
}

