#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 r18796 = 1.0f;
        float r18797 = atan2(1.0, 0.0);
        float r18798 = sqrt(r18797);
        float r18799 = r18796 / r18798;
        float r18800 = x;
        float r18801 = fabs(r18800);
        float r18802 = r18801 * r18801;
        float r18803 = exp(r18802);
        float r18804 = r18799 * r18803;
        float r18805 = r18796 / r18801;
        float r18806 = 2.0f;
        float r18807 = r18796 / r18806;
        float r18808 = r18805 * r18805;
        float r18809 = r18808 * r18805;
        float r18810 = r18807 * r18809;
        float r18811 = r18805 + r18810;
        float r18812 = 3.0f;
        float r18813 = 4.0f;
        float r18814 = r18812 / r18813;
        float r18815 = r18809 * r18805;
        float r18816 = r18815 * r18805;
        float r18817 = r18814 * r18816;
        float r18818 = r18811 + r18817;
        float r18819 = 15.0f;
        float r18820 = 8.0f;
        float r18821 = r18819 / r18820;
        float r18822 = r18816 * r18805;
        float r18823 = r18822 * r18805;
        float r18824 = r18821 * r18823;
        float r18825 = r18818 + r18824;
        float r18826 = r18804 * r18825;
        return r18826;
}

double f_id(double x) {
        double r18827 = 1.0;
        double r18828 = atan2(1.0, 0.0);
        double r18829 = sqrt(r18828);
        double r18830 = r18827 / r18829;
        double r18831 = x;
        double r18832 = fabs(r18831);
        double r18833 = r18832 * r18832;
        double r18834 = exp(r18833);
        double r18835 = r18830 * r18834;
        double r18836 = r18827 / r18832;
        double r18837 = 2.0;
        double r18838 = r18827 / r18837;
        double r18839 = r18836 * r18836;
        double r18840 = r18839 * r18836;
        double r18841 = r18838 * r18840;
        double r18842 = r18836 + r18841;
        double r18843 = 3.0;
        double r18844 = 4.0;
        double r18845 = r18843 / r18844;
        double r18846 = r18840 * r18836;
        double r18847 = r18846 * r18836;
        double r18848 = r18845 * r18847;
        double r18849 = r18842 + r18848;
        double r18850 = 15.0;
        double r18851 = 8.0;
        double r18852 = r18850 / r18851;
        double r18853 = r18847 * r18836;
        double r18854 = r18853 * r18836;
        double r18855 = r18852 * r18854;
        double r18856 = r18849 + r18855;
        double r18857 = r18835 * r18856;
        return r18857;
}


double f_of(float x) {
        float r18858 = 1.0f;
        float r18859 = x;
        float r18860 = fabs(r18859);
        float r18861 = r18858 / r18860;
        float r18862 = r18861 * (r18861 * r18861);
        float r18863 = 2.0f;
        float r18864 = r18862 / r18863;
        float r18865 = r18864 + r18861;
        float r18866 = 3.0f;
        float r18867 = pow(r18861, r18866);
        float r18868 = 4.0f;
        float r18869 = r18866 / r18868;
        float r18870 = r18861 * r18869;
        float r18871 = r18867 * r18870;
        float r18872 = r18871 * r18861;
        float r18873 = r18865 + r18872;
        float r18874 = 15.0f;
        float r18875 = 8.0f;
        float r18876 = r18874 / r18875;
        float r18877 = r18862 * r18862;
        float r18878 = r18877 / r18860;
        float r18879 = r18876 * r18878;
        float r18880 = r18873 + r18879;
        float r18881 = atan2(1.0, 0.0);
        float r18882 = sqrt(r18881);
        float r18883 = r18860 * r18860;
        float r18884 = exp(r18883);
        float r18885 = r18882 / r18884;
        float r18886 = r18880 / r18885;
        return r18886;
}

