#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 r18808 = 1.0f;
        float r18809 = atan2(1.0, 0.0);
        float r18810 = sqrt(r18809);
        float r18811 = r18808 / r18810;
        float r18812 = x;
        float r18813 = fabs(r18812);
        float r18814 = r18813 * r18813;
        float r18815 = exp(r18814);
        float r18816 = r18811 * r18815;
        float r18817 = r18808 / r18813;
        float r18818 = 2.0f;
        float r18819 = r18808 / r18818;
        float r18820 = r18817 * r18817;
        float r18821 = r18820 * r18817;
        float r18822 = r18819 * r18821;
        float r18823 = r18817 + r18822;
        float r18824 = 3.0f;
        float r18825 = 4.0f;
        float r18826 = r18824 / r18825;
        float r18827 = r18821 * r18817;
        float r18828 = r18827 * r18817;
        float r18829 = r18826 * r18828;
        float r18830 = r18823 + r18829;
        float r18831 = 15.0f;
        float r18832 = 8.0f;
        float r18833 = r18831 / r18832;
        float r18834 = r18828 * r18817;
        float r18835 = r18834 * r18817;
        float r18836 = r18833 * r18835;
        float r18837 = r18830 + r18836;
        float r18838 = r18816 * r18837;
        return r18838;
}

double f_id(double x) {
        double r18839 = 1.0;
        double r18840 = atan2(1.0, 0.0);
        double r18841 = sqrt(r18840);
        double r18842 = r18839 / r18841;
        double r18843 = x;
        double r18844 = fabs(r18843);
        double r18845 = r18844 * r18844;
        double r18846 = exp(r18845);
        double r18847 = r18842 * r18846;
        double r18848 = r18839 / r18844;
        double r18849 = 2.0;
        double r18850 = r18839 / r18849;
        double r18851 = r18848 * r18848;
        double r18852 = r18851 * r18848;
        double r18853 = r18850 * r18852;
        double r18854 = r18848 + r18853;
        double r18855 = 3.0;
        double r18856 = 4.0;
        double r18857 = r18855 / r18856;
        double r18858 = r18852 * r18848;
        double r18859 = r18858 * r18848;
        double r18860 = r18857 * r18859;
        double r18861 = r18854 + r18860;
        double r18862 = 15.0;
        double r18863 = 8.0;
        double r18864 = r18862 / r18863;
        double r18865 = r18859 * r18848;
        double r18866 = r18865 * r18848;
        double r18867 = r18864 * r18866;
        double r18868 = r18861 + r18867;
        double r18869 = r18847 * r18868;
        return r18869;
}


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

