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

char *name = "Jmat.Real.erf";

double f_if(float x) {
        float r18877 = 1.0f;
        float r18878 = 0.3275911f;
        float r18879 = x;
        float r18880 = fabs(r18879);
        float r18881 = r18878 * r18880;
        float r18882 = r18877 + r18881;
        float r18883 = r18877 / r18882;
        float r18884 = 0.254829592f;
        float r18885 = -0.284496736f;
        float r18886 = 1.421413741f;
        float r18887 = -1.453152027f;
        float r18888 = 1.061405429f;
        float r18889 = r18883 * r18888;
        float r18890 = r18887 + r18889;
        float r18891 = r18883 * r18890;
        float r18892 = r18886 + r18891;
        float r18893 = r18883 * r18892;
        float r18894 = r18885 + r18893;
        float r18895 = r18883 * r18894;
        float r18896 = r18884 + r18895;
        float r18897 = r18883 * r18896;
        float r18898 = r18880 * r18880;
        float r18899 = -r18898;
        float r18900 = exp(r18899);
        float r18901 = r18897 * r18900;
        float r18902 = r18877 - r18901;
        return r18902;
}

double f_id(double x) {
        double r18903 = 1.0;
        double r18904 = 0.3275911;
        double r18905 = x;
        double r18906 = fabs(r18905);
        double r18907 = r18904 * r18906;
        double r18908 = r18903 + r18907;
        double r18909 = r18903 / r18908;
        double r18910 = 0.254829592;
        double r18911 = -0.284496736;
        double r18912 = 1.421413741;
        double r18913 = -1.453152027;
        double r18914 = 1.061405429;
        double r18915 = r18909 * r18914;
        double r18916 = r18913 + r18915;
        double r18917 = r18909 * r18916;
        double r18918 = r18912 + r18917;
        double r18919 = r18909 * r18918;
        double r18920 = r18911 + r18919;
        double r18921 = r18909 * r18920;
        double r18922 = r18910 + r18921;
        double r18923 = r18909 * r18922;
        double r18924 = r18906 * r18906;
        double r18925 = -r18924;
        double r18926 = exp(r18925);
        double r18927 = r18923 * r18926;
        double r18928 = r18903 - r18927;
        return r18928;
}


double f_of(float x) {
        float r18929 = 1.0f;
        float r18930 = 0.3275911f;
        float r18931 = x;
        float r18932 = fabs(r18931);
        float r18933 = r18930 * r18932;
        float r18934 = r18929 + r18933;
        float r18935 = r18929 / r18934;
        float r18936 = 0.254829592f;
        float r18937 = -0.284496736f;
        float r18938 = 1.421413741f;
        float r18939 = -1.453152027f;
        float r18940 = exp(r18935);
        float r18941 = log(r18940);
        float r18942 = 1.061405429f;
        float r18943 = r18941 * r18942;
        float r18944 = r18939 + r18943;
        float r18945 = r18935 * r18944;
        float r18946 = r18938 + r18945;
        float r18947 = r18935 * r18946;
        float r18948 = r18937 + r18947;
        float r18949 = r18935 * r18948;
        float r18950 = r18936 + r18949;
        float r18951 = r18935 * r18950;
        float r18952 = r18932 * r18932;
        float r18953 = -r18952;
        float r18954 = exp(r18953);
        float r18955 = r18951 * r18954;
        float r18956 = r18929 - r18955;
        float r18957 = exp(r18956);
        float r18958 = log(r18957);
        return r18958;
}

