#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 r19105 = 1.0f;
        float r19106 = 0.3275911f;
        float r19107 = x;
        float r19108 = fabs(r19107);
        float r19109 = r19106 * r19108;
        float r19110 = r19105 + r19109;
        float r19111 = r19105 / r19110;
        float r19112 = 0.254829592f;
        float r19113 = -0.284496736f;
        float r19114 = 1.421413741f;
        float r19115 = -1.453152027f;
        float r19116 = 1.061405429f;
        float r19117 = r19111 * r19116;
        float r19118 = r19115 + r19117;
        float r19119 = r19111 * r19118;
        float r19120 = r19114 + r19119;
        float r19121 = r19111 * r19120;
        float r19122 = r19113 + r19121;
        float r19123 = r19111 * r19122;
        float r19124 = r19112 + r19123;
        float r19125 = r19111 * r19124;
        float r19126 = r19108 * r19108;
        float r19127 = -r19126;
        float r19128 = exp(r19127);
        float r19129 = r19125 * r19128;
        float r19130 = r19105 - r19129;
        return r19130;
}

double f_id(double x) {
        double r19131 = 1.0;
        double r19132 = 0.3275911;
        double r19133 = x;
        double r19134 = fabs(r19133);
        double r19135 = r19132 * r19134;
        double r19136 = r19131 + r19135;
        double r19137 = r19131 / r19136;
        double r19138 = 0.254829592;
        double r19139 = -0.284496736;
        double r19140 = 1.421413741;
        double r19141 = -1.453152027;
        double r19142 = 1.061405429;
        double r19143 = r19137 * r19142;
        double r19144 = r19141 + r19143;
        double r19145 = r19137 * r19144;
        double r19146 = r19140 + r19145;
        double r19147 = r19137 * r19146;
        double r19148 = r19139 + r19147;
        double r19149 = r19137 * r19148;
        double r19150 = r19138 + r19149;
        double r19151 = r19137 * r19150;
        double r19152 = r19134 * r19134;
        double r19153 = -r19152;
        double r19154 = exp(r19153);
        double r19155 = r19151 * r19154;
        double r19156 = r19131 - r19155;
        return r19156;
}


double f_of(float x) {
        float r19157 = 1.0f;
        float r19158 = r19157 * r19157;
        float r19159 = 0.3275911f;
        float r19160 = x;
        float r19161 = fabs(r19160);
        float r19162 = r19159 * r19161;
        float r19163 = r19157 + r19162;
        float r19164 = r19157 / r19163;
        float r19165 = 0.254829592f;
        float r19166 = -0.284496736f;
        float r19167 = 1.421413741f;
        float r19168 = -1.453152027f;
        float r19169 = 1.061405429f;
        float r19170 = r19164 * r19169;
        float r19171 = r19168 + r19170;
        float r19172 = r19164 * r19171;
        float r19173 = r19167 + r19172;
        float r19174 = r19164 * r19173;
        float r19175 = r19166 + r19174;
        float r19176 = r19164 * r19175;
        float r19177 = r19165 + r19176;
        float r19178 = r19164 * r19177;
        float r19179 = r19161 * r19161;
        float r19180 = -r19179;
        float r19181 = exp(r19180);
        float r19182 = r19178 * r19181;
        float r19183 = r19182 * r19182;
        float r19184 = r19183 * (r19183 * r19183);
        float r19185 = cbrt(r19184);
        float r19186 = r19158 - r19185;
        float r19187 = r19157 + r19182;
        float r19188 = r19186 / r19187;
        return r19188;
}

double f_od(double x) {
        double r19189 = 1.0;
        double r19190 = r19189 * r19189;
        double r19191 = 0.3275911;
        double r19192 = x;
        double r19193 = fabs(r19192);
        double r19194 = r19191 * r19193;
        double r19195 = r19189 + r19194;
        double r19196 = r19189 / r19195;
        double r19197 = 0.254829592;
        double r19198 = -0.284496736;
        double r19199 = 1.421413741;
        double r19200 = -1.453152027;
        double r19201 = 1.061405429;
        double r19202 = r19196 * r19201;
        double r19203 = r19200 + r19202;
        double r19204 = r19196 * r19203;
        double r19205 = r19199 + r19204;
        double r19206 = r19196 * r19205;
        double r19207 = r19198 + r19206;
        double r19208 = r19196 * r19207;
        double r19209 = r19197 + r19208;
        double r19210 = r19196 * r19209;
        double r19211 = r19193 * r19193;
        double r19212 = -r19211;
        double r19213 = exp(r19212);
        double r19214 = r19210 * r19213;
        double r19215 = r19214 * r19214;
        double r19216 = r19215 * (r19215 * r19215);
        double r19217 = cbrt(r19216);
        double r19218 = r19190 - r19217;
        double r19219 = r19189 + r19214;
        double r19220 = r19218 / r19219;
        return r19220;
}

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 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, r19246;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19221, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19222, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19223);
        mpfr_init(r19224);
        mpfr_init(r19225);
        mpfr_init(r19226);
        mpfr_init(r19227);
        mpfr_init_set_str(r19228, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19229, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19230, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19231, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19232, "1.061405429", 10, MPFR_RNDN);
        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);
        mpfr_init(r19246);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19223, x, MPFR_RNDN);
        mpfr_abs(r19224, r19223, MPFR_RNDN);
        mpfr_mul(r19225, r19222, r19224, MPFR_RNDN);
        mpfr_add(r19226, r19221, r19225, MPFR_RNDN);
        mpfr_div(r19227, r19221, r19226, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19233, r19227, r19232, MPFR_RNDN);
        mpfr_add(r19234, r19231, r19233, MPFR_RNDN);
        mpfr_mul(r19235, r19227, r19234, MPFR_RNDN);
        mpfr_add(r19236, r19230, r19235, MPFR_RNDN);
        mpfr_mul(r19237, r19227, r19236, MPFR_RNDN);
        mpfr_add(r19238, r19229, r19237, MPFR_RNDN);
        mpfr_mul(r19239, r19227, r19238, MPFR_RNDN);
        mpfr_add(r19240, r19228, r19239, MPFR_RNDN);
        mpfr_mul(r19241, r19227, r19240, MPFR_RNDN);
        mpfr_mul(r19242, r19224, r19224, MPFR_RNDN);
        mpfr_neg(r19243, r19242, MPFR_RNDN);
        mpfr_exp(r19244, r19243, MPFR_RNDN);
        mpfr_mul(r19245, r19241, r19244, MPFR_RNDN);
        mpfr_sub(r19246, r19221, r19245, MPFR_RNDN);
        return mpfr_get_d(r19246, MPFR_RNDN);
}

