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

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

double f_if(float x) {
        float r30691 = 1;
        float r30692 = atan2(1.0, 0.0);
        float r30693 = sqrt(r30692);
        float r30694 = r30691 / r30693;
        float r30695 = x;
        float r30696 = fabs(r30695);
        float r30697 = r30696 * r30696;
        float r30698 = exp(r30697);
        float r30699 = r30694 * r30698;
        float r30700 = r30691 / r30696;
        float r30701 = 2;
        float r30702 = r30691 / r30701;
        float r30703 = r30700 * r30700;
        float r30704 = r30703 * r30700;
        float r30705 = r30702 * r30704;
        float r30706 = r30700 + r30705;
        float r30707 = 3;
        float r30708 = 4;
        float r30709 = r30707 / r30708;
        float r30710 = r30704 * r30700;
        float r30711 = r30710 * r30700;
        float r30712 = r30709 * r30711;
        float r30713 = r30706 + r30712;
        float r30714 = 15;
        float r30715 = 8;
        float r30716 = r30714 / r30715;
        float r30717 = r30711 * r30700;
        float r30718 = r30717 * r30700;
        float r30719 = r30716 * r30718;
        float r30720 = r30713 + r30719;
        float r30721 = r30699 * r30720;
        return r30721;
}

double f_id(double x) {
        double r30722 = 1;
        double r30723 = atan2(1.0, 0.0);
        double r30724 = sqrt(r30723);
        double r30725 = r30722 / r30724;
        double r30726 = x;
        double r30727 = fabs(r30726);
        double r30728 = r30727 * r30727;
        double r30729 = exp(r30728);
        double r30730 = r30725 * r30729;
        double r30731 = r30722 / r30727;
        double r30732 = 2;
        double r30733 = r30722 / r30732;
        double r30734 = r30731 * r30731;
        double r30735 = r30734 * r30731;
        double r30736 = r30733 * r30735;
        double r30737 = r30731 + r30736;
        double r30738 = 3;
        double r30739 = 4;
        double r30740 = r30738 / r30739;
        double r30741 = r30735 * r30731;
        double r30742 = r30741 * r30731;
        double r30743 = r30740 * r30742;
        double r30744 = r30737 + r30743;
        double r30745 = 15;
        double r30746 = 8;
        double r30747 = r30745 / r30746;
        double r30748 = r30742 * r30731;
        double r30749 = r30748 * r30731;
        double r30750 = r30747 * r30749;
        double r30751 = r30744 + r30750;
        double r30752 = r30730 * r30751;
        return r30752;
}


double f_of(float x) {
        float r30753 = x;
        float r30754 = fabs(r30753);
        float r30755 = r30754 * r30754;
        float r30756 = exp(r30755);
        float r30757 = atan2(1.0, 0.0);
        float r30758 = sqrt(r30757);
        float r30759 = r30756 / r30758;
        float r30760 = 3;
        float r30761 = 4;
        float r30762 = r30760 / r30761;
        float r30763 = r30762 / r30754;
        float r30764 = r30763 / r30755;
        float r30765 = r30764 / r30755;
        float r30766 = 15;
        float r30767 = 8;
        float r30768 = r30766 / r30767;
        float r30769 = r30768 / r30754;
        float r30770 = pow(r30754, r30760);
        float r30771 = r30770 * r30770;
        float r30772 = r30769 / r30771;
        float r30773 = 1;
        float r30774 = r30773 / r30754;
        float r30775 = 2;
        float r30776 = r30773 / r30775;
        float r30777 = r30776 / r30754;
        float r30778 = r30777 / r30755;
        float r30779 = r30774 + r30778;
        float r30780 = r30772 + r30779;
        float r30781 = r30765 + r30780;
        float r30782 = r30759 * r30781;
        return r30782;
}