double f_od(double x) {
        double r18901 = 1.0;
        double r18902 = x;
        double r18903 = fabs(r18902);
        double r18904 = r18901 / r18903;
        double r18905 = r18904 * (r18904 * r18904);
        double r18906 = 2.0;
        double r18907 = r18905 / r18906;
        double r18908 = r18907 + r18904;
        double r18909 = 3.0;
        double r18910 = 4.0;
        double r18911 = r18909 / r18910;
        double r18912 = r18904 * r18911;
        double r18913 = r18905 * r18912;
        double r18914 = r18913 * r18904;
        double r18915 = r18908 + r18914;
        double r18916 = 15.0;
        double r18917 = 8.0;
        double r18918 = r18916 / r18917;
        double r18919 = r18901 * (r18901 * r18901);
        double r18920 = r18903 * (r18903 * r18903);
        double r18921 = r18919 / r18920;
        double r18922 = r18921 * r18921;
        double r18923 = r18922 / r18903;
        double r18924 = r18918 * r18923;
        double r18925 = r18915 + r18924;
        double r18926 = atan2(1.0, 0.0);
        double r18927 = sqrt(r18926);
        double r18928 = r18903 * r18903;
        double r18929 = exp(r18928);
        double r18930 = r18927 / r18929;
        double r18931 = r18925 / r18930;
        return r18931;
}

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 r18932, r18933, r18934, r18935, r18936, r18937, r18938, r18939, r18940, r18941, r18942, r18943, r18944, r18945, r18946, r18947, r18948, r18949, r18950, r18951, r18952, r18953, r18954, r18955, r18956, r18957, r18958, r18959, r18960, r18961, r18962;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18932, "1", 10, MPFR_RNDN);
        mpfr_init(r18933);
        mpfr_init(r18934);
        mpfr_init(r18935);
        mpfr_init(r18936);
        mpfr_init(r18937);
        mpfr_init(r18938);
        mpfr_init(r18939);
        mpfr_init(r18940);
        mpfr_init(r18941);
        mpfr_init_set_str(r18942, "2", 10, MPFR_RNDN);
        mpfr_init(r18943);
        mpfr_init(r18944);
        mpfr_init(r18945);
        mpfr_init(r18946);
        mpfr_init(r18947);
        mpfr_init_set_str(r18948, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18949, "4", 10, MPFR_RNDN);
        mpfr_init(r18950);
        mpfr_init(r18951);
        mpfr_init(r18952);
        mpfr_init(r18953);
        mpfr_init(r18954);
        mpfr_init_set_str(r18955, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18956, "8", 10, MPFR_RNDN);
        mpfr_init(r18957);
        mpfr_init(r18958);
        mpfr_init(r18959);
        mpfr_init(r18960);
        mpfr_init(r18961);
        mpfr_init(r18962);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r18933, MPFR_RNDN);
        mpfr_sqrt(r18934, r18933, MPFR_RNDN);
        mpfr_div(r18935, r18932, r18934, MPFR_RNDN);
        mpfr_set_d(r18936, x, MPFR_RNDN);
        mpfr_abs(r18937, r18936, MPFR_RNDN);
        mpfr_mul(r18938, r18937, r18937, MPFR_RNDN);
        mpfr_exp(r18939, r18938, MPFR_RNDN);
        mpfr_mul(r18940, r18935, r18939, MPFR_RNDN);
        mpfr_div(r18941, r18932, r18937, MPFR_RNDN);
        ;
        mpfr_div(r18943, r18932, r18942, MPFR_RNDN);
        mpfr_mul(r18944, r18941, r18941, MPFR_RNDN);
        mpfr_mul(r18945, r18944, r18941, MPFR_RNDN);
        mpfr_mul(r18946, r18943, r18945, MPFR_RNDN);
        mpfr_add(r18947, r18941, r18946, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18950, r18948, r18949, MPFR_RNDN);
        mpfr_mul(r18951, r18945, r18941, MPFR_RNDN);
        mpfr_mul(r18952, r18951, r18941, MPFR_RNDN);
        mpfr_mul(r18953, r18950, r18952, MPFR_RNDN);
        mpfr_add(r18954, r18947, r18953, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18957, r18955, r18956, MPFR_RNDN);
        mpfr_mul(r18958, r18952, r18941, MPFR_RNDN);
        mpfr_mul(r18959, r18958, r18941, MPFR_RNDN);
        mpfr_mul(r18960, r18957, r18959, MPFR_RNDN);
        mpfr_add(r18961, r18954, r18960, MPFR_RNDN);
        mpfr_mul(r18962, r18940, r18961, MPFR_RNDN);
        return mpfr_get_d(r18962, MPFR_RNDN);
}

static mpfr_t r18963, r18964, r18965, r18966, r18967, r18968, r18969, r18970, r18971, r18972, r18973, r18974, r18975, r18976, r18977, r18978, r18979, r18980, r18981, r18982, r18983, r18984, r18985, r18986, r18987, r18988, r18989, r18990, r18991, r18992, r18993;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18963, "1", 10, MPFR_RNDN);
        mpfr_init(r18964);
        mpfr_init(r18965);
        mpfr_init(r18966);
        mpfr_init(r18967);
        mpfr_init_set_str(r18968, "2", 10, MPFR_RNDN);
        mpfr_init(r18969);
        mpfr_init(r18970);
        mpfr_init_set_str(r18971, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18972, "4", 10, MPFR_RNDN);
        mpfr_init(r18973);
        mpfr_init(r18974);
        mpfr_init(r18975);
        mpfr_init(r18976);
        mpfr_init(r18977);
        mpfr_init_set_str(r18978, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18979, "8", 10, MPFR_RNDN);
        mpfr_init(r18980);
        mpfr_init(r18981);
        mpfr_init(r18982);
        mpfr_init(r18983);
        mpfr_init(r18984);
        mpfr_init(r18985);
        mpfr_init(r18986);
        mpfr_init(r18987);
        mpfr_init(r18988);
        mpfr_init(r18989);
        mpfr_init(r18990);
        mpfr_init(r18991);
        mpfr_init(r18992);
        mpfr_init(r18993);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r18964, x, MPFR_RNDN);
        mpfr_abs(r18965, r18964, MPFR_RNDN);
        mpfr_div(r18966, r18963, r18965, MPFR_RNDN);
        mpfr_mul(r18967, r18966, r18966, MPFR_RNDN); mpfr_mul(r18967, r18967, r18966, MPFR_RNDN);
        ;
        mpfr_div(r18969, r18967, r18968, MPFR_RNDN);
        mpfr_add(r18970, r18969, r18966, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18973, r18971, r18972, MPFR_RNDN);
        mpfr_mul(r18974, r18966, r18973, MPFR_RNDN);
        mpfr_mul(r18975, r18967, r18974, MPFR_RNDN);
        mpfr_mul(r18976, r18975, r18966, MPFR_RNDN);
        mpfr_add(r18977, r18970, r18976, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18980, r18978, r18979, MPFR_RNDN);
        mpfr_mul(r18981, r18963, r18963, MPFR_RNDN); mpfr_mul(r18981, r18981, r18963, MPFR_RNDN);
        mpfr_mul(r18982, r18965, r18965, MPFR_RNDN); mpfr_mul(r18982, r18982, r18965, MPFR_RNDN);
        mpfr_div(r18983, r18981, r18982, MPFR_RNDN);
        mpfr_sqr(r18984, r18983, MPFR_RNDN);
        mpfr_div(r18985, r18984, r18965, MPFR_RNDN);
        mpfr_mul(r18986, r18980, r18985, MPFR_RNDN);
        mpfr_add(r18987, r18977, r18986, MPFR_RNDN);
        mpfr_const_pi(r18988, MPFR_RNDN);
        mpfr_sqrt(r18989, r18988, MPFR_RNDN);
        mpfr_mul(r18990, r18965, r18965, MPFR_RNDN);
        mpfr_exp(r18991, r18990, MPFR_RNDN);
        mpfr_div(r18992, r18989, r18991, MPFR_RNDN);
        mpfr_div(r18993, r18987, r18992, MPFR_RNDN);
        return mpfr_get_d(r18993, MPFR_RNDN);
}

