#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 r11110 = 1;
        float r11111 = 0.3275911;
        float r11112 = x;
        float r11113 = fabs(r11112);
        float r11114 = r11111 * r11113;
        float r11115 = r11110 + r11114;
        float r11116 = r11110 / r11115;
        float r11117 = 0.254829592;
        float r11118 = -0.284496736;
        float r11119 = 1.421413741;
        float r11120 = -1.453152027;
        float r11121 = 1.061405429;
        float r11122 = r11116 * r11121;
        float r11123 = r11120 + r11122;
        float r11124 = r11116 * r11123;
        float r11125 = r11119 + r11124;
        float r11126 = r11116 * r11125;
        float r11127 = r11118 + r11126;
        float r11128 = r11116 * r11127;
        float r11129 = r11117 + r11128;
        float r11130 = r11116 * r11129;
        float r11131 = r11113 * r11113;
        float r11132 = -r11131;
        float r11133 = exp(r11132);
        float r11134 = r11130 * r11133;
        float r11135 = r11110 - r11134;
        return r11135;
}

double f_id(double x) {
        double r11136 = 1;
        double r11137 = 0.3275911;
        double r11138 = x;
        double r11139 = fabs(r11138);
        double r11140 = r11137 * r11139;
        double r11141 = r11136 + r11140;
        double r11142 = r11136 / r11141;
        double r11143 = 0.254829592;
        double r11144 = -0.284496736;
        double r11145 = 1.421413741;
        double r11146 = -1.453152027;
        double r11147 = 1.061405429;
        double r11148 = r11142 * r11147;
        double r11149 = r11146 + r11148;
        double r11150 = r11142 * r11149;
        double r11151 = r11145 + r11150;
        double r11152 = r11142 * r11151;
        double r11153 = r11144 + r11152;
        double r11154 = r11142 * r11153;
        double r11155 = r11143 + r11154;
        double r11156 = r11142 * r11155;
        double r11157 = r11139 * r11139;
        double r11158 = -r11157;
        double r11159 = exp(r11158);
        double r11160 = r11156 * r11159;
        double r11161 = r11136 - r11160;
        return r11161;
}


double f_of(float x) {
        float r11162 = 1;
        float r11163 = 0.3275911;
        float r11164 = x;
        float r11165 = fabs(r11164);
        float r11166 = r11163 * r11165;
        float r11167 = r11162 + r11166;
        float r11168 = r11162 / r11167;
        float r11169 = 0.254829592;
        float r11170 = -0.284496736;
        float r11171 = 1.421413741;
        float r11172 = -1.453152027;
        float r11173 = 1.061405429;
        float r11174 = r11168 * r11173;
        float r11175 = r11172 + r11174;
        float r11176 = r11168 * r11175;
        float r11177 = r11171 + r11176;
        float r11178 = r11168 * r11177;
        float r11179 = r11170 + r11178;
        float r11180 = exp(r11179);
        float r11181 = log(r11180);
        float r11182 = r11168 * r11181;
        float r11183 = r11169 + r11182;
        float r11184 = r11168 * r11183;
        float r11185 = r11165 * r11165;
        float r11186 = -r11185;
        float r11187 = exp(r11186);
        float r11188 = r11184 * r11187;
        float r11189 = r11162 - r11188;
        return r11189;
}

