#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 r18889 = 1.0f;
        float r18890 = 0.3275911f;
        float r18891 = x;
        float r18892 = fabs(r18891);
        float r18893 = r18890 * r18892;
        float r18894 = r18889 + r18893;
        float r18895 = r18889 / r18894;
        float r18896 = 0.254829592f;
        float r18897 = -0.284496736f;
        float r18898 = 1.421413741f;
        float r18899 = -1.453152027f;
        float r18900 = 1.061405429f;
        float r18901 = r18895 * r18900;
        float r18902 = r18899 + r18901;
        float r18903 = r18895 * r18902;
        float r18904 = r18898 + r18903;
        float r18905 = r18895 * r18904;
        float r18906 = r18897 + r18905;
        float r18907 = r18895 * r18906;
        float r18908 = r18896 + r18907;
        float r18909 = r18895 * r18908;
        float r18910 = r18892 * r18892;
        float r18911 = -r18910;
        float r18912 = exp(r18911);
        float r18913 = r18909 * r18912;
        float r18914 = r18889 - r18913;
        return r18914;
}

double f_id(double x) {
        double r18915 = 1.0;
        double r18916 = 0.3275911;
        double r18917 = x;
        double r18918 = fabs(r18917);
        double r18919 = r18916 * r18918;
        double r18920 = r18915 + r18919;
        double r18921 = r18915 / r18920;
        double r18922 = 0.254829592;
        double r18923 = -0.284496736;
        double r18924 = 1.421413741;
        double r18925 = -1.453152027;
        double r18926 = 1.061405429;
        double r18927 = r18921 * r18926;
        double r18928 = r18925 + r18927;
        double r18929 = r18921 * r18928;
        double r18930 = r18924 + r18929;
        double r18931 = r18921 * r18930;
        double r18932 = r18923 + r18931;
        double r18933 = r18921 * r18932;
        double r18934 = r18922 + r18933;
        double r18935 = r18921 * r18934;
        double r18936 = r18918 * r18918;
        double r18937 = -r18936;
        double r18938 = exp(r18937);
        double r18939 = r18935 * r18938;
        double r18940 = r18915 - r18939;
        return r18940;
}


double f_of(float x) {
        float r18941 = 1.0f;
        float r18942 = 0.3275911f;
        float r18943 = x;
        float r18944 = fabs(r18943);
        float r18945 = r18942 * r18944;
        float r18946 = r18941 + r18945;
        float r18947 = r18941 / r18946;
        float r18948 = 0.254829592f;
        float r18949 = -0.284496736f;
        float r18950 = 1.421413741f;
        float r18951 = -1.453152027f;
        float r18952 = 1.061405429f;
        float r18953 = r18947 * r18952;
        float r18954 = r18951 + r18953;
        float r18955 = r18947 * r18954;
        float r18956 = r18950 + r18955;
        float r18957 = r18947 * r18956;
        float r18958 = r18949 + r18957;
        float r18959 = r18947 * r18958;
        float r18960 = r18948 + r18959;
        float r18961 = r18960 * (r18960 * r18960);
        float r18962 = cbrt(r18961);
        float r18963 = r18947 * r18962;
        float r18964 = r18944 * r18944;
        float r18965 = -r18964;
        float r18966 = exp(r18965);
        float r18967 = r18963 * r18966;
        float r18968 = r18941 - r18967;
        float r18969 = exp(r18968);
        float r18970 = log(r18969);
        return r18970;
}

