#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 r18836 = 1.0f;
        float r18837 = atan2(1.0, 0.0);
        float r18838 = sqrt(r18837);
        float r18839 = r18836 / r18838;
        float r18840 = x;
        float r18841 = fabs(r18840);
        float r18842 = r18841 * r18841;
        float r18843 = exp(r18842);
        float r18844 = r18839 * r18843;
        float r18845 = r18836 / r18841;
        float r18846 = 2.0f;
        float r18847 = r18836 / r18846;
        float r18848 = r18845 * r18845;
        float r18849 = r18848 * r18845;
        float r18850 = r18847 * r18849;
        float r18851 = r18845 + r18850;
        float r18852 = 3.0f;
        float r18853 = 4.0f;
        float r18854 = r18852 / r18853;
        float r18855 = r18849 * r18845;
        float r18856 = r18855 * r18845;
        float r18857 = r18854 * r18856;
        float r18858 = r18851 + r18857;
        float r18859 = 15.0f;
        float r18860 = 8.0f;
        float r18861 = r18859 / r18860;
        float r18862 = r18856 * r18845;
        float r18863 = r18862 * r18845;
        float r18864 = r18861 * r18863;
        float r18865 = r18858 + r18864;
        float r18866 = r18844 * r18865;
        return r18866;
}

double f_id(double x) {
        double r18867 = 1.0;
        double r18868 = atan2(1.0, 0.0);
        double r18869 = sqrt(r18868);
        double r18870 = r18867 / r18869;
        double r18871 = x;
        double r18872 = fabs(r18871);
        double r18873 = r18872 * r18872;
        double r18874 = exp(r18873);
        double r18875 = r18870 * r18874;
        double r18876 = r18867 / r18872;
        double r18877 = 2.0;
        double r18878 = r18867 / r18877;
        double r18879 = r18876 * r18876;
        double r18880 = r18879 * r18876;
        double r18881 = r18878 * r18880;
        double r18882 = r18876 + r18881;
        double r18883 = 3.0;
        double r18884 = 4.0;
        double r18885 = r18883 / r18884;
        double r18886 = r18880 * r18876;
        double r18887 = r18886 * r18876;
        double r18888 = r18885 * r18887;
        double r18889 = r18882 + r18888;
        double r18890 = 15.0;
        double r18891 = 8.0;
        double r18892 = r18890 / r18891;
        double r18893 = r18887 * r18876;
        double r18894 = r18893 * r18876;
        double r18895 = r18892 * r18894;
        double r18896 = r18889 + r18895;
        double r18897 = r18875 * r18896;
        return r18897;
}


double f_of(float x) {
        float r18898 = 1.0f;
        float r18899 = x;
        float r18900 = fabs(r18899);
        float r18901 = r18898 / r18900;
        float r18902 = r18901 * (r18901 * r18901);
        float r18903 = 2.0f;
        float r18904 = r18902 / r18903;
        float r18905 = r18904 + r18901;
        float r18906 = 3.0f;
        float r18907 = 4.0f;
        float r18908 = r18906 / r18907;
        float r18909 = r18901 * r18908;
        float r18910 = r18902 * r18909;
        float r18911 = r18910 * r18901;
        float r18912 = r18905 + r18911;
        float r18913 = 15.0f;
        float r18914 = 8.0f;
        float r18915 = r18913 / r18914;
        float r18916 = r18902 * r18902;
        float r18917 = r18916 / r18900;
        float r18918 = r18915 * r18917;
        float r18919 = r18912 + r18918;
        float r18920 = atan2(1.0, 0.0);
        float r18921 = sqrt(r18920);
        float r18922 = r18900 * r18900;
        float r18923 = exp(r18922);
        float r18924 = r18921 / r18923;
        float r18925 = r18919 / r18924;
        return r18925;
}