static mpfr_t 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19247, "1", 10, MPFR_RNDN);
        mpfr_init(r19248);
        mpfr_init_set_str(r19249, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19250);
        mpfr_init(r19251);
        mpfr_init(r19252);
        mpfr_init(r19253);
        mpfr_init(r19254);
        mpfr_init_set_str(r19255, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19256, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19257, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19258, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19259, "1.061405429", 10, MPFR_RNDN);
        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);
}

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

static mpfr_t r19279, r19280, r19281, r19282, r19283, r19284, r19285, r19286, r19287, r19288, r19289, r19290, r19291, r19292, r19293, r19294, r19295, r19296, r19297, r19298, r19299, r19300, r19301, r19302, r19303, r19304, r19305, r19306, r19307, r19308, r19309, r19310;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19279, "1", 10, MPFR_RNDN);
        mpfr_init(r19280);
        mpfr_init_set_str(r19281, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19282);
        mpfr_init(r19283);
        mpfr_init(r19284);
        mpfr_init(r19285);
        mpfr_init(r19286);
        mpfr_init_set_str(r19287, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19288, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19289, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19290, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19291, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19292);
        mpfr_init(r19293);
        mpfr_init(r19294);
        mpfr_init(r19295);
        mpfr_init(r19296);
        mpfr_init(r19297);
        mpfr_init(r19298);
        mpfr_init(r19299);
        mpfr_init(r19300);
        mpfr_init(r19301);
        mpfr_init(r19302);
        mpfr_init(r19303);
        mpfr_init(r19304);
        mpfr_init(r19305);
        mpfr_init(r19306);
        mpfr_init(r19307);
        mpfr_init(r19308);
        mpfr_init(r19309);
        mpfr_init(r19310);
}

double f_dm(double x) {
        ;
        mpfr_sqr(r19280, r19279, MPFR_RNDN);
        ;
        mpfr_set_d(r19282, x, MPFR_RNDN);
        mpfr_abs(r19283, r19282, MPFR_RNDN);
        mpfr_mul(r19284, r19281, r19283, MPFR_RNDN);
        mpfr_add(r19285, r19279, r19284, MPFR_RNDN);
        mpfr_div(r19286, r19279, r19285, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19292, r19286, r19291, MPFR_RNDN);
        mpfr_add(r19293, r19290, r19292, MPFR_RNDN);
        mpfr_mul(r19294, r19286, r19293, MPFR_RNDN);
        mpfr_add(r19295, r19289, r19294, MPFR_RNDN);
        mpfr_mul(r19296, r19286, r19295, MPFR_RNDN);
        mpfr_add(r19297, r19288, r19296, MPFR_RNDN);
        mpfr_mul(r19298, r19286, r19297, MPFR_RNDN);
        mpfr_add(r19299, r19287, r19298, MPFR_RNDN);
        mpfr_mul(r19300, r19286, r19299, MPFR_RNDN);
        mpfr_mul(r19301, r19283, r19283, MPFR_RNDN);
        mpfr_neg(r19302, r19301, MPFR_RNDN);
        mpfr_exp(r19303, r19302, MPFR_RNDN);
        mpfr_mul(r19304, r19300, r19303, MPFR_RNDN);
        mpfr_sqr(r19305, r19304, MPFR_RNDN);
        mpfr_mul(r19306, r19305, r19305, MPFR_RNDN); mpfr_mul(r19306, r19306, r19305, MPFR_RNDN);
        mpfr_cbrt(r19307, r19306, MPFR_RNDN);
        mpfr_sub(r19308, r19280, r19307, MPFR_RNDN);
        mpfr_add(r19309, r19279, r19304, MPFR_RNDN);
        mpfr_div(r19310, r19308, r19309, MPFR_RNDN);
        return mpfr_get_d(r19310, MPFR_RNDN);
}