double f_od(double x) {
        double r18959 = 1.0;
        double r18960 = 0.3275911;
        double r18961 = x;
        double r18962 = fabs(r18961);
        double r18963 = r18960 * r18962;
        double r18964 = r18959 + r18963;
        double r18965 = r18959 / r18964;
        double r18966 = 0.254829592;
        double r18967 = -0.284496736;
        double r18968 = 1.421413741;
        double r18969 = -1.453152027;
        double r18970 = exp(r18965);
        double r18971 = log(r18970);
        double r18972 = 1.061405429;
        double r18973 = r18971 * r18972;
        double r18974 = r18969 + r18973;
        double r18975 = r18965 * r18974;
        double r18976 = r18968 + r18975;
        double r18977 = r18965 * r18976;
        double r18978 = r18967 + r18977;
        double r18979 = r18965 * r18978;
        double r18980 = r18966 + r18979;
        double r18981 = r18965 * r18980;
        double r18982 = r18962 * r18962;
        double r18983 = -r18982;
        double r18984 = exp(r18983);
        double r18985 = r18981 * r18984;
        double r18986 = r18959 - r18985;
        double r18987 = exp(r18986);
        double r18988 = log(r18987);
        return r18988;
}

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 r18989, r18990, r18991, r18992, r18993, r18994, r18995, r18996, r18997, r18998, r18999, r19000, r19001, r19002, r19003, r19004, r19005, r19006, r19007, r19008, r19009, r19010, r19011, r19012, r19013, r19014;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18989, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18990, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18991);
        mpfr_init(r18992);
        mpfr_init(r18993);
        mpfr_init(r18994);
        mpfr_init(r18995);
        mpfr_init_set_str(r18996, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18997, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18998, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18999, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19000, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19001);
        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);
        mpfr_init(r19013);
        mpfr_init(r19014);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r18991, x, MPFR_RNDN);
        mpfr_abs(r18992, r18991, MPFR_RNDN);
        mpfr_mul(r18993, r18990, r18992, MPFR_RNDN);
        mpfr_add(r18994, r18989, r18993, MPFR_RNDN);
        mpfr_div(r18995, r18989, r18994, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19001, r18995, r19000, MPFR_RNDN);
        mpfr_add(r19002, r18999, r19001, MPFR_RNDN);
        mpfr_mul(r19003, r18995, r19002, MPFR_RNDN);
        mpfr_add(r19004, r18998, r19003, MPFR_RNDN);
        mpfr_mul(r19005, r18995, r19004, MPFR_RNDN);
        mpfr_add(r19006, r18997, r19005, MPFR_RNDN);
        mpfr_mul(r19007, r18995, r19006, MPFR_RNDN);
        mpfr_add(r19008, r18996, r19007, MPFR_RNDN);
        mpfr_mul(r19009, r18995, r19008, MPFR_RNDN);
        mpfr_mul(r19010, r18992, r18992, MPFR_RNDN);
        mpfr_neg(r19011, r19010, MPFR_RNDN);
        mpfr_exp(r19012, r19011, MPFR_RNDN);
        mpfr_mul(r19013, r19009, r19012, MPFR_RNDN);
        mpfr_sub(r19014, r18989, r19013, MPFR_RNDN);
        return mpfr_get_d(r19014, MPFR_RNDN);
}

static mpfr_t 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, r19041, r19042, r19043, r19044;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19015, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19016, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19017);
        mpfr_init(r19018);
        mpfr_init(r19019);
        mpfr_init(r19020);
        mpfr_init(r19021);
        mpfr_init_set_str(r19022, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19023, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19024, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19025, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19026);
        mpfr_init(r19027);
        mpfr_init_set_str(r19028, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19029);
        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);
        mpfr_init(r19041);
        mpfr_init(r19042);
        mpfr_init(r19043);
        mpfr_init(r19044);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19017, x, MPFR_RNDN);
        mpfr_abs(r19018, r19017, MPFR_RNDN);
        mpfr_mul(r19019, r19016, r19018, MPFR_RNDN);
        mpfr_add(r19020, r19015, r19019, MPFR_RNDN);
        mpfr_div(r19021, r19015, r19020, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_exp(r19026, r19021, MPFR_RNDN);
        mpfr_log(r19027, r19026, MPFR_RNDN);
        ;
        mpfr_mul(r19029, r19027, r19028, MPFR_RNDN);
        mpfr_add(r19030, r19025, r19029, MPFR_RNDN);
        mpfr_mul(r19031, r19021, r19030, MPFR_RNDN);
        mpfr_add(r19032, r19024, r19031, MPFR_RNDN);
        mpfr_mul(r19033, r19021, r19032, MPFR_RNDN);
        mpfr_add(r19034, r19023, r19033, MPFR_RNDN);
        mpfr_mul(r19035, r19021, r19034, MPFR_RNDN);
        mpfr_add(r19036, r19022, r19035, MPFR_RNDN);
        mpfr_mul(r19037, r19021, r19036, MPFR_RNDN);
        mpfr_mul(r19038, r19018, r19018, MPFR_RNDN);
        mpfr_neg(r19039, r19038, MPFR_RNDN);
        mpfr_exp(r19040, r19039, MPFR_RNDN);
        mpfr_mul(r19041, r19037, r19040, MPFR_RNDN);
        mpfr_sub(r19042, r19015, r19041, MPFR_RNDN);
        mpfr_exp(r19043, r19042, MPFR_RNDN);
        mpfr_log(r19044, r19043, MPFR_RNDN);
        return mpfr_get_d(r19044, MPFR_RNDN);
}

