#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 r19085 = 1.0f;
        float r19086 = 0.32759109139442444f;
        float r19087 = x;
        float r19088 = fabs(r19087);
        float r19089 = r19086 * r19088;
        float r19090 = r19085 + r19089;
        float r19091 = r19085 / r19090;
        float r19092 = 0.2548295855522156f;
        float r19093 = -0.2844967246055603f;
        float r19094 = 1.421413779258728f;
        float r19095 = -1.453152060508728f;
        float r19096 = 1.0614054203033447f;
        float r19097 = r19091 * r19096;
        float r19098 = r19095 + r19097;
        float r19099 = r19091 * r19098;
        float r19100 = r19094 + r19099;
        float r19101 = r19091 * r19100;
        float r19102 = r19093 + r19101;
        float r19103 = r19091 * r19102;
        float r19104 = r19092 + r19103;
        float r19105 = r19091 * r19104;
        float r19106 = r19088 * r19088;
        float r19107 = -r19106;
        float r19108 = exp(r19107);
        float r19109 = r19105 * r19108;
        float r19110 = r19085 - r19109;
        return r19110;
}

double f_id(double x) {
        double r19111 = 1.0;
        double r19112 = 0.32759109139442444;
        double r19113 = x;
        double r19114 = fabs(r19113);
        double r19115 = r19112 * r19114;
        double r19116 = r19111 + r19115;
        double r19117 = r19111 / r19116;
        double r19118 = 0.2548295855522156;
        double r19119 = -0.2844967246055603;
        double r19120 = 1.421413779258728;
        double r19121 = -1.453152060508728;
        double r19122 = 1.0614054203033447;
        double r19123 = r19117 * r19122;
        double r19124 = r19121 + r19123;
        double r19125 = r19117 * r19124;
        double r19126 = r19120 + r19125;
        double r19127 = r19117 * r19126;
        double r19128 = r19119 + r19127;
        double r19129 = r19117 * r19128;
        double r19130 = r19118 + r19129;
        double r19131 = r19117 * r19130;
        double r19132 = r19114 * r19114;
        double r19133 = -r19132;
        double r19134 = exp(r19133);
        double r19135 = r19131 * r19134;
        double r19136 = r19111 - r19135;
        return r19136;
}


double f_of(float x) {
        float r19137 = 1.0f;
        float r19138 = 0.32759109139442444f;
        float r19139 = x;
        float r19140 = fabs(r19139);
        float r19141 = r19138 * r19140;
        float r19142 = r19137 + r19141;
        float r19143 = r19137 / r19142;
        float r19144 = 0.2548295855522156f;
        float r19145 = -0.2844967246055603f;
        float r19146 = 1.421413779258728f;
        float r19147 = -1.453152060508728f;
        float r19148 = r19147 * r19147;
        float r19149 = 1.0614054203033447f;
        float r19150 = r19143 * r19149;
        float r19151 = r19150 * r19150;
        float r19152 = r19148 - r19151;
        float r19153 = pow(r19152, r19137);
        float r19154 = r19140 * r19138;
        float r19155 = r19137 + r19154;
        float r19156 = r19149 / r19155;
        float r19157 = r19147 - r19156;
        float r19158 = r19153 / r19157;
        float r19159 = r19143 * r19158;
        float r19160 = r19146 + r19159;
        float r19161 = r19143 * r19160;
        float r19162 = r19145 + r19161;
        float r19163 = r19143 * r19162;
        float r19164 = r19144 + r19163;
        float r19165 = r19143 * r19164;
        float r19166 = r19140 * r19140;
        float r19167 = -r19166;
        float r19168 = exp(r19167);
        float r19169 = r19165 * r19168;
        float r19170 = r19137 - r19169;
        return r19170;
}