double f_od(double x) {
        double r30783 = x;
        double r30784 = fabs(r30783);
        double r30785 = r30784 * r30784;
        double r30786 = exp(r30785);
        double r30787 = atan2(1.0, 0.0);
        double r30788 = sqrt(r30787);
        double r30789 = r30786 / r30788;
        double r30790 = 3;
        double r30791 = 4;
        double r30792 = r30790 / r30791;
        double r30793 = r30792 / r30784;
        double r30794 = r30793 / r30785;
        double r30795 = r30794 / r30785;
        double r30796 = 15;
        double r30797 = 8;
        double r30798 = r30796 / r30797;
        double r30799 = r30798 / r30784;
        double r30800 = pow(r30784, r30790);
        double r30801 = r30800 * r30800;
        double r30802 = r30799 / r30801;
        double r30803 = 1;
        double r30804 = r30803 / r30784;
        double r30805 = 2;
        double r30806 = r30803 / r30805;
        double r30807 = r30806 / r30784;
        double r30808 = r30807 / r30785;
        double r30809 = r30804 + r30808;
        double r30810 = r30802 + r30809;
        double r30811 = r30795 + r30810;
        double r30812 = r30789 * r30811;
        return r30812;
}

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 r30813, r30814, r30815, r30816, r30817, r30818, r30819, r30820, r30821, r30822, r30823, r30824, r30825, r30826, r30827, r30828, r30829, r30830, r30831, r30832, r30833, r30834, r30835, r30836, r30837, r30838, r30839, r30840, r30841, r30842, r30843;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30813, "1", 10, MPFR_RNDN);
        mpfr_init(r30814);
        mpfr_init(r30815);
        mpfr_init(r30816);
        mpfr_init(r30817);
        mpfr_init(r30818);
        mpfr_init(r30819);
        mpfr_init(r30820);
        mpfr_init(r30821);
        mpfr_init(r30822);
        mpfr_init_set_str(r30823, "2", 10, MPFR_RNDN);
        mpfr_init(r30824);
        mpfr_init(r30825);
        mpfr_init(r30826);
        mpfr_init(r30827);
        mpfr_init(r30828);
        mpfr_init_set_str(r30829, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r30830, "4", 10, MPFR_RNDN);
        mpfr_init(r30831);
        mpfr_init(r30832);
        mpfr_init(r30833);
        mpfr_init(r30834);
        mpfr_init(r30835);
        mpfr_init_set_str(r30836, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30837, "8", 10, MPFR_RNDN);
        mpfr_init(r30838);
        mpfr_init(r30839);
        mpfr_init(r30840);
        mpfr_init(r30841);
        mpfr_init(r30842);
        mpfr_init(r30843);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30814, MPFR_RNDN);
        mpfr_sqrt(r30815, r30814, MPFR_RNDN);
        mpfr_div(r30816, r30813, r30815, MPFR_RNDN);
        mpfr_set_d(r30817, x, MPFR_RNDN);
        mpfr_abs(r30818, r30817, MPFR_RNDN);
        mpfr_mul(r30819, r30818, r30818, MPFR_RNDN);
        mpfr_exp(r30820, r30819, MPFR_RNDN);
        mpfr_mul(r30821, r30816, r30820, MPFR_RNDN);
        mpfr_div(r30822, r30813, r30818, MPFR_RNDN);
        ;
        mpfr_div(r30824, r30813, r30823, MPFR_RNDN);
        mpfr_mul(r30825, r30822, r30822, MPFR_RNDN);
        mpfr_mul(r30826, r30825, r30822, MPFR_RNDN);
        mpfr_mul(r30827, r30824, r30826, MPFR_RNDN);
        mpfr_add(r30828, r30822, r30827, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30831, r30829, r30830, MPFR_RNDN);
        mpfr_mul(r30832, r30826, r30822, MPFR_RNDN);
        mpfr_mul(r30833, r30832, r30822, MPFR_RNDN);
        mpfr_mul(r30834, r30831, r30833, MPFR_RNDN);
        mpfr_add(r30835, r30828, r30834, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30838, r30836, r30837, MPFR_RNDN);
        mpfr_mul(r30839, r30833, r30822, MPFR_RNDN);
        mpfr_mul(r30840, r30839, r30822, MPFR_RNDN);
        mpfr_mul(r30841, r30838, r30840, MPFR_RNDN);
        mpfr_add(r30842, r30835, r30841, MPFR_RNDN);
        mpfr_mul(r30843, r30821, r30842, MPFR_RNDN);
        return mpfr_get_d(r30843, MPFR_RNDN);
}

