#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 r19057 = 1.0f;
        float r19058 = 0.32759109139442444f;
        float r19059 = x;
        float r19060 = fabs(r19059);
        float r19061 = r19058 * r19060;
        float r19062 = r19057 + r19061;
        float r19063 = r19057 / r19062;
        float r19064 = 0.2548295855522156f;
        float r19065 = -0.2844967246055603f;
        float r19066 = 1.421413779258728f;
        float r19067 = -1.453152060508728f;
        float r19068 = 1.0614054203033447f;
        float r19069 = r19063 * r19068;
        float r19070 = r19067 + r19069;
        float r19071 = r19063 * r19070;
        float r19072 = r19066 + r19071;
        float r19073 = r19063 * r19072;
        float r19074 = r19065 + r19073;
        float r19075 = r19063 * r19074;
        float r19076 = r19064 + r19075;
        float r19077 = r19063 * r19076;
        float r19078 = r19060 * r19060;
        float r19079 = -r19078;
        float r19080 = exp(r19079);
        float r19081 = r19077 * r19080;
        float r19082 = r19057 - r19081;
        return r19082;
}

double f_id(double x) {
        double r19083 = 1.0;
        double r19084 = 0.32759109139442444;
        double r19085 = x;
        double r19086 = fabs(r19085);
        double r19087 = r19084 * r19086;
        double r19088 = r19083 + r19087;
        double r19089 = r19083 / r19088;
        double r19090 = 0.2548295855522156;
        double r19091 = -0.2844967246055603;
        double r19092 = 1.421413779258728;
        double r19093 = -1.453152060508728;
        double r19094 = 1.0614054203033447;
        double r19095 = r19089 * r19094;
        double r19096 = r19093 + r19095;
        double r19097 = r19089 * r19096;
        double r19098 = r19092 + r19097;
        double r19099 = r19089 * r19098;
        double r19100 = r19091 + r19099;
        double r19101 = r19089 * r19100;
        double r19102 = r19090 + r19101;
        double r19103 = r19089 * r19102;
        double r19104 = r19086 * r19086;
        double r19105 = -r19104;
        double r19106 = exp(r19105);
        double r19107 = r19103 * r19106;
        double r19108 = r19083 - r19107;
        return r19108;
}


double f_of(float x) {
        float r19109 = 1.0f;
        float r19110 = 0.32759109139442444f;
        float r19111 = x;
        float r19112 = fabs(r19111);
        float r19113 = r19110 * r19112;
        float r19114 = r19109 + r19113;
        float r19115 = r19109 / r19114;
        float r19116 = 0.2548295855522156f;
        float r19117 = -0.2844967246055603f;
        float r19118 = 1.421413779258728f;
        float r19119 = -1.453152060508728f;
        float r19120 = r19119 * r19119;
        float r19121 = 1.0614054203033447f;
        float r19122 = r19115 * r19121;
        float r19123 = r19122 * r19122;
        float r19124 = r19120 - r19123;
        float r19125 = r19124 * (r19124 * r19124);
        float r19126 = cbrt(r19125);
        float r19127 = r19112 * r19110;
        float r19128 = exp(r19127);
        float r19129 = log(r19128);
        float r19130 = r19109 + r19129;
        float r19131 = r19121 / r19130;
        float r19132 = r19119 - r19131;
        float r19133 = r19126 / r19132;
        float r19134 = r19115 * r19133;
        float r19135 = r19118 + r19134;
        float r19136 = r19115 * r19135;
        float r19137 = r19117 + r19136;
        float r19138 = r19115 * r19137;
        float r19139 = r19116 + r19138;
        float r19140 = r19115 * r19139;
        float r19141 = r19112 * r19112;
        float r19142 = -r19141;
        float r19143 = exp(r19142);
        float r19144 = r19140 * r19143;
        float r19145 = r19109 - r19144;
        return r19145;
}