double f_od(double x) {
        double r19171 = 1.0;
        double r19172 = 0.32759109139442444;
        double r19173 = x;
        double r19174 = fabs(r19173);
        double r19175 = r19172 * r19174;
        double r19176 = r19171 + r19175;
        double r19177 = r19171 / r19176;
        double r19178 = 0.2548295855522156;
        double r19179 = -0.2844967246055603;
        double r19180 = 1.421413779258728;
        double r19181 = -1.453152060508728;
        double r19182 = r19181 * r19181;
        double r19183 = 1.0614054203033447;
        double r19184 = r19177 * r19183;
        double r19185 = r19184 * r19184;
        double r19186 = r19182 - r19185;
        double r19187 = pow(r19186, r19171);
        double r19188 = r19174 * r19172;
        double r19189 = r19171 + r19188;
        double r19190 = r19183 / r19189;
        double r19191 = r19181 - r19190;
        double r19192 = r19187 / r19191;
        double r19193 = r19177 * r19192;
        double r19194 = r19180 + r19193;
        double r19195 = r19177 * r19194;
        double r19196 = r19179 + r19195;
        double r19197 = r19177 * r19196;
        double r19198 = r19178 + r19197;
        double r19199 = r19177 * r19198;
        double r19200 = r19174 * r19174;
        double r19201 = -r19200;
        double r19202 = exp(r19201);
        double r19203 = r19199 * r19202;
        double r19204 = r19171 - r19203;
        return r19204;
}

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 r19205, r19206, r19207, r19208, r19209, r19210, r19211, r19212, r19213, r19214, r19215, r19216, r19217, r19218, r19219, r19220, r19221, r19222, r19223, r19224, r19225, r19226, r19227, r19228, r19229, r19230;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19205, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19206, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19207);
        mpfr_init(r19208);
        mpfr_init(r19209);
        mpfr_init(r19210);
        mpfr_init(r19211);
        mpfr_init_set_str(r19212, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19213, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19214, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19215, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19216, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19217);
        mpfr_init(r19218);
        mpfr_init(r19219);
        mpfr_init(r19220);
        mpfr_init(r19221);
        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);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19207, x, MPFR_RNDN);
        mpfr_abs(r19208, r19207, MPFR_RNDN);
        mpfr_mul(r19209, r19206, r19208, MPFR_RNDN);
        mpfr_add(r19210, r19205, r19209, MPFR_RNDN);
        mpfr_div(r19211, r19205, r19210, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19217, r19211, r19216, MPFR_RNDN);
        mpfr_add(r19218, r19215, r19217, MPFR_RNDN);
        mpfr_mul(r19219, r19211, r19218, MPFR_RNDN);
        mpfr_add(r19220, r19214, r19219, MPFR_RNDN);
        mpfr_mul(r19221, r19211, r19220, MPFR_RNDN);
        mpfr_add(r19222, r19213, r19221, MPFR_RNDN);
        mpfr_mul(r19223, r19211, r19222, MPFR_RNDN);
        mpfr_add(r19224, r19212, r19223, MPFR_RNDN);
        mpfr_mul(r19225, r19211, r19224, MPFR_RNDN);
        mpfr_mul(r19226, r19208, r19208, MPFR_RNDN);
        mpfr_neg(r19227, r19226, MPFR_RNDN);
        mpfr_exp(r19228, r19227, MPFR_RNDN);
        mpfr_mul(r19229, r19225, r19228, MPFR_RNDN);
        mpfr_sub(r19230, r19205, r19229, MPFR_RNDN);
        return mpfr_get_d(r19230, MPFR_RNDN);
}

static mpfr_t r19231, r19232, r19233, r19234, r19235, r19236, r19237, r19238, r19239, r19240, r19241, r19242, r19243, r19244, r19245, r19246, r19247, r19248, r19249, r19250, r19251, r19252, r19253, r19254, r19255, r19256, r19257, r19258, r19259, r19260, r19261, r19262, r19263, r19264;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19231, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19232, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19233);
        mpfr_init(r19234);
        mpfr_init(r19235);
        mpfr_init(r19236);
        mpfr_init(r19237);
        mpfr_init_set_str(r19238, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19239, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19240, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19241, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19242);
        mpfr_init_set_str(r19243, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19244);
        mpfr_init(r19245);
        mpfr_init(r19246);
        mpfr_init(r19247);
        mpfr_init(r19248);
        mpfr_init(r19249);
        mpfr_init(r19250);
        mpfr_init(r19251);
        mpfr_init(r19252);
        mpfr_init(r19253);
        mpfr_init(r19254);
        mpfr_init(r19255);
        mpfr_init(r19256);
        mpfr_init(r19257);
        mpfr_init(r19258);
        mpfr_init(r19259);
        mpfr_init(r19260);
        mpfr_init(r19261);
        mpfr_init(r19262);
        mpfr_init(r19263);
        mpfr_init(r19264);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19233, x, MPFR_RNDN);
        mpfr_abs(r19234, r19233, MPFR_RNDN);
        mpfr_mul(r19235, r19232, r19234, MPFR_RNDN);
        mpfr_add(r19236, r19231, r19235, MPFR_RNDN);
        mpfr_div(r19237, r19231, r19236, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19242, r19241, MPFR_RNDN);
        ;
        mpfr_mul(r19244, r19237, r19243, MPFR_RNDN);
        mpfr_sqr(r19245, r19244, MPFR_RNDN);
        mpfr_sub(r19246, r19242, r19245, MPFR_RNDN);
        mpfr_pow(r19247, r19246, r19231, MPFR_RNDN);
        mpfr_mul(r19248, r19234, r19232, MPFR_RNDN);
        mpfr_add(r19249, r19231, r19248, MPFR_RNDN);
        mpfr_div(r19250, r19243, r19249, MPFR_RNDN);
        mpfr_sub(r19251, r19241, r19250, MPFR_RNDN);
        mpfr_div(r19252, r19247, r19251, MPFR_RNDN);
        mpfr_mul(r19253, r19237, r19252, MPFR_RNDN);
        mpfr_add(r19254, r19240, r19253, MPFR_RNDN);
        mpfr_mul(r19255, r19237, r19254, MPFR_RNDN);
        mpfr_add(r19256, r19239, r19255, MPFR_RNDN);
        mpfr_mul(r19257, r19237, r19256, MPFR_RNDN);
        mpfr_add(r19258, r19238, r19257, MPFR_RNDN);
        mpfr_mul(r19259, r19237, r19258, MPFR_RNDN);
        mpfr_mul(r19260, r19234, r19234, MPFR_RNDN);
        mpfr_neg(r19261, r19260, MPFR_RNDN);
        mpfr_exp(r19262, r19261, MPFR_RNDN);
        mpfr_mul(r19263, r19259, r19262, MPFR_RNDN);
        mpfr_sub(r19264, r19231, r19263, MPFR_RNDN);
        return mpfr_get_d(r19264, MPFR_RNDN);
}

