#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 r19009 = 1.0f;
        float r19010 = 0.32759109139442444f;
        float r19011 = x;
        float r19012 = fabs(r19011);
        float r19013 = r19010 * r19012;
        float r19014 = r19009 + r19013;
        float r19015 = r19009 / r19014;
        float r19016 = 0.2548295855522156f;
        float r19017 = -0.2844967246055603f;
        float r19018 = 1.421413779258728f;
        float r19019 = -1.453152060508728f;
        float r19020 = 1.0614054203033447f;
        float r19021 = r19015 * r19020;
        float r19022 = r19019 + r19021;
        float r19023 = r19015 * r19022;
        float r19024 = r19018 + r19023;
        float r19025 = r19015 * r19024;
        float r19026 = r19017 + r19025;
        float r19027 = r19015 * r19026;
        float r19028 = r19016 + r19027;
        float r19029 = r19015 * r19028;
        float r19030 = r19012 * r19012;
        float r19031 = -r19030;
        float r19032 = exp(r19031);
        float r19033 = r19029 * r19032;
        float r19034 = r19009 - r19033;
        return r19034;
}

double f_id(double x) {
        double r19035 = 1.0;
        double r19036 = 0.32759109139442444;
        double r19037 = x;
        double r19038 = fabs(r19037);
        double r19039 = r19036 * r19038;
        double r19040 = r19035 + r19039;
        double r19041 = r19035 / r19040;
        double r19042 = 0.2548295855522156;
        double r19043 = -0.2844967246055603;
        double r19044 = 1.421413779258728;
        double r19045 = -1.453152060508728;
        double r19046 = 1.0614054203033447;
        double r19047 = r19041 * r19046;
        double r19048 = r19045 + r19047;
        double r19049 = r19041 * r19048;
        double r19050 = r19044 + r19049;
        double r19051 = r19041 * r19050;
        double r19052 = r19043 + r19051;
        double r19053 = r19041 * r19052;
        double r19054 = r19042 + r19053;
        double r19055 = r19041 * r19054;
        double r19056 = r19038 * r19038;
        double r19057 = -r19056;
        double r19058 = exp(r19057);
        double r19059 = r19055 * r19058;
        double r19060 = r19035 - r19059;
        return r19060;
}


double f_of(float x) {
        float r19061 = 1.0f;
        float r19062 = 0.32759109139442444f;
        float r19063 = x;
        float r19064 = fabs(r19063);
        float r19065 = r19062 * r19064;
        float r19066 = r19061 + r19065;
        float r19067 = r19061 / r19066;
        float r19068 = 0.2548295855522156f;
        float r19069 = -0.2844967246055603f;
        float r19070 = 1.421413779258728f;
        float r19071 = -1.453152060508728f;
        float r19072 = r19071 * r19071;
        float r19073 = 1.0614054203033447f;
        float r19074 = r19067 * r19073;
        float r19075 = r19074 * r19074;
        float r19076 = r19072 - r19075;
        float r19077 = pow(r19076, r19061);
        float r19078 = r19064 * r19062;
        float r19079 = r19061 + r19078;
        float r19080 = r19073 / r19079;
        float r19081 = r19071 - r19080;
        float r19082 = r19077 / r19081;
        float r19083 = r19067 * r19082;
        float r19084 = r19070 + r19083;
        float r19085 = r19067 * r19084;
        float r19086 = r19069 + r19085;
        float r19087 = r19067 * r19086;
        float r19088 = r19068 + r19087;
        float r19089 = r19067 * r19088;
        float r19090 = r19064 * r19064;
        float r19091 = -r19090;
        float r19092 = exp(r19091);
        float r19093 = r19089 * r19092;
        float r19094 = r19061 - r19093;
        return r19094;
}