double f_od(double x) {
        double r11190 = 1;
        double r11191 = 0.3275911;
        double r11192 = x;
        double r11193 = fabs(r11192);
        double r11194 = r11191 * r11193;
        double r11195 = r11190 + r11194;
        double r11196 = r11190 / r11195;
        double r11197 = 0.254829592;
        double r11198 = -0.284496736;
        double r11199 = 1.421413741;
        double r11200 = -1.453152027;
        double r11201 = 1.061405429;
        double r11202 = r11196 * r11201;
        double r11203 = r11200 + r11202;
        double r11204 = r11196 * r11203;
        double r11205 = r11199 + r11204;
        double r11206 = r11196 * r11205;
        double r11207 = r11198 + r11206;
        double r11208 = exp(r11207);
        double r11209 = log(r11208);
        double r11210 = r11196 * r11209;
        double r11211 = r11197 + r11210;
        double r11212 = r11196 * r11211;
        double r11213 = r11193 * r11193;
        double r11214 = -r11213;
        double r11215 = exp(r11214);
        double r11216 = r11212 * r11215;
        double r11217 = r11190 - r11216;
        return r11217;
}

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 r11218, r11219, r11220, r11221, r11222, r11223, r11224, r11225, r11226, r11227, r11228, r11229, r11230, r11231, r11232, r11233, r11234, r11235, r11236, r11237, r11238, r11239, r11240, r11241, r11242, r11243;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11218, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11219, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r11220);
        mpfr_init(r11221);
        mpfr_init(r11222);
        mpfr_init(r11223);
        mpfr_init(r11224);
        mpfr_init_set_str(r11225, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r11226, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r11227, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r11228, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r11229, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r11230);
        mpfr_init(r11231);
        mpfr_init(r11232);
        mpfr_init(r11233);
        mpfr_init(r11234);
        mpfr_init(r11235);
        mpfr_init(r11236);
        mpfr_init(r11237);
        mpfr_init(r11238);
        mpfr_init(r11239);
        mpfr_init(r11240);
        mpfr_init(r11241);
        mpfr_init(r11242);
        mpfr_init(r11243);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r11220, x, MPFR_RNDN);
        mpfr_abs(r11221, r11220, MPFR_RNDN);
        mpfr_mul(r11222, r11219, r11221, MPFR_RNDN);
        mpfr_add(r11223, r11218, r11222, MPFR_RNDN);
        mpfr_div(r11224, r11218, r11223, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r11230, r11224, r11229, MPFR_RNDN);
        mpfr_add(r11231, r11228, r11230, MPFR_RNDN);
        mpfr_mul(r11232, r11224, r11231, MPFR_RNDN);
        mpfr_add(r11233, r11227, r11232, MPFR_RNDN);
        mpfr_mul(r11234, r11224, r11233, MPFR_RNDN);
        mpfr_add(r11235, r11226, r11234, MPFR_RNDN);
        mpfr_mul(r11236, r11224, r11235, MPFR_RNDN);
        mpfr_add(r11237, r11225, r11236, MPFR_RNDN);
        mpfr_mul(r11238, r11224, r11237, MPFR_RNDN);
        mpfr_mul(r11239, r11221, r11221, MPFR_RNDN);
        mpfr_neg(r11240, r11239, MPFR_RNDN);
        mpfr_exp(r11241, r11240, MPFR_RNDN);
        mpfr_mul(r11242, r11238, r11241, MPFR_RNDN);
        mpfr_sub(r11243, r11218, r11242, MPFR_RNDN);
        return mpfr_get_d(r11243, MPFR_RNDN);
}