double f_od(double x) {
        double r18971 = 1.0;
        double r18972 = 0.3275911;
        double r18973 = x;
        double r18974 = fabs(r18973);
        double r18975 = r18972 * r18974;
        double r18976 = r18971 + r18975;
        double r18977 = r18971 / r18976;
        double r18978 = 0.254829592;
        double r18979 = -0.284496736;
        double r18980 = 1.421413741;
        double r18981 = -1.453152027;
        double r18982 = 1.061405429;
        double r18983 = r18977 * r18982;
        double r18984 = r18981 + r18983;
        double r18985 = r18977 * r18984;
        double r18986 = r18980 + r18985;
        double r18987 = r18977 * r18986;
        double r18988 = r18979 + r18987;
        double r18989 = r18977 * r18988;
        double r18990 = r18978 + r18989;
        double r18991 = r18990 * (r18990 * r18990);
        double r18992 = cbrt(r18991);
        double r18993 = r18977 * r18992;
        double r18994 = r18974 * r18974;
        double r18995 = -r18994;
        double r18996 = exp(r18995);
        double r18997 = r18993 * r18996;
        double r18998 = r18971 - r18997;
        double r18999 = exp(r18998);
        double r19000 = log(r18999);
        return r19000;
}

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 r19001, r19002, r19003, r19004, r19005, r19006, r19007, r19008, r19009, r19010, r19011, r19012, r19013, r19014, r19015, r19016, r19017, r19018, r19019, r19020, r19021, r19022, r19023, r19024, r19025, r19026;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19001, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19002, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19003);
        mpfr_init(r19004);
        mpfr_init(r19005);
        mpfr_init(r19006);
        mpfr_init(r19007);
        mpfr_init_set_str(r19008, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19009, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19010, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19011, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19012, "1.061405429", 10, MPFR_RNDN);
        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);
        mpfr_init(r19025);
        mpfr_init(r19026);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19003, x, MPFR_RNDN);
        mpfr_abs(r19004, r19003, MPFR_RNDN);
        mpfr_mul(r19005, r19002, r19004, MPFR_RNDN);
        mpfr_add(r19006, r19001, r19005, MPFR_RNDN);
        mpfr_div(r19007, r19001, r19006, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19013, r19007, r19012, MPFR_RNDN);
        mpfr_add(r19014, r19011, r19013, MPFR_RNDN);
        mpfr_mul(r19015, r19007, r19014, MPFR_RNDN);
        mpfr_add(r19016, r19010, r19015, MPFR_RNDN);
        mpfr_mul(r19017, r19007, r19016, MPFR_RNDN);
        mpfr_add(r19018, r19009, r19017, MPFR_RNDN);
        mpfr_mul(r19019, r19007, r19018, MPFR_RNDN);
        mpfr_add(r19020, r19008, r19019, MPFR_RNDN);
        mpfr_mul(r19021, r19007, r19020, MPFR_RNDN);
        mpfr_mul(r19022, r19004, r19004, MPFR_RNDN);
        mpfr_neg(r19023, r19022, MPFR_RNDN);
        mpfr_exp(r19024, r19023, MPFR_RNDN);
        mpfr_mul(r19025, r19021, r19024, MPFR_RNDN);
        mpfr_sub(r19026, r19001, r19025, MPFR_RNDN);
        return mpfr_get_d(r19026, MPFR_RNDN);
}

static mpfr_t r19027, r19028, r19029, r19030, r19031, r19032, r19033, r19034, r19035, r19036, r19037, r19038, r19039, r19040, r19041, r19042, r19043, r19044, r19045, r19046, r19047, r19048, r19049, r19050, r19051, r19052, r19053, r19054, r19055, r19056;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19027, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19028, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19029);
        mpfr_init(r19030);
        mpfr_init(r19031);
        mpfr_init(r19032);
        mpfr_init(r19033);
        mpfr_init_set_str(r19034, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19035, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19036, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19037, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19038, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19039);
        mpfr_init(r19040);
        mpfr_init(r19041);
        mpfr_init(r19042);
        mpfr_init(r19043);
        mpfr_init(r19044);
        mpfr_init(r19045);
        mpfr_init(r19046);
        mpfr_init(r19047);
        mpfr_init(r19048);
        mpfr_init(r19049);
        mpfr_init(r19050);
        mpfr_init(r19051);
        mpfr_init(r19052);
        mpfr_init(r19053);
        mpfr_init(r19054);
        mpfr_init(r19055);
        mpfr_init(r19056);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19029, x, MPFR_RNDN);
        mpfr_abs(r19030, r19029, MPFR_RNDN);
        mpfr_mul(r19031, r19028, r19030, MPFR_RNDN);
        mpfr_add(r19032, r19027, r19031, MPFR_RNDN);
        mpfr_div(r19033, r19027, r19032, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19039, r19033, r19038, MPFR_RNDN);
        mpfr_add(r19040, r19037, r19039, MPFR_RNDN);
        mpfr_mul(r19041, r19033, r19040, MPFR_RNDN);
        mpfr_add(r19042, r19036, r19041, MPFR_RNDN);
        mpfr_mul(r19043, r19033, r19042, MPFR_RNDN);
        mpfr_add(r19044, r19035, r19043, MPFR_RNDN);
        mpfr_mul(r19045, r19033, r19044, MPFR_RNDN);
        mpfr_add(r19046, r19034, r19045, MPFR_RNDN);
        mpfr_mul(r19047, r19046, r19046, MPFR_RNDN); mpfr_mul(r19047, r19047, r19046, MPFR_RNDN);
        mpfr_cbrt(r19048, r19047, MPFR_RNDN);
        mpfr_mul(r19049, r19033, r19048, MPFR_RNDN);
        mpfr_mul(r19050, r19030, r19030, MPFR_RNDN);
        mpfr_neg(r19051, r19050, MPFR_RNDN);
        mpfr_exp(r19052, r19051, MPFR_RNDN);
        mpfr_mul(r19053, r19049, r19052, MPFR_RNDN);
        mpfr_sub(r19054, r19027, r19053, MPFR_RNDN);
        mpfr_exp(r19055, r19054, MPFR_RNDN);
        mpfr_log(r19056, r19055, MPFR_RNDN);
        return mpfr_get_d(r19056, MPFR_RNDN);
}

