#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 r19081 = 1.0f;
        float r19082 = 0.3275911f;
        float r19083 = x;
        float r19084 = fabs(r19083);
        float r19085 = r19082 * r19084;
        float r19086 = r19081 + r19085;
        float r19087 = r19081 / r19086;
        float r19088 = 0.254829592f;
        float r19089 = -0.284496736f;
        float r19090 = 1.421413741f;
        float r19091 = -1.453152027f;
        float r19092 = 1.061405429f;
        float r19093 = r19087 * r19092;
        float r19094 = r19091 + r19093;
        float r19095 = r19087 * r19094;
        float r19096 = r19090 + r19095;
        float r19097 = r19087 * r19096;
        float r19098 = r19089 + r19097;
        float r19099 = r19087 * r19098;
        float r19100 = r19088 + r19099;
        float r19101 = r19087 * r19100;
        float r19102 = r19084 * r19084;
        float r19103 = -r19102;
        float r19104 = exp(r19103);
        float r19105 = r19101 * r19104;
        float r19106 = r19081 - r19105;
        return r19106;
}

double f_id(double x) {
        double r19107 = 1.0;
        double r19108 = 0.3275911;
        double r19109 = x;
        double r19110 = fabs(r19109);
        double r19111 = r19108 * r19110;
        double r19112 = r19107 + r19111;
        double r19113 = r19107 / r19112;
        double r19114 = 0.254829592;
        double r19115 = -0.284496736;
        double r19116 = 1.421413741;
        double r19117 = -1.453152027;
        double r19118 = 1.061405429;
        double r19119 = r19113 * r19118;
        double r19120 = r19117 + r19119;
        double r19121 = r19113 * r19120;
        double r19122 = r19116 + r19121;
        double r19123 = r19113 * r19122;
        double r19124 = r19115 + r19123;
        double r19125 = r19113 * r19124;
        double r19126 = r19114 + r19125;
        double r19127 = r19113 * r19126;
        double r19128 = r19110 * r19110;
        double r19129 = -r19128;
        double r19130 = exp(r19129);
        double r19131 = r19127 * r19130;
        double r19132 = r19107 - r19131;
        return r19132;
}


double f_of(float x) {
        float r19133 = 1.0f;
        float r19134 = 0.3275911f;
        float r19135 = x;
        float r19136 = fabs(r19135);
        float r19137 = r19134 * r19136;
        float r19138 = r19133 + r19137;
        float r19139 = r19133 / r19138;
        float r19140 = 0.254829592f;
        float r19141 = -0.284496736f;
        float r19142 = 1.421413741f;
        float r19143 = -1.453152027f;
        float r19144 = 1.061405429f;
        float r19145 = r19139 * r19144;
        float r19146 = r19143 + r19145;
        float r19147 = r19139 * r19146;
        float r19148 = r19142 + r19147;
        float r19149 = r19139 * r19148;
        float r19150 = r19141 + r19149;
        float r19151 = r19139 * r19150;
        float r19152 = r19140 + r19151;
        float r19153 = r19139 * r19152;
        float r19154 = r19136 * r19136;
        float r19155 = -r19154;
        float r19156 = exp(r19155);
        float r19157 = r19153 * r19156;
        float r19158 = r19133 - r19157;
        float r19159 = exp(r19158);
        float r19160 = log(r19159);
        float r19161 = log(r19160);
        float r19162 = exp(r19161);
        return r19162;
}