double f_od(double x) {
        double r19095 = 1.0;
        double r19096 = 0.32759109139442444;
        double r19097 = x;
        double r19098 = fabs(r19097);
        double r19099 = r19096 * r19098;
        double r19100 = r19095 + r19099;
        double r19101 = r19095 / r19100;
        double r19102 = 0.2548295855522156;
        double r19103 = -0.2844967246055603;
        double r19104 = 1.421413779258728;
        double r19105 = -1.453152060508728;
        double r19106 = r19105 * r19105;
        double r19107 = 1.0614054203033447;
        double r19108 = r19101 * r19107;
        double r19109 = r19108 * r19108;
        double r19110 = r19106 - r19109;
        double r19111 = pow(r19110, r19095);
        double r19112 = r19098 * r19096;
        double r19113 = r19095 + r19112;
        double r19114 = r19107 / r19113;
        double r19115 = r19105 - r19114;
        double r19116 = r19111 / r19115;
        double r19117 = r19101 * r19116;
        double r19118 = r19104 + r19117;
        double r19119 = r19101 * r19118;
        double r19120 = r19103 + r19119;
        double r19121 = r19101 * r19120;
        double r19122 = r19102 + r19121;
        double r19123 = r19101 * r19122;
        double r19124 = r19098 * r19098;
        double r19125 = -r19124;
        double r19126 = exp(r19125);
        double r19127 = r19123 * r19126;
        double r19128 = r19095 - r19127;
        return r19128;
}

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 r19129, r19130, r19131, r19132, r19133, r19134, r19135, r19136, r19137, r19138, r19139, r19140, r19141, r19142, r19143, r19144, r19145, r19146, r19147, r19148, r19149, r19150, r19151, r19152, r19153, r19154;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19129, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19130, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19131);
        mpfr_init(r19132);
        mpfr_init(r19133);
        mpfr_init(r19134);
        mpfr_init(r19135);
        mpfr_init_set_str(r19136, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19137, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19138, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19139, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19140, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19141);
        mpfr_init(r19142);
        mpfr_init(r19143);
        mpfr_init(r19144);
        mpfr_init(r19145);
        mpfr_init(r19146);
        mpfr_init(r19147);
        mpfr_init(r19148);
        mpfr_init(r19149);
        mpfr_init(r19150);
        mpfr_init(r19151);
        mpfr_init(r19152);
        mpfr_init(r19153);
        mpfr_init(r19154);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19131, x, MPFR_RNDN);
        mpfr_abs(r19132, r19131, MPFR_RNDN);
        mpfr_mul(r19133, r19130, r19132, MPFR_RNDN);
        mpfr_add(r19134, r19129, r19133, MPFR_RNDN);
        mpfr_div(r19135, r19129, r19134, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19141, r19135, r19140, MPFR_RNDN);
        mpfr_add(r19142, r19139, r19141, MPFR_RNDN);
        mpfr_mul(r19143, r19135, r19142, MPFR_RNDN);
        mpfr_add(r19144, r19138, r19143, MPFR_RNDN);
        mpfr_mul(r19145, r19135, r19144, MPFR_RNDN);
        mpfr_add(r19146, r19137, r19145, MPFR_RNDN);
        mpfr_mul(r19147, r19135, r19146, MPFR_RNDN);
        mpfr_add(r19148, r19136, r19147, MPFR_RNDN);
        mpfr_mul(r19149, r19135, r19148, MPFR_RNDN);
        mpfr_mul(r19150, r19132, r19132, MPFR_RNDN);
        mpfr_neg(r19151, r19150, MPFR_RNDN);
        mpfr_exp(r19152, r19151, MPFR_RNDN);
        mpfr_mul(r19153, r19149, r19152, MPFR_RNDN);
        mpfr_sub(r19154, r19129, r19153, MPFR_RNDN);
        return mpfr_get_d(r19154, MPFR_RNDN);
}

static mpfr_t r19155, r19156, r19157, r19158, r19159, r19160, r19161, r19162, r19163, r19164, r19165, r19166, r19167, r19168, r19169, r19170, r19171, r19172, r19173, r19174, r19175, r19176, r19177, r19178, r19179, r19180, r19181, r19182, r19183, r19184, r19185, r19186, r19187, r19188;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19155, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19156, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19157);
        mpfr_init(r19158);
        mpfr_init(r19159);
        mpfr_init(r19160);
        mpfr_init(r19161);
        mpfr_init_set_str(r19162, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19163, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19164, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19165, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19166);
        mpfr_init_set_str(r19167, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19168);
        mpfr_init(r19169);
        mpfr_init(r19170);
        mpfr_init(r19171);
        mpfr_init(r19172);
        mpfr_init(r19173);
        mpfr_init(r19174);
        mpfr_init(r19175);
        mpfr_init(r19176);
        mpfr_init(r19177);
        mpfr_init(r19178);
        mpfr_init(r19179);
        mpfr_init(r19180);
        mpfr_init(r19181);
        mpfr_init(r19182);
        mpfr_init(r19183);
        mpfr_init(r19184);
        mpfr_init(r19185);
        mpfr_init(r19186);
        mpfr_init(r19187);
        mpfr_init(r19188);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19157, x, MPFR_RNDN);
        mpfr_abs(r19158, r19157, MPFR_RNDN);
        mpfr_mul(r19159, r19156, r19158, MPFR_RNDN);
        mpfr_add(r19160, r19155, r19159, MPFR_RNDN);
        mpfr_div(r19161, r19155, r19160, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19166, r19165, MPFR_RNDN);
        ;
        mpfr_mul(r19168, r19161, r19167, MPFR_RNDN);
        mpfr_sqr(r19169, r19168, MPFR_RNDN);
        mpfr_sub(r19170, r19166, r19169, MPFR_RNDN);
        mpfr_pow(r19171, r19170, r19155, MPFR_RNDN);
        mpfr_mul(r19172, r19158, r19156, MPFR_RNDN);
        mpfr_add(r19173, r19155, r19172, MPFR_RNDN);
        mpfr_div(r19174, r19167, r19173, MPFR_RNDN);
        mpfr_sub(r19175, r19165, r19174, MPFR_RNDN);
        mpfr_div(r19176, r19171, r19175, MPFR_RNDN);
        mpfr_mul(r19177, r19161, r19176, MPFR_RNDN);
        mpfr_add(r19178, r19164, r19177, MPFR_RNDN);
        mpfr_mul(r19179, r19161, r19178, MPFR_RNDN);
        mpfr_add(r19180, r19163, r19179, MPFR_RNDN);
        mpfr_mul(r19181, r19161, r19180, MPFR_RNDN);
        mpfr_add(r19182, r19162, r19181, MPFR_RNDN);
        mpfr_mul(r19183, r19161, r19182, MPFR_RNDN);
        mpfr_mul(r19184, r19158, r19158, MPFR_RNDN);
        mpfr_neg(r19185, r19184, MPFR_RNDN);
        mpfr_exp(r19186, r19185, MPFR_RNDN);
        mpfr_mul(r19187, r19183, r19186, MPFR_RNDN);
        mpfr_sub(r19188, r19155, r19187, MPFR_RNDN);
        return mpfr_get_d(r19188, MPFR_RNDN);
}