static mpfr_t r19265, r19266, r19267, r19268, r19269, r19270, r19271, r19272, r19273, r19274, r19275, r19276, r19277, r19278, r19279, r19280, r19281, r19282, r19283, r19284, r19285, r19286, r19287, r19288, r19289, r19290, r19291, r19292, r19293, r19294, r19295, r19296, r19297, r19298;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19265, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19266, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19267);
        mpfr_init(r19268);
        mpfr_init(r19269);
        mpfr_init(r19270);
        mpfr_init(r19271);
        mpfr_init_set_str(r19272, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19273, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19274, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19275, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19276);
        mpfr_init_set_str(r19277, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19278);
        mpfr_init(r19279);
        mpfr_init(r19280);
        mpfr_init(r19281);
        mpfr_init(r19282);
        mpfr_init(r19283);
        mpfr_init(r19284);
        mpfr_init(r19285);
        mpfr_init(r19286);
        mpfr_init(r19287);
        mpfr_init(r19288);
        mpfr_init(r19289);
        mpfr_init(r19290);
        mpfr_init(r19291);
        mpfr_init(r19292);
        mpfr_init(r19293);
        mpfr_init(r19294);
        mpfr_init(r19295);
        mpfr_init(r19296);
        mpfr_init(r19297);
        mpfr_init(r19298);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19267, x, MPFR_RNDN);
        mpfr_abs(r19268, r19267, MPFR_RNDN);
        mpfr_mul(r19269, r19266, r19268, MPFR_RNDN);
        mpfr_add(r19270, r19265, r19269, MPFR_RNDN);
        mpfr_div(r19271, r19265, r19270, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19276, r19275, MPFR_RNDN);
        ;
        mpfr_mul(r19278, r19271, r19277, MPFR_RNDN);
        mpfr_sqr(r19279, r19278, MPFR_RNDN);
        mpfr_sub(r19280, r19276, r19279, MPFR_RNDN);
        mpfr_pow(r19281, r19280, r19265, MPFR_RNDN);
        mpfr_mul(r19282, r19268, r19266, MPFR_RNDN);
        mpfr_add(r19283, r19265, r19282, MPFR_RNDN);
        mpfr_div(r19284, r19277, r19283, MPFR_RNDN);
        mpfr_sub(r19285, r19275, r19284, MPFR_RNDN);
        mpfr_div(r19286, r19281, r19285, MPFR_RNDN);
        mpfr_mul(r19287, r19271, r19286, MPFR_RNDN);
        mpfr_add(r19288, r19274, r19287, MPFR_RNDN);
        mpfr_mul(r19289, r19271, r19288, MPFR_RNDN);
        mpfr_add(r19290, r19273, r19289, MPFR_RNDN);
        mpfr_mul(r19291, r19271, r19290, MPFR_RNDN);
        mpfr_add(r19292, r19272, r19291, MPFR_RNDN);
        mpfr_mul(r19293, r19271, r19292, MPFR_RNDN);
        mpfr_mul(r19294, r19268, r19268, MPFR_RNDN);
        mpfr_neg(r19295, r19294, MPFR_RNDN);
        mpfr_exp(r19296, r19295, MPFR_RNDN);
        mpfr_mul(r19297, r19293, r19296, MPFR_RNDN);
        mpfr_sub(r19298, r19265, r19297, MPFR_RNDN);
        return mpfr_get_d(r19298, MPFR_RNDN);
}