double f_od(double x) {
        double r19163 = 1.0;
        double r19164 = 0.3275911;
        double r19165 = x;
        double r19166 = fabs(r19165);
        double r19167 = r19164 * r19166;
        double r19168 = r19163 + r19167;
        double r19169 = r19163 / r19168;
        double r19170 = 0.254829592;
        double r19171 = -0.284496736;
        double r19172 = 1.421413741;
        double r19173 = -1.453152027;
        double r19174 = 1.061405429;
        double r19175 = r19169 * r19174;
        double r19176 = r19173 + r19175;
        double r19177 = r19169 * r19176;
        double r19178 = r19172 + r19177;
        double r19179 = r19169 * r19178;
        double r19180 = r19171 + r19179;
        double r19181 = r19169 * r19180;
        double r19182 = r19170 + r19181;
        double r19183 = r19169 * r19182;
        double r19184 = r19166 * r19166;
        double r19185 = -r19184;
        double r19186 = exp(r19185);
        double r19187 = r19183 * r19186;
        double r19188 = r19163 - r19187;
        double r19189 = exp(r19188);
        double r19190 = log(r19189);
        double r19191 = log(r19190);
        double r19192 = exp(r19191);
        return r19192;
}

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

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19193, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19194, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19195);
        mpfr_init(r19196);
        mpfr_init(r19197);
        mpfr_init(r19198);
        mpfr_init(r19199);
        mpfr_init_set_str(r19200, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19201, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19202, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19203, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19204, "1.061405429", 10, MPFR_RNDN);
        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);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19195, x, MPFR_RNDN);
        mpfr_abs(r19196, r19195, MPFR_RNDN);
        mpfr_mul(r19197, r19194, r19196, MPFR_RNDN);
        mpfr_add(r19198, r19193, r19197, MPFR_RNDN);
        mpfr_div(r19199, r19193, r19198, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19205, r19199, r19204, MPFR_RNDN);
        mpfr_add(r19206, r19203, r19205, MPFR_RNDN);
        mpfr_mul(r19207, r19199, r19206, MPFR_RNDN);
        mpfr_add(r19208, r19202, r19207, MPFR_RNDN);
        mpfr_mul(r19209, r19199, r19208, MPFR_RNDN);
        mpfr_add(r19210, r19201, r19209, MPFR_RNDN);
        mpfr_mul(r19211, r19199, r19210, MPFR_RNDN);
        mpfr_add(r19212, r19200, r19211, MPFR_RNDN);
        mpfr_mul(r19213, r19199, r19212, MPFR_RNDN);
        mpfr_mul(r19214, r19196, r19196, MPFR_RNDN);
        mpfr_neg(r19215, r19214, MPFR_RNDN);
        mpfr_exp(r19216, r19215, MPFR_RNDN);
        mpfr_mul(r19217, r19213, r19216, MPFR_RNDN);
        mpfr_sub(r19218, r19193, r19217, MPFR_RNDN);
        return mpfr_get_d(r19218, MPFR_RNDN);
}

static mpfr_t 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, r19246, r19247, r19248;

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

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

static mpfr_t 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_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19249, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19250, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19251);
        mpfr_init(r19252);
        mpfr_init(r19253);
        mpfr_init(r19254);
        mpfr_init(r19255);
        mpfr_init_set_str(r19256, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19257, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19258, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19259, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19260, "1.061405429", 10, MPFR_RNDN);
        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_dm(double x) {
        ;
        ;
        mpfr_set_d(r19251, x, MPFR_RNDN);
        mpfr_abs(r19252, r19251, MPFR_RNDN);
        mpfr_mul(r19253, r19250, r19252, MPFR_RNDN);
        mpfr_add(r19254, r19249, r19253, MPFR_RNDN);
        mpfr_div(r19255, r19249, r19254, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19261, r19255, r19260, MPFR_RNDN);
        mpfr_add(r19262, r19259, r19261, MPFR_RNDN);
        mpfr_mul(r19263, r19255, r19262, MPFR_RNDN);
        mpfr_add(r19264, r19258, r19263, MPFR_RNDN);
        mpfr_mul(r19265, r19255, r19264, MPFR_RNDN);
        mpfr_add(r19266, r19257, r19265, MPFR_RNDN);
        mpfr_mul(r19267, r19255, r19266, MPFR_RNDN);
        mpfr_add(r19268, r19256, r19267, MPFR_RNDN);
        mpfr_mul(r19269, r19255, r19268, MPFR_RNDN);
        mpfr_mul(r19270, r19252, r19252, MPFR_RNDN);
        mpfr_neg(r19271, r19270, MPFR_RNDN);
        mpfr_exp(r19272, r19271, MPFR_RNDN);
        mpfr_mul(r19273, r19269, r19272, MPFR_RNDN);
        mpfr_sub(r19274, r19249, r19273, MPFR_RNDN);
        mpfr_exp(r19275, r19274, MPFR_RNDN);
        mpfr_log(r19276, r19275, MPFR_RNDN);
        mpfr_log(r19277, r19276, MPFR_RNDN);
        mpfr_exp(r19278, r19277, MPFR_RNDN);
        return mpfr_get_d(r19278, MPFR_RNDN);
}