double f_od(double x) {
        double r18926 = 1.0;
        double r18927 = x;
        double r18928 = fabs(r18927);
        double r18929 = r18926 / r18928;
        double r18930 = r18929 * (r18929 * r18929);
        double r18931 = 2.0;
        double r18932 = r18930 / r18931;
        double r18933 = r18932 + r18929;
        double r18934 = 3.0;
        double r18935 = 4.0;
        double r18936 = r18934 / r18935;
        double r18937 = r18929 * r18936;
        double r18938 = r18930 * r18937;
        double r18939 = r18938 * r18929;
        double r18940 = r18933 + r18939;
        double r18941 = 15.0;
        double r18942 = 8.0;
        double r18943 = r18941 / r18942;
        double r18944 = r18930 * r18930;
        double r18945 = r18944 / r18928;
        double r18946 = r18943 * r18945;
        double r18947 = r18940 + r18946;
        double r18948 = atan2(1.0, 0.0);
        double r18949 = sqrt(r18948);
        double r18950 = r18928 * r18928;
        double r18951 = exp(r18950);
        double r18952 = r18949 / r18951;
        double r18953 = r18947 / r18952;
        return r18953;
}

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 r18954, r18955, r18956, r18957, r18958, r18959, r18960, r18961, r18962, r18963, r18964, r18965, r18966, r18967, r18968, r18969, r18970, r18971, r18972, r18973, r18974, r18975, r18976, r18977, r18978, r18979, r18980, r18981, r18982, r18983, r18984;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18954, "1", 10, MPFR_RNDN);
        mpfr_init(r18955);
        mpfr_init(r18956);
        mpfr_init(r18957);
        mpfr_init(r18958);
        mpfr_init(r18959);
        mpfr_init(r18960);
        mpfr_init(r18961);
        mpfr_init(r18962);
        mpfr_init(r18963);
        mpfr_init_set_str(r18964, "2", 10, MPFR_RNDN);
        mpfr_init(r18965);
        mpfr_init(r18966);
        mpfr_init(r18967);
        mpfr_init(r18968);
        mpfr_init(r18969);
        mpfr_init_set_str(r18970, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18971, "4", 10, MPFR_RNDN);
        mpfr_init(r18972);
        mpfr_init(r18973);
        mpfr_init(r18974);
        mpfr_init(r18975);
        mpfr_init(r18976);
        mpfr_init_set_str(r18977, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18978, "8", 10, MPFR_RNDN);
        mpfr_init(r18979);
        mpfr_init(r18980);
        mpfr_init(r18981);
        mpfr_init(r18982);
        mpfr_init(r18983);
        mpfr_init(r18984);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r18955, MPFR_RNDN);
        mpfr_sqrt(r18956, r18955, MPFR_RNDN);
        mpfr_div(r18957, r18954, r18956, MPFR_RNDN);
        mpfr_set_d(r18958, x, MPFR_RNDN);
        mpfr_abs(r18959, r18958, MPFR_RNDN);
        mpfr_mul(r18960, r18959, r18959, MPFR_RNDN);
        mpfr_exp(r18961, r18960, MPFR_RNDN);
        mpfr_mul(r18962, r18957, r18961, MPFR_RNDN);
        mpfr_div(r18963, r18954, r18959, MPFR_RNDN);
        ;
        mpfr_div(r18965, r18954, r18964, MPFR_RNDN);
        mpfr_mul(r18966, r18963, r18963, MPFR_RNDN);
        mpfr_mul(r18967, r18966, r18963, MPFR_RNDN);
        mpfr_mul(r18968, r18965, r18967, MPFR_RNDN);
        mpfr_add(r18969, r18963, r18968, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18972, r18970, r18971, MPFR_RNDN);
        mpfr_mul(r18973, r18967, r18963, MPFR_RNDN);
        mpfr_mul(r18974, r18973, r18963, MPFR_RNDN);
        mpfr_mul(r18975, r18972, r18974, MPFR_RNDN);
        mpfr_add(r18976, r18969, r18975, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18979, r18977, r18978, MPFR_RNDN);
        mpfr_mul(r18980, r18974, r18963, MPFR_RNDN);
        mpfr_mul(r18981, r18980, r18963, MPFR_RNDN);
        mpfr_mul(r18982, r18979, r18981, MPFR_RNDN);
        mpfr_add(r18983, r18976, r18982, MPFR_RNDN);
        mpfr_mul(r18984, r18962, r18983, MPFR_RNDN);
        return mpfr_get_d(r18984, MPFR_RNDN);
}