static mpfr_t r18994, r18995, r18996, r18997, r18998, r18999, r19000, r19001, r19002, r19003, r19004, r19005, r19006, r19007, r19008, r19009, r19010, r19011, r19012, r19013, r19014, r19015, r19016, r19017, r19018, r19019, r19020, r19021, r19022, r19023, r19024;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18994, "1", 10, MPFR_RNDN);
        mpfr_init(r18995);
        mpfr_init(r18996);
        mpfr_init(r18997);
        mpfr_init(r18998);
        mpfr_init_set_str(r18999, "2", 10, MPFR_RNDN);
        mpfr_init(r19000);
        mpfr_init(r19001);
        mpfr_init_set_str(r19002, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r19003, "4", 10, MPFR_RNDN);
        mpfr_init(r19004);
        mpfr_init(r19005);
        mpfr_init(r19006);
        mpfr_init(r19007);
        mpfr_init(r19008);
        mpfr_init_set_str(r19009, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r19010, "8", 10, MPFR_RNDN);
        mpfr_init(r19011);
        mpfr_init(r19012);
        mpfr_init(r19013);
        mpfr_init(r19014);
        mpfr_init(r19015);
        mpfr_init(r19016);
        mpfr_init(r19017);
        mpfr_init(r19018);
        mpfr_init(r19019);
        mpfr_init(r19020);
        mpfr_init(r19021);
        mpfr_init(r19022);
        mpfr_init(r19023);
        mpfr_init(r19024);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r18995, x, MPFR_RNDN);
        mpfr_abs(r18996, r18995, MPFR_RNDN);
        mpfr_div(r18997, r18994, r18996, MPFR_RNDN);
        mpfr_mul(r18998, r18997, r18997, MPFR_RNDN); mpfr_mul(r18998, r18998, r18997, MPFR_RNDN);
        ;
        mpfr_div(r19000, r18998, r18999, MPFR_RNDN);
        mpfr_add(r19001, r19000, r18997, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19004, r19002, r19003, MPFR_RNDN);
        mpfr_mul(r19005, r18997, r19004, MPFR_RNDN);
        mpfr_mul(r19006, r18998, r19005, MPFR_RNDN);
        mpfr_mul(r19007, r19006, r18997, MPFR_RNDN);
        mpfr_add(r19008, r19001, r19007, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19011, r19009, r19010, MPFR_RNDN);
        mpfr_mul(r19012, r18994, r18994, MPFR_RNDN); mpfr_mul(r19012, r19012, r18994, MPFR_RNDN);
        mpfr_mul(r19013, r18996, r18996, MPFR_RNDN); mpfr_mul(r19013, r19013, r18996, MPFR_RNDN);
        mpfr_div(r19014, r19012, r19013, MPFR_RNDN);
        mpfr_sqr(r19015, r19014, MPFR_RNDN);
        mpfr_div(r19016, r19015, r18996, MPFR_RNDN);
        mpfr_mul(r19017, r19011, r19016, MPFR_RNDN);
        mpfr_add(r19018, r19008, r19017, MPFR_RNDN);
        mpfr_const_pi(r19019, MPFR_RNDN);
        mpfr_sqrt(r19020, r19019, MPFR_RNDN);
        mpfr_mul(r19021, r18996, r18996, MPFR_RNDN);
        mpfr_exp(r19022, r19021, MPFR_RNDN);
        mpfr_div(r19023, r19020, r19022, MPFR_RNDN);
        mpfr_div(r19024, r19018, r19023, MPFR_RNDN);
        return mpfr_get_d(r19024, MPFR_RNDN);
}