static mpfr_t r19057, r19058, r19059, r19060, r19061, r19062, r19063, r19064, r19065, r19066, r19067, r19068, r19069, r19070, r19071, r19072, r19073, r19074, r19075, r19076, r19077, r19078, r19079, r19080, r19081, r19082, r19083, r19084, r19085, r19086;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19057, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19058, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19059);
        mpfr_init(r19060);
        mpfr_init(r19061);
        mpfr_init(r19062);
        mpfr_init(r19063);
        mpfr_init_set_str(r19064, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19065, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19066, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19067, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19068, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19069);
        mpfr_init(r19070);
        mpfr_init(r19071);
        mpfr_init(r19072);
        mpfr_init(r19073);
        mpfr_init(r19074);
        mpfr_init(r19075);
        mpfr_init(r19076);
        mpfr_init(r19077);
        mpfr_init(r19078);
        mpfr_init(r19079);
        mpfr_init(r19080);
        mpfr_init(r19081);
        mpfr_init(r19082);
        mpfr_init(r19083);
        mpfr_init(r19084);
        mpfr_init(r19085);
        mpfr_init(r19086);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19059, x, MPFR_RNDN);
        mpfr_abs(r19060, r19059, MPFR_RNDN);
        mpfr_mul(r19061, r19058, r19060, MPFR_RNDN);
        mpfr_add(r19062, r19057, r19061, MPFR_RNDN);
        mpfr_div(r19063, r19057, r19062, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19069, r19063, r19068, MPFR_RNDN);
        mpfr_add(r19070, r19067, r19069, MPFR_RNDN);
        mpfr_mul(r19071, r19063, r19070, MPFR_RNDN);
        mpfr_add(r19072, r19066, r19071, MPFR_RNDN);
        mpfr_mul(r19073, r19063, r19072, MPFR_RNDN);
        mpfr_add(r19074, r19065, r19073, MPFR_RNDN);
        mpfr_mul(r19075, r19063, r19074, MPFR_RNDN);
        mpfr_add(r19076, r19064, r19075, MPFR_RNDN);
        mpfr_mul(r19077, r19076, r19076, MPFR_RNDN); mpfr_mul(r19077, r19077, r19076, MPFR_RNDN);
        mpfr_cbrt(r19078, r19077, MPFR_RNDN);
        mpfr_mul(r19079, r19063, r19078, MPFR_RNDN);
        mpfr_mul(r19080, r19060, r19060, MPFR_RNDN);
        mpfr_neg(r19081, r19080, MPFR_RNDN);
        mpfr_exp(r19082, r19081, MPFR_RNDN);
        mpfr_mul(r19083, r19079, r19082, MPFR_RNDN);
        mpfr_sub(r19084, r19057, r19083, MPFR_RNDN);
        mpfr_exp(r19085, r19084, MPFR_RNDN);
        mpfr_log(r19086, r19085, MPFR_RNDN);
        return mpfr_get_d(r19086, MPFR_RNDN);
}