static mpfr_t r18985, r18986, r18987, r18988, r18989, r18990, r18991, r18992, r18993, r18994, r18995, r18996, r18997, r18998, r18999, r19000, r19001, r19002, r19003, r19004, r19005, r19006, r19007, r19008, r19009, r19010, r19011, r19012;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18985, "1", 10, MPFR_RNDN);
        mpfr_init(r18986);
        mpfr_init(r18987);
        mpfr_init(r18988);
        mpfr_init(r18989);
        mpfr_init_set_str(r18990, "2", 10, MPFR_RNDN);
        mpfr_init(r18991);
        mpfr_init(r18992);
        mpfr_init_set_str(r18993, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18994, "4", 10, MPFR_RNDN);
        mpfr_init(r18995);
        mpfr_init(r18996);
        mpfr_init(r18997);
        mpfr_init(r18998);
        mpfr_init(r18999);
        mpfr_init_set_str(r19000, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r19001, "8", 10, MPFR_RNDN);
        mpfr_init(r19002);
        mpfr_init(r19003);
        mpfr_init(r19004);
        mpfr_init(r19005);
        mpfr_init(r19006);
        mpfr_init(r19007);
        mpfr_init(r19008);
        mpfr_init(r19009);
        mpfr_init(r19010);
        mpfr_init(r19011);
        mpfr_init(r19012);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r18986, x, MPFR_RNDN);
        mpfr_abs(r18987, r18986, MPFR_RNDN);
        mpfr_div(r18988, r18985, r18987, MPFR_RNDN);
        mpfr_mul(r18989, r18988, r18988, MPFR_RNDN); mpfr_mul(r18989, r18989, r18988, MPFR_RNDN);
        ;
        mpfr_div(r18991, r18989, r18990, MPFR_RNDN);
        mpfr_add(r18992, r18991, r18988, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18995, r18993, r18994, MPFR_RNDN);
        mpfr_mul(r18996, r18988, r18995, MPFR_RNDN);
        mpfr_mul(r18997, r18989, r18996, MPFR_RNDN);
        mpfr_mul(r18998, r18997, r18988, MPFR_RNDN);
        mpfr_add(r18999, r18992, r18998, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19002, r19000, r19001, MPFR_RNDN);
        mpfr_sqr(r19003, r18989, MPFR_RNDN);
        mpfr_div(r19004, r19003, r18987, MPFR_RNDN);
        mpfr_mul(r19005, r19002, r19004, MPFR_RNDN);
        mpfr_add(r19006, r18999, r19005, MPFR_RNDN);
        mpfr_const_pi(r19007, MPFR_RNDN);
        mpfr_sqrt(r19008, r19007, MPFR_RNDN);
        mpfr_mul(r19009, r18987, r18987, MPFR_RNDN);
        mpfr_exp(r19010, r19009, MPFR_RNDN);
        mpfr_div(r19011, r19008, r19010, MPFR_RNDN);
        mpfr_div(r19012, r19006, r19011, MPFR_RNDN);
        return mpfr_get_d(r19012, MPFR_RNDN);
}

static mpfr_t r19013, r19014, r19015, r19016, r19017, r19018, r19019, r19020, r19021, r19022, r19023, r19024, r19025, r19026, r19027, r19028, r19029, r19030, r19031, r19032, r19033, r19034, r19035, r19036, r19037, r19038, r19039, r19040;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19013, "1", 10, MPFR_RNDN);
        mpfr_init(r19014);
        mpfr_init(r19015);
        mpfr_init(r19016);
        mpfr_init(r19017);
        mpfr_init_set_str(r19018, "2", 10, MPFR_RNDN);
        mpfr_init(r19019);
        mpfr_init(r19020);
        mpfr_init_set_str(r19021, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r19022, "4", 10, MPFR_RNDN);
        mpfr_init(r19023);
        mpfr_init(r19024);
        mpfr_init(r19025);
        mpfr_init(r19026);
        mpfr_init(r19027);
        mpfr_init_set_str(r19028, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r19029, "8", 10, MPFR_RNDN);
        mpfr_init(r19030);
        mpfr_init(r19031);
        mpfr_init(r19032);
        mpfr_init(r19033);
        mpfr_init(r19034);
        mpfr_init(r19035);
        mpfr_init(r19036);
        mpfr_init(r19037);
        mpfr_init(r19038);
        mpfr_init(r19039);
        mpfr_init(r19040);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r19014, x, MPFR_RNDN);
        mpfr_abs(r19015, r19014, MPFR_RNDN);
        mpfr_div(r19016, r19013, r19015, MPFR_RNDN);
        mpfr_mul(r19017, r19016, r19016, MPFR_RNDN); mpfr_mul(r19017, r19017, r19016, MPFR_RNDN);
        ;
        mpfr_div(r19019, r19017, r19018, MPFR_RNDN);
        mpfr_add(r19020, r19019, r19016, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19023, r19021, r19022, MPFR_RNDN);
        mpfr_mul(r19024, r19016, r19023, MPFR_RNDN);
        mpfr_mul(r19025, r19017, r19024, MPFR_RNDN);
        mpfr_mul(r19026, r19025, r19016, MPFR_RNDN);
        mpfr_add(r19027, r19020, r19026, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19030, r19028, r19029, MPFR_RNDN);
        mpfr_sqr(r19031, r19017, MPFR_RNDN);
        mpfr_div(r19032, r19031, r19015, MPFR_RNDN);
        mpfr_mul(r19033, r19030, r19032, MPFR_RNDN);
        mpfr_add(r19034, r19027, r19033, MPFR_RNDN);
        mpfr_const_pi(r19035, MPFR_RNDN);
        mpfr_sqrt(r19036, r19035, MPFR_RNDN);
        mpfr_mul(r19037, r19015, r19015, MPFR_RNDN);
        mpfr_exp(r19038, r19037, MPFR_RNDN);
        mpfr_div(r19039, r19036, r19038, MPFR_RNDN);
        mpfr_div(r19040, r19034, r19039, MPFR_RNDN);
        return mpfr_get_d(r19040, MPFR_RNDN);
}