double f_od(double x) {
        double r19146 = 1.0;
        double r19147 = 0.32759109139442444;
        double r19148 = x;
        double r19149 = fabs(r19148);
        double r19150 = r19147 * r19149;
        double r19151 = r19146 + r19150;
        double r19152 = r19146 / r19151;
        double r19153 = 0.2548295855522156;
        double r19154 = -0.2844967246055603;
        double r19155 = 1.421413779258728;
        double r19156 = -1.453152060508728;
        double r19157 = r19156 * r19156;
        double r19158 = 1.0614054203033447;
        double r19159 = r19152 * r19158;
        double r19160 = r19159 * r19159;
        double r19161 = r19157 - r19160;
        double r19162 = r19161 * (r19161 * r19161);
        double r19163 = cbrt(r19162);
        double r19164 = r19149 * r19147;
        double r19165 = exp(r19164);
        double r19166 = log(r19165);
        double r19167 = r19146 + r19166;
        double r19168 = r19158 / r19167;
        double r19169 = r19156 - r19168;
        double r19170 = r19163 / r19169;
        double r19171 = r19152 * r19170;
        double r19172 = r19155 + r19171;
        double r19173 = r19152 * r19172;
        double r19174 = r19154 + r19173;
        double r19175 = r19152 * r19174;
        double r19176 = r19153 + r19175;
        double r19177 = r19152 * r19176;
        double r19178 = r19149 * r19149;
        double r19179 = -r19178;
        double r19180 = exp(r19179);
        double r19181 = r19177 * r19180;
        double r19182 = r19146 - r19181;
        return r19182;
}

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 r19183, r19184, r19185, r19186, r19187, r19188, r19189, r19190, r19191, r19192, r19193, r19194, r19195, r19196, r19197, r19198, r19199, r19200, r19201, r19202, r19203, r19204, r19205, r19206, r19207, r19208;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19183, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19184, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19185);
        mpfr_init(r19186);
        mpfr_init(r19187);
        mpfr_init(r19188);
        mpfr_init(r19189);
        mpfr_init_set_str(r19190, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19191, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19192, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19193, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19194, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19195);
        mpfr_init(r19196);
        mpfr_init(r19197);
        mpfr_init(r19198);
        mpfr_init(r19199);
        mpfr_init(r19200);
        mpfr_init(r19201);
        mpfr_init(r19202);
        mpfr_init(r19203);
        mpfr_init(r19204);
        mpfr_init(r19205);
        mpfr_init(r19206);
        mpfr_init(r19207);
        mpfr_init(r19208);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19185, x, MPFR_RNDN);
        mpfr_abs(r19186, r19185, MPFR_RNDN);
        mpfr_mul(r19187, r19184, r19186, MPFR_RNDN);
        mpfr_add(r19188, r19183, r19187, MPFR_RNDN);
        mpfr_div(r19189, r19183, r19188, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19195, r19189, r19194, MPFR_RNDN);
        mpfr_add(r19196, r19193, r19195, MPFR_RNDN);
        mpfr_mul(r19197, r19189, r19196, MPFR_RNDN);
        mpfr_add(r19198, r19192, r19197, MPFR_RNDN);
        mpfr_mul(r19199, r19189, r19198, MPFR_RNDN);
        mpfr_add(r19200, r19191, r19199, MPFR_RNDN);
        mpfr_mul(r19201, r19189, r19200, MPFR_RNDN);
        mpfr_add(r19202, r19190, r19201, MPFR_RNDN);
        mpfr_mul(r19203, r19189, r19202, MPFR_RNDN);
        mpfr_mul(r19204, r19186, r19186, MPFR_RNDN);
        mpfr_neg(r19205, r19204, MPFR_RNDN);
        mpfr_exp(r19206, r19205, MPFR_RNDN);
        mpfr_mul(r19207, r19203, r19206, MPFR_RNDN);
        mpfr_sub(r19208, r19183, r19207, MPFR_RNDN);
        return mpfr_get_d(r19208, MPFR_RNDN);
}