static mpfr_t r11244, r11245, r11246, r11247, r11248, r11249, r11250, r11251, r11252, r11253, r11254, r11255, r11256, r11257, r11258, r11259, r11260, r11261, r11262, r11263, r11264, r11265, r11266, r11267, r11268, r11269, r11270, r11271;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11244, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11245, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r11246);
        mpfr_init(r11247);
        mpfr_init(r11248);
        mpfr_init(r11249);
        mpfr_init(r11250);
        mpfr_init_set_str(r11251, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r11252, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r11253, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r11254, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r11255, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r11256);
        mpfr_init(r11257);
        mpfr_init(r11258);
        mpfr_init(r11259);
        mpfr_init(r11260);
        mpfr_init(r11261);
        mpfr_init(r11262);
        mpfr_init(r11263);
        mpfr_init(r11264);
        mpfr_init(r11265);
        mpfr_init(r11266);
        mpfr_init(r11267);
        mpfr_init(r11268);
        mpfr_init(r11269);
        mpfr_init(r11270);
        mpfr_init(r11271);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r11246, x, MPFR_RNDN);
        mpfr_abs(r11247, r11246, MPFR_RNDN);
        mpfr_mul(r11248, r11245, r11247, MPFR_RNDN);
        mpfr_add(r11249, r11244, r11248, MPFR_RNDN);
        mpfr_div(r11250, r11244, r11249, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r11256, r11250, r11255, MPFR_RNDN);
        mpfr_add(r11257, r11254, r11256, MPFR_RNDN);
        mpfr_mul(r11258, r11250, r11257, MPFR_RNDN);
        mpfr_add(r11259, r11253, r11258, MPFR_RNDN);
        mpfr_mul(r11260, r11250, r11259, MPFR_RNDN);
        mpfr_add(r11261, r11252, r11260, MPFR_RNDN);
        mpfr_exp(r11262, r11261, MPFR_RNDN);
        mpfr_log(r11263, r11262, MPFR_RNDN);
        mpfr_mul(r11264, r11250, r11263, MPFR_RNDN);
        mpfr_add(r11265, r11251, r11264, MPFR_RNDN);
        mpfr_mul(r11266, r11250, r11265, MPFR_RNDN);
        mpfr_mul(r11267, r11247, r11247, MPFR_RNDN);
        mpfr_neg(r11268, r11267, MPFR_RNDN);
        mpfr_exp(r11269, r11268, MPFR_RNDN);
        mpfr_mul(r11270, r11266, r11269, MPFR_RNDN);
        mpfr_sub(r11271, r11244, r11270, MPFR_RNDN);
        return mpfr_get_d(r11271, MPFR_RNDN);
}

static mpfr_t r11272, r11273, r11274, r11275, r11276, r11277, r11278, r11279, r11280, r11281, r11282, r11283, r11284, r11285, r11286, r11287, r11288, r11289, r11290, r11291, r11292, r11293, r11294, r11295, r11296, r11297, r11298, r11299;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11272, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11273, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r11274);
        mpfr_init(r11275);
        mpfr_init(r11276);
        mpfr_init(r11277);
        mpfr_init(r11278);
        mpfr_init_set_str(r11279, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r11280, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r11281, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r11282, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r11283, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r11284);
        mpfr_init(r11285);
        mpfr_init(r11286);
        mpfr_init(r11287);
        mpfr_init(r11288);
        mpfr_init(r11289);
        mpfr_init(r11290);
        mpfr_init(r11291);
        mpfr_init(r11292);
        mpfr_init(r11293);
        mpfr_init(r11294);
        mpfr_init(r11295);
        mpfr_init(r11296);
        mpfr_init(r11297);
        mpfr_init(r11298);
        mpfr_init(r11299);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r11274, x, MPFR_RNDN);
        mpfr_abs(r11275, r11274, MPFR_RNDN);
        mpfr_mul(r11276, r11273, r11275, MPFR_RNDN);
        mpfr_add(r11277, r11272, r11276, MPFR_RNDN);
        mpfr_div(r11278, r11272, r11277, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r11284, r11278, r11283, MPFR_RNDN);
        mpfr_add(r11285, r11282, r11284, MPFR_RNDN);
        mpfr_mul(r11286, r11278, r11285, MPFR_RNDN);
        mpfr_add(r11287, r11281, r11286, MPFR_RNDN);
        mpfr_mul(r11288, r11278, r11287, MPFR_RNDN);
        mpfr_add(r11289, r11280, r11288, MPFR_RNDN);
        mpfr_exp(r11290, r11289, MPFR_RNDN);
        mpfr_log(r11291, r11290, MPFR_RNDN);
        mpfr_mul(r11292, r11278, r11291, MPFR_RNDN);
        mpfr_add(r11293, r11279, r11292, MPFR_RNDN);
        mpfr_mul(r11294, r11278, r11293, MPFR_RNDN);
        mpfr_mul(r11295, r11275, r11275, MPFR_RNDN);
        mpfr_neg(r11296, r11295, MPFR_RNDN);
        mpfr_exp(r11297, r11296, MPFR_RNDN);
        mpfr_mul(r11298, r11294, r11297, MPFR_RNDN);
        mpfr_sub(r11299, r11272, r11298, MPFR_RNDN);
        return mpfr_get_d(r11299, MPFR_RNDN);
}