double f_od(double x) {
        double r18887 = 1.0;
        double r18888 = x;
        double r18889 = fabs(r18888);
        double r18890 = r18887 / r18889;
        double r18891 = r18890 * (r18890 * r18890);
        double r18892 = 2.0;
        double r18893 = r18891 / r18892;
        double r18894 = r18893 + r18890;
        double r18895 = 3.0;
        double r18896 = pow(r18890, r18895);
        double r18897 = 4.0;
        double r18898 = r18895 / r18897;
        double r18899 = r18890 * r18898;
        double r18900 = r18896 * r18899;
        double r18901 = r18900 * r18890;
        double r18902 = r18894 + r18901;
        double r18903 = 15.0;
        double r18904 = 8.0;
        double r18905 = r18903 / r18904;
        double r18906 = r18891 * r18891;
        double r18907 = r18906 / r18889;
        double r18908 = r18905 * r18907;
        double r18909 = r18902 + r18908;
        double r18910 = atan2(1.0, 0.0);
        double r18911 = sqrt(r18910);
        double r18912 = r18889 * r18889;
        double r18913 = exp(r18912);
        double r18914 = r18911 / r18913;
        double r18915 = r18909 / r18914;
        return r18915;
}

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 r18916, r18917, r18918, r18919, r18920, r18921, r18922, r18923, r18924, r18925, r18926, r18927, r18928, r18929, r18930, r18931, r18932, r18933, r18934, r18935, r18936, r18937, r18938, r18939, r18940, r18941, r18942, r18943, r18944, r18945, r18946;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18916, "1", 10, MPFR_RNDN);
        mpfr_init(r18917);
        mpfr_init(r18918);
        mpfr_init(r18919);
        mpfr_init(r18920);
        mpfr_init(r18921);
        mpfr_init(r18922);
        mpfr_init(r18923);
        mpfr_init(r18924);
        mpfr_init(r18925);
        mpfr_init_set_str(r18926, "2", 10, MPFR_RNDN);
        mpfr_init(r18927);
        mpfr_init(r18928);
        mpfr_init(r18929);
        mpfr_init(r18930);
        mpfr_init(r18931);
        mpfr_init_set_str(r18932, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18933, "4", 10, MPFR_RNDN);
        mpfr_init(r18934);
        mpfr_init(r18935);
        mpfr_init(r18936);
        mpfr_init(r18937);
        mpfr_init(r18938);
        mpfr_init_set_str(r18939, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18940, "8", 10, MPFR_RNDN);
        mpfr_init(r18941);
        mpfr_init(r18942);
        mpfr_init(r18943);
        mpfr_init(r18944);
        mpfr_init(r18945);
        mpfr_init(r18946);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r18917, MPFR_RNDN);
        mpfr_sqrt(r18918, r18917, MPFR_RNDN);
        mpfr_div(r18919, r18916, r18918, MPFR_RNDN);
        mpfr_set_d(r18920, x, MPFR_RNDN);
        mpfr_abs(r18921, r18920, MPFR_RNDN);
        mpfr_mul(r18922, r18921, r18921, MPFR_RNDN);
        mpfr_exp(r18923, r18922, MPFR_RNDN);
        mpfr_mul(r18924, r18919, r18923, MPFR_RNDN);
        mpfr_div(r18925, r18916, r18921, MPFR_RNDN);
        ;
        mpfr_div(r18927, r18916, r18926, MPFR_RNDN);
        mpfr_mul(r18928, r18925, r18925, MPFR_RNDN);
        mpfr_mul(r18929, r18928, r18925, MPFR_RNDN);
        mpfr_mul(r18930, r18927, r18929, MPFR_RNDN);
        mpfr_add(r18931, r18925, r18930, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18934, r18932, r18933, MPFR_RNDN);
        mpfr_mul(r18935, r18929, r18925, MPFR_RNDN);
        mpfr_mul(r18936, r18935, r18925, MPFR_RNDN);
        mpfr_mul(r18937, r18934, r18936, MPFR_RNDN);
        mpfr_add(r18938, r18931, r18937, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18941, r18939, r18940, MPFR_RNDN);
        mpfr_mul(r18942, r18936, r18925, MPFR_RNDN);
        mpfr_mul(r18943, r18942, r18925, MPFR_RNDN);
        mpfr_mul(r18944, r18941, r18943, MPFR_RNDN);
        mpfr_add(r18945, r18938, r18944, MPFR_RNDN);
        mpfr_mul(r18946, r18924, r18945, MPFR_RNDN);
        return mpfr_get_d(r18946, MPFR_RNDN);
}