static mpfr_t r30844, r30845, r30846, r30847, r30848, r30849, r30850, r30851, r30852, r30853, r30854, r30855, r30856, r30857, r30858, r30859, r30860, r30861, r30862, r30863, r30864, r30865, r30866, r30867, r30868, r30869, r30870, r30871, r30872, r30873;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r30844);
        mpfr_init(r30845);
        mpfr_init(r30846);
        mpfr_init(r30847);
        mpfr_init(r30848);
        mpfr_init(r30849);
        mpfr_init(r30850);
        mpfr_init_set_str(r30851, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r30852, "4", 10, MPFR_RNDN);
        mpfr_init(r30853);
        mpfr_init(r30854);
        mpfr_init(r30855);
        mpfr_init(r30856);
        mpfr_init_set_str(r30857, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30858, "8", 10, MPFR_RNDN);
        mpfr_init(r30859);
        mpfr_init(r30860);
        mpfr_init(r30861);
        mpfr_init(r30862);
        mpfr_init(r30863);
        mpfr_init_set_str(r30864, "1", 10, MPFR_RNDN);
        mpfr_init(r30865);
        mpfr_init_set_str(r30866, "2", 10, MPFR_RNDN);
        mpfr_init(r30867);
        mpfr_init(r30868);
        mpfr_init(r30869);
        mpfr_init(r30870);
        mpfr_init(r30871);
        mpfr_init(r30872);
        mpfr_init(r30873);
}

double f_fm(double x) {
        mpfr_set_d(r30844, x, MPFR_RNDN);
        mpfr_abs(r30845, r30844, MPFR_RNDN);
        mpfr_mul(r30846, r30845, r30845, MPFR_RNDN);
        mpfr_exp(r30847, r30846, MPFR_RNDN);
        mpfr_const_pi(r30848, MPFR_RNDN);
        mpfr_sqrt(r30849, r30848, MPFR_RNDN);
        mpfr_div(r30850, r30847, r30849, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30853, r30851, r30852, MPFR_RNDN);
        mpfr_div(r30854, r30853, r30845, MPFR_RNDN);
        mpfr_div(r30855, r30854, r30846, MPFR_RNDN);
        mpfr_div(r30856, r30855, r30846, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30859, r30857, r30858, MPFR_RNDN);
        mpfr_div(r30860, r30859, r30845, MPFR_RNDN);
        mpfr_pow(r30861, r30845, r30851, MPFR_RNDN);
        mpfr_mul(r30862, r30861, r30861, MPFR_RNDN);
        mpfr_div(r30863, r30860, r30862, MPFR_RNDN);
        ;
        mpfr_div(r30865, r30864, r30845, MPFR_RNDN);
        ;
        mpfr_div(r30867, r30864, r30866, MPFR_RNDN);
        mpfr_div(r30868, r30867, r30845, MPFR_RNDN);
        mpfr_div(r30869, r30868, r30846, MPFR_RNDN);
        mpfr_add(r30870, r30865, r30869, MPFR_RNDN);
        mpfr_add(r30871, r30863, r30870, MPFR_RNDN);
        mpfr_add(r30872, r30856, r30871, MPFR_RNDN);
        mpfr_mul(r30873, r30850, r30872, MPFR_RNDN);
        return mpfr_get_d(r30873, MPFR_RNDN);
}

static mpfr_t r30874, r30875, r30876, r30877, 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, r30903;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r30874);
        mpfr_init(r30875);
        mpfr_init(r30876);
        mpfr_init(r30877);
        mpfr_init(r30878);
        mpfr_init(r30879);
        mpfr_init(r30880);
        mpfr_init_set_str(r30881, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r30882, "4", 10, MPFR_RNDN);
        mpfr_init(r30883);
        mpfr_init(r30884);
        mpfr_init(r30885);
        mpfr_init(r30886);
        mpfr_init_set_str(r30887, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30888, "8", 10, MPFR_RNDN);
        mpfr_init(r30889);
        mpfr_init(r30890);
        mpfr_init(r30891);
        mpfr_init(r30892);
        mpfr_init(r30893);
        mpfr_init_set_str(r30894, "1", 10, MPFR_RNDN);
        mpfr_init(r30895);
        mpfr_init_set_str(r30896, "2", 10, MPFR_RNDN);
        mpfr_init(r30897);
        mpfr_init(r30898);
        mpfr_init(r30899);
        mpfr_init(r30900);
        mpfr_init(r30901);
        mpfr_init(r30902);
        mpfr_init(r30903);
}

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