static mpfr_t r19209, r19210, r19211, r19212, r19213, r19214, r19215, r19216, r19217, r19218, r19219, r19220, r19221, r19222, r19223, r19224, r19225, r19226, r19227, r19228, r19229, r19230, r19231, r19232, r19233, r19234, r19235, r19236, r19237, r19238, r19239, r19240, r19241, r19242, r19243, r19244, r19245;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19209, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19210, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19211);
        mpfr_init(r19212);
        mpfr_init(r19213);
        mpfr_init(r19214);
        mpfr_init(r19215);
        mpfr_init_set_str(r19216, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19217, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19218, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19219, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19220);
        mpfr_init_set_str(r19221, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19222);
        mpfr_init(r19223);
        mpfr_init(r19224);
        mpfr_init(r19225);
        mpfr_init(r19226);
        mpfr_init(r19227);
        mpfr_init(r19228);
        mpfr_init(r19229);
        mpfr_init(r19230);
        mpfr_init(r19231);
        mpfr_init(r19232);
        mpfr_init(r19233);
        mpfr_init(r19234);
        mpfr_init(r19235);
        mpfr_init(r19236);
        mpfr_init(r19237);
        mpfr_init(r19238);
        mpfr_init(r19239);
        mpfr_init(r19240);
        mpfr_init(r19241);
        mpfr_init(r19242);
        mpfr_init(r19243);
        mpfr_init(r19244);
        mpfr_init(r19245);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19211, x, MPFR_RNDN);
        mpfr_abs(r19212, r19211, MPFR_RNDN);
        mpfr_mul(r19213, r19210, r19212, MPFR_RNDN);
        mpfr_add(r19214, r19209, r19213, MPFR_RNDN);
        mpfr_div(r19215, r19209, r19214, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19220, r19219, MPFR_RNDN);
        ;
        mpfr_mul(r19222, r19215, r19221, MPFR_RNDN);
        mpfr_sqr(r19223, r19222, MPFR_RNDN);
        mpfr_sub(r19224, r19220, r19223, MPFR_RNDN);
        mpfr_mul(r19225, r19224, r19224, MPFR_RNDN); mpfr_mul(r19225, r19225, r19224, MPFR_RNDN);
        mpfr_cbrt(r19226, r19225, MPFR_RNDN);
        mpfr_mul(r19227, r19212, r19210, MPFR_RNDN);
        mpfr_exp(r19228, r19227, MPFR_RNDN);
        mpfr_log(r19229, r19228, MPFR_RNDN);
        mpfr_add(r19230, r19209, r19229, MPFR_RNDN);
        mpfr_div(r19231, r19221, r19230, MPFR_RNDN);
        mpfr_sub(r19232, r19219, r19231, MPFR_RNDN);
        mpfr_div(r19233, r19226, r19232, MPFR_RNDN);
        mpfr_mul(r19234, r19215, r19233, MPFR_RNDN);
        mpfr_add(r19235, r19218, r19234, MPFR_RNDN);
        mpfr_mul(r19236, r19215, r19235, MPFR_RNDN);
        mpfr_add(r19237, r19217, r19236, MPFR_RNDN);
        mpfr_mul(r19238, r19215, r19237, MPFR_RNDN);
        mpfr_add(r19239, r19216, r19238, MPFR_RNDN);
        mpfr_mul(r19240, r19215, r19239, MPFR_RNDN);
        mpfr_mul(r19241, r19212, r19212, MPFR_RNDN);
        mpfr_neg(r19242, r19241, MPFR_RNDN);
        mpfr_exp(r19243, r19242, MPFR_RNDN);
        mpfr_mul(r19244, r19240, r19243, MPFR_RNDN);
        mpfr_sub(r19245, r19209, r19244, MPFR_RNDN);
        return mpfr_get_d(r19245, MPFR_RNDN);
}