static mpfr_t r19189, r19190, r19191, r19192, r19193, r19194, r19195, r19196, r19197, r19198, r19199, r19200, r19201, r19202, r19203, r19204, r19205, r19206, r19207, r19208, r19209, r19210, r19211, r19212, r19213, r19214, r19215, r19216, r19217, r19218, r19219, r19220, r19221, r19222;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19189, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19190, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19191);
        mpfr_init(r19192);
        mpfr_init(r19193);
        mpfr_init(r19194);
        mpfr_init(r19195);
        mpfr_init_set_str(r19196, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19197, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19198, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19199, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19200);
        mpfr_init_set_str(r19201, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19202);
        mpfr_init(r19203);
        mpfr_init(r19204);
        mpfr_init(r19205);
        mpfr_init(r19206);
        mpfr_init(r19207);
        mpfr_init(r19208);
        mpfr_init(r19209);
        mpfr_init(r19210);
        mpfr_init(r19211);
        mpfr_init(r19212);
        mpfr_init(r19213);
        mpfr_init(r19214);
        mpfr_init(r19215);
        mpfr_init(r19216);
        mpfr_init(r19217);
        mpfr_init(r19218);
        mpfr_init(r19219);
        mpfr_init(r19220);
        mpfr_init(r19221);
        mpfr_init(r19222);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19191, x, MPFR_RNDN);
        mpfr_abs(r19192, r19191, MPFR_RNDN);
        mpfr_mul(r19193, r19190, r19192, MPFR_RNDN);
        mpfr_add(r19194, r19189, r19193, MPFR_RNDN);
        mpfr_div(r19195, r19189, r19194, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19200, r19199, MPFR_RNDN);
        ;
        mpfr_mul(r19202, r19195, r19201, MPFR_RNDN);
        mpfr_sqr(r19203, r19202, MPFR_RNDN);
        mpfr_sub(r19204, r19200, r19203, MPFR_RNDN);
        mpfr_pow(r19205, r19204, r19189, MPFR_RNDN);
        mpfr_mul(r19206, r19192, r19190, MPFR_RNDN);
        mpfr_add(r19207, r19189, r19206, MPFR_RNDN);
        mpfr_div(r19208, r19201, r19207, MPFR_RNDN);
        mpfr_sub(r19209, r19199, r19208, MPFR_RNDN);
        mpfr_div(r19210, r19205, r19209, MPFR_RNDN);
        mpfr_mul(r19211, r19195, r19210, MPFR_RNDN);
        mpfr_add(r19212, r19198, r19211, MPFR_RNDN);
        mpfr_mul(r19213, r19195, r19212, MPFR_RNDN);
        mpfr_add(r19214, r19197, r19213, MPFR_RNDN);
        mpfr_mul(r19215, r19195, r19214, MPFR_RNDN);
        mpfr_add(r19216, r19196, r19215, MPFR_RNDN);
        mpfr_mul(r19217, r19195, r19216, MPFR_RNDN);
        mpfr_mul(r19218, r19192, r19192, MPFR_RNDN);
        mpfr_neg(r19219, r19218, MPFR_RNDN);
        mpfr_exp(r19220, r19219, MPFR_RNDN);
        mpfr_mul(r19221, r19217, r19220, MPFR_RNDN);
        mpfr_sub(r19222, r19189, r19221, MPFR_RNDN);
        return mpfr_get_d(r19222, MPFR_RNDN);
}