static mpfr_t r18947, r18948, r18949, r18950, r18951, r18952, r18953, r18954, r18955, r18956, r18957, r18958, r18959, r18960, r18961, r18962, r18963, r18964, r18965, r18966, r18967, r18968, r18969, r18970, r18971, r18972, r18973, r18974, r18975;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18947, "1", 10, MPFR_RNDN);
        mpfr_init(r18948);
        mpfr_init(r18949);
        mpfr_init(r18950);
        mpfr_init(r18951);
        mpfr_init_set_str(r18952, "2", 10, MPFR_RNDN);
        mpfr_init(r18953);
        mpfr_init(r18954);
        mpfr_init_set_str(r18955, "3", 10, MPFR_RNDN);
        mpfr_init(r18956);
        mpfr_init_set_str(r18957, "4", 10, MPFR_RNDN);
        mpfr_init(r18958);
        mpfr_init(r18959);
        mpfr_init(r18960);
        mpfr_init(r18961);
        mpfr_init(r18962);
        mpfr_init_set_str(r18963, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18964, "8", 10, MPFR_RNDN);
        mpfr_init(r18965);
        mpfr_init(r18966);
        mpfr_init(r18967);
        mpfr_init(r18968);
        mpfr_init(r18969);
        mpfr_init(r18970);
        mpfr_init(r18971);
        mpfr_init(r18972);
        mpfr_init(r18973);
        mpfr_init(r18974);
        mpfr_init(r18975);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r18948, x, MPFR_RNDN);
        mpfr_abs(r18949, r18948, MPFR_RNDN);
        mpfr_div(r18950, r18947, r18949, MPFR_RNDN);
        mpfr_mul(r18951, r18950, r18950, MPFR_RNDN); mpfr_mul(r18951, r18951, r18950, MPFR_RNDN);
        ;
        mpfr_div(r18953, r18951, r18952, MPFR_RNDN);
        mpfr_add(r18954, r18953, r18950, MPFR_RNDN);
        ;
        mpfr_pow(r18956, r18950, r18955, MPFR_RNDN);
        ;
        mpfr_div(r18958, r18955, r18957, MPFR_RNDN);
        mpfr_mul(r18959, r18950, r18958, MPFR_RNDN);
        mpfr_mul(r18960, r18956, r18959, MPFR_RNDN);
        mpfr_mul(r18961, r18960, r18950, MPFR_RNDN);
        mpfr_add(r18962, r18954, r18961, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18965, r18963, r18964, MPFR_RNDN);
        mpfr_sqr(r18966, r18951, MPFR_RNDN);
        mpfr_div(r18967, r18966, r18949, MPFR_RNDN);
        mpfr_mul(r18968, r18965, r18967, MPFR_RNDN);
        mpfr_add(r18969, r18962, r18968, MPFR_RNDN);
        mpfr_const_pi(r18970, MPFR_RNDN);
        mpfr_sqrt(r18971, r18970, MPFR_RNDN);
        mpfr_mul(r18972, r18949, r18949, MPFR_RNDN);
        mpfr_exp(r18973, r18972, MPFR_RNDN);
        mpfr_div(r18974, r18971, r18973, MPFR_RNDN);
        mpfr_div(r18975, r18969, r18974, MPFR_RNDN);
        return mpfr_get_d(r18975, MPFR_RNDN);
}

static mpfr_t r18976, r18977, r18978, r18979, r18980, r18981, r18982, r18983, r18984, r18985, r18986, r18987, r18988, r18989, r18990, r18991, r18992, r18993, r18994, r18995, r18996, r18997, r18998, r18999, r19000, r19001, r19002, r19003, r19004;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18976, "1", 10, MPFR_RNDN);
        mpfr_init(r18977);
        mpfr_init(r18978);
        mpfr_init(r18979);
        mpfr_init(r18980);
        mpfr_init_set_str(r18981, "2", 10, MPFR_RNDN);
        mpfr_init(r18982);
        mpfr_init(r18983);
        mpfr_init_set_str(r18984, "3", 10, MPFR_RNDN);
        mpfr_init(r18985);
        mpfr_init_set_str(r18986, "4", 10, MPFR_RNDN);
        mpfr_init(r18987);
        mpfr_init(r18988);
        mpfr_init(r18989);
        mpfr_init(r18990);
        mpfr_init(r18991);
        mpfr_init_set_str(r18992, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18993, "8", 10, MPFR_RNDN);
        mpfr_init(r18994);
        mpfr_init(r18995);
        mpfr_init(r18996);
        mpfr_init(r18997);
        mpfr_init(r18998);
        mpfr_init(r18999);
        mpfr_init(r19000);
        mpfr_init(r19001);
        mpfr_init(r19002);
        mpfr_init(r19003);
        mpfr_init(r19004);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r18977, x, MPFR_RNDN);
        mpfr_abs(r18978, r18977, MPFR_RNDN);
        mpfr_div(r18979, r18976, r18978, MPFR_RNDN);
        mpfr_mul(r18980, r18979, r18979, MPFR_RNDN); mpfr_mul(r18980, r18980, r18979, MPFR_RNDN);
        ;
        mpfr_div(r18982, r18980, r18981, MPFR_RNDN);
        mpfr_add(r18983, r18982, r18979, MPFR_RNDN);
        ;
        mpfr_pow(r18985, r18979, r18984, MPFR_RNDN);
        ;
        mpfr_div(r18987, r18984, r18986, MPFR_RNDN);
        mpfr_mul(r18988, r18979, r18987, MPFR_RNDN);
        mpfr_mul(r18989, r18985, r18988, MPFR_RNDN);
        mpfr_mul(r18990, r18989, r18979, MPFR_RNDN);
        mpfr_add(r18991, r18983, r18990, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18994, r18992, r18993, MPFR_RNDN);
        mpfr_sqr(r18995, r18980, MPFR_RNDN);
        mpfr_div(r18996, r18995, r18978, MPFR_RNDN);
        mpfr_mul(r18997, r18994, r18996, MPFR_RNDN);
        mpfr_add(r18998, r18991, r18997, MPFR_RNDN);
        mpfr_const_pi(r18999, MPFR_RNDN);
        mpfr_sqrt(r19000, r18999, MPFR_RNDN);
        mpfr_mul(r19001, r18978, r18978, MPFR_RNDN);
        mpfr_exp(r19002, r19001, MPFR_RNDN);
        mpfr_div(r19003, r19000, r19002, MPFR_RNDN);
        mpfr_div(r19004, r18998, r19003, MPFR_RNDN);
        return mpfr_get_d(r19004, MPFR_RNDN);
}