static mpfr_t r19246, r19247, r19248, r19249, r19250, r19251, r19252, r19253, r19254, r19255, r19256, r19257, r19258, r19259, r19260, r19261, r19262, r19263, r19264, r19265, r19266, r19267, r19268, r19269, r19270, r19271, r19272, r19273, r19274, r19275, r19276, r19277, r19278, r19279, r19280, r19281, r19282;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19246, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19247, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19248);
        mpfr_init(r19249);
        mpfr_init(r19250);
        mpfr_init(r19251);
        mpfr_init(r19252);
        mpfr_init_set_str(r19253, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19254, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19255, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19256, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19257);
        mpfr_init_set_str(r19258, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19259);
        mpfr_init(r19260);
        mpfr_init(r19261);
        mpfr_init(r19262);
        mpfr_init(r19263);
        mpfr_init(r19264);
        mpfr_init(r19265);
        mpfr_init(r19266);
        mpfr_init(r19267);
        mpfr_init(r19268);
        mpfr_init(r19269);
        mpfr_init(r19270);
        mpfr_init(r19271);
        mpfr_init(r19272);
        mpfr_init(r19273);
        mpfr_init(r19274);
        mpfr_init(r19275);
        mpfr_init(r19276);
        mpfr_init(r19277);
        mpfr_init(r19278);
        mpfr_init(r19279);
        mpfr_init(r19280);
        mpfr_init(r19281);
        mpfr_init(r19282);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19248, x, MPFR_RNDN);
        mpfr_abs(r19249, r19248, MPFR_RNDN);
        mpfr_mul(r19250, r19247, r19249, MPFR_RNDN);
        mpfr_add(r19251, r19246, r19250, MPFR_RNDN);
        mpfr_div(r19252, r19246, r19251, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19257, r19256, MPFR_RNDN);
        ;
        mpfr_mul(r19259, r19252, r19258, MPFR_RNDN);
        mpfr_sqr(r19260, r19259, MPFR_RNDN);
        mpfr_sub(r19261, r19257, r19260, MPFR_RNDN);
        mpfr_mul(r19262, r19261, r19261, MPFR_RNDN); mpfr_mul(r19262, r19262, r19261, MPFR_RNDN);
        mpfr_cbrt(r19263, r19262, MPFR_RNDN);
        mpfr_mul(r19264, r19249, r19247, MPFR_RNDN);
        mpfr_exp(r19265, r19264, MPFR_RNDN);
        mpfr_log(r19266, r19265, MPFR_RNDN);
        mpfr_add(r19267, r19246, r19266, MPFR_RNDN);
        mpfr_div(r19268, r19258, r19267, MPFR_RNDN);
        mpfr_sub(r19269, r19256, r19268, MPFR_RNDN);
        mpfr_div(r19270, r19263, r19269, MPFR_RNDN);
        mpfr_mul(r19271, r19252, r19270, MPFR_RNDN);
        mpfr_add(r19272, r19255, r19271, MPFR_RNDN);
        mpfr_mul(r19273, r19252, r19272, MPFR_RNDN);
        mpfr_add(r19274, r19254, r19273, MPFR_RNDN);
        mpfr_mul(r19275, r19252, r19274, MPFR_RNDN);
        mpfr_add(r19276, r19253, r19275, MPFR_RNDN);
        mpfr_mul(r19277, r19252, r19276, MPFR_RNDN);
        mpfr_mul(r19278, r19249, r19249, MPFR_RNDN);
        mpfr_neg(r19279, r19278, MPFR_RNDN);
        mpfr_exp(r19280, r19279, MPFR_RNDN);
        mpfr_mul(r19281, r19277, r19280, MPFR_RNDN);
        mpfr_sub(r19282, r19246, r19281, MPFR_RNDN);
        return mpfr_get_d(r19282, MPFR_RNDN);
}