static mpfr_t r19045, r19046, r19047, r19048, r19049, r19050, r19051, r19052, r19053, r19054, r19055, r19056, r19057, r19058, r19059, r19060, r19061, r19062, r19063, r19064, r19065, r19066, r19067, r19068, r19069, r19070, r19071, r19072, r19073, r19074;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19045, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19046, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19047);
        mpfr_init(r19048);
        mpfr_init(r19049);
        mpfr_init(r19050);
        mpfr_init(r19051);
        mpfr_init_set_str(r19052, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19053, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19054, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19055, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19056);
        mpfr_init(r19057);
        mpfr_init_set_str(r19058, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19059);
        mpfr_init(r19060);
        mpfr_init(r19061);
        mpfr_init(r19062);
        mpfr_init(r19063);
        mpfr_init(r19064);
        mpfr_init(r19065);
        mpfr_init(r19066);
        mpfr_init(r19067);
        mpfr_init(r19068);
        mpfr_init(r19069);
        mpfr_init(r19070);
        mpfr_init(r19071);
        mpfr_init(r19072);
        mpfr_init(r19073);
        mpfr_init(r19074);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19047, x, MPFR_RNDN);
        mpfr_abs(r19048, r19047, MPFR_RNDN);
        mpfr_mul(r19049, r19046, r19048, MPFR_RNDN);
        mpfr_add(r19050, r19045, r19049, MPFR_RNDN);
        mpfr_div(r19051, r19045, r19050, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_exp(r19056, r19051, MPFR_RNDN);
        mpfr_log(r19057, r19056, MPFR_RNDN);
        ;
        mpfr_mul(r19059, r19057, r19058, MPFR_RNDN);
        mpfr_add(r19060, r19055, r19059, MPFR_RNDN);
        mpfr_mul(r19061, r19051, r19060, MPFR_RNDN);
        mpfr_add(r19062, r19054, r19061, MPFR_RNDN);
        mpfr_mul(r19063, r19051, r19062, MPFR_RNDN);
        mpfr_add(r19064, r19053, r19063, MPFR_RNDN);
        mpfr_mul(r19065, r19051, r19064, MPFR_RNDN);
        mpfr_add(r19066, r19052, r19065, MPFR_RNDN);
        mpfr_mul(r19067, r19051, r19066, MPFR_RNDN);
        mpfr_mul(r19068, r19048, r19048, MPFR_RNDN);
        mpfr_neg(r19069, r19068, MPFR_RNDN);
        mpfr_exp(r19070, r19069, MPFR_RNDN);
        mpfr_mul(r19071, r19067, r19070, MPFR_RNDN);
        mpfr_sub(r19072, r19045, r19071, MPFR_RNDN);
        mpfr_exp(r19073, r19072, MPFR_RNDN);
        mpfr_log(r19074, r19073, MPFR_RNDN);
        return mpfr_get_d(r19074, MPFR_RNDN);
}

