#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 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;
        return r19158;
}

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


double f_of(float x) {
        float r19185 = 1.0f;
        float r19186 = 0.3275911f;
        float r19187 = x;
        float r19188 = fabs(r19187);
        float r19189 = r19186 * r19188;
        float r19190 = r19185 + r19189;
        float r19191 = r19185 / r19190;
        float r19192 = 0.254829592f;
        float r19193 = -0.284496736f;
        float r19194 = 1.421413741f;
        float r19195 = -1.453152027f;
        float r19196 = 1.061405429f;
        float r19197 = r19191 * r19196;
        float r19198 = r19195 + r19197;
        float r19199 = r19191 * r19198;
        float r19200 = r19194 + r19199;
        float r19201 = r19191 * r19200;
        float r19202 = r19193 + r19201;
        float r19203 = r19191 * r19202;
        float r19204 = r19192 + r19203;
        float r19205 = r19191 * r19204;
        float r19206 = r19188 * r19188;
        float r19207 = -r19206;
        float r19208 = exp(r19207);
        float r19209 = r19205 * r19208;
        float r19210 = r19185 - r19209;
        float r19211 = exp(r19210);
        float r19212 = log(r19211);
        float r19213 = log(r19212);
        float r19214 = exp(r19213);
        return r19214;
}

double f_od(double x) {
        double r19215 = 1.0;
        double r19216 = 0.3275911;
        double r19217 = x;
        double r19218 = fabs(r19217);
        double r19219 = r19216 * r19218;
        double r19220 = r19215 + r19219;
        double r19221 = r19215 / r19220;
        double r19222 = 0.254829592;
        double r19223 = -0.284496736;
        double r19224 = 1.421413741;
        double r19225 = -1.453152027;
        double r19226 = 1.061405429;
        double r19227 = r19221 * r19226;
        double r19228 = r19225 + r19227;
        double r19229 = r19221 * r19228;
        double r19230 = r19224 + r19229;
        double r19231 = r19221 * r19230;
        double r19232 = r19223 + r19231;
        double r19233 = r19221 * r19232;
        double r19234 = r19222 + r19233;
        double r19235 = r19221 * r19234;
        double r19236 = r19218 * r19218;
        double r19237 = -r19236;
        double r19238 = exp(r19237);
        double r19239 = r19235 * r19238;
        double r19240 = r19215 - r19239;
        double r19241 = exp(r19240);
        double r19242 = log(r19241);
        double r19243 = log(r19242);
        double r19244 = exp(r19243);
        return r19244;
}

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

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

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19247, x, MPFR_RNDN);
        mpfr_abs(r19248, r19247, MPFR_RNDN);
        mpfr_mul(r19249, r19246, r19248, MPFR_RNDN);
        mpfr_add(r19250, r19245, r19249, MPFR_RNDN);
        mpfr_div(r19251, r19245, r19250, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19257, r19251, r19256, MPFR_RNDN);
        mpfr_add(r19258, r19255, r19257, MPFR_RNDN);
        mpfr_mul(r19259, r19251, r19258, MPFR_RNDN);
        mpfr_add(r19260, r19254, r19259, MPFR_RNDN);
        mpfr_mul(r19261, r19251, r19260, MPFR_RNDN);
        mpfr_add(r19262, r19253, r19261, MPFR_RNDN);
        mpfr_mul(r19263, r19251, r19262, MPFR_RNDN);
        mpfr_add(r19264, r19252, r19263, MPFR_RNDN);
        mpfr_mul(r19265, r19251, r19264, MPFR_RNDN);
        mpfr_mul(r19266, r19248, r19248, MPFR_RNDN);
        mpfr_neg(r19267, r19266, MPFR_RNDN);
        mpfr_exp(r19268, r19267, MPFR_RNDN);
        mpfr_mul(r19269, r19265, r19268, MPFR_RNDN);
        mpfr_sub(r19270, r19245, r19269, MPFR_RNDN);
        return mpfr_get_d(r19270, MPFR_RNDN);
}

static mpfr_t 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, r19299, r19300;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19271, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19272, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19273);
        mpfr_init(r19274);
        mpfr_init(r19275);
        mpfr_init(r19276);
        mpfr_init(r19277);
        mpfr_init_set_str(r19278, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19279, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19280, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19281, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19282, "1.061405429", 10, MPFR_RNDN);
        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);
        mpfr_init(r19299);
        mpfr_init(r19300);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19273, x, MPFR_RNDN);
        mpfr_abs(r19274, r19273, MPFR_RNDN);
        mpfr_mul(r19275, r19272, r19274, MPFR_RNDN);
        mpfr_add(r19276, r19271, r19275, MPFR_RNDN);
        mpfr_div(r19277, r19271, r19276, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19283, r19277, r19282, MPFR_RNDN);
        mpfr_add(r19284, r19281, r19283, MPFR_RNDN);
        mpfr_mul(r19285, r19277, r19284, MPFR_RNDN);
        mpfr_add(r19286, r19280, r19285, MPFR_RNDN);
        mpfr_mul(r19287, r19277, r19286, MPFR_RNDN);
        mpfr_add(r19288, r19279, r19287, MPFR_RNDN);
        mpfr_mul(r19289, r19277, r19288, MPFR_RNDN);
        mpfr_add(r19290, r19278, r19289, MPFR_RNDN);
        mpfr_mul(r19291, r19277, r19290, MPFR_RNDN);
        mpfr_mul(r19292, r19274, r19274, MPFR_RNDN);
        mpfr_neg(r19293, r19292, MPFR_RNDN);
        mpfr_exp(r19294, r19293, MPFR_RNDN);
        mpfr_mul(r19295, r19291, r19294, MPFR_RNDN);
        mpfr_sub(r19296, r19271, r19295, MPFR_RNDN);
        mpfr_exp(r19297, r19296, MPFR_RNDN);
        mpfr_log(r19298, r19297, MPFR_RNDN);
        mpfr_log(r19299, r19298, MPFR_RNDN);
        mpfr_exp(r19300, r19299, MPFR_RNDN);
        return mpfr_get_d(r19300, MPFR_RNDN);
}

static mpfr_t r19301, r19302, r19303, r19304, r19305, r19306, r19307, r19308, r19309, r19310, r19311, r19312, r19313, r19314, r19315, r19316, r19317, r19318, r19319, r19320, r19321, r19322, r19323, r19324, r19325, r19326, r19327, r19328, r19329, r19330;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19301, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19302, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19303);
        mpfr_init(r19304);
        mpfr_init(r19305);
        mpfr_init(r19306);
        mpfr_init(r19307);
        mpfr_init_set_str(r19308, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19309, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19310, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19311, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19312, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19313);
        mpfr_init(r19314);
        mpfr_init(r19315);
        mpfr_init(r19316);
        mpfr_init(r19317);
        mpfr_init(r19318);
        mpfr_init(r19319);
        mpfr_init(r19320);
        mpfr_init(r19321);
        mpfr_init(r19322);
        mpfr_init(r19323);
        mpfr_init(r19324);
        mpfr_init(r19325);
        mpfr_init(r19326);
        mpfr_init(r19327);
        mpfr_init(r19328);
        mpfr_init(r19329);
        mpfr_init(r19330);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19303, x, MPFR_RNDN);
        mpfr_abs(r19304, r19303, MPFR_RNDN);
        mpfr_mul(r19305, r19302, r19304, MPFR_RNDN);
        mpfr_add(r19306, r19301, r19305, MPFR_RNDN);
        mpfr_div(r19307, r19301, r19306, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19313, r19307, r19312, MPFR_RNDN);
        mpfr_add(r19314, r19311, r19313, MPFR_RNDN);
        mpfr_mul(r19315, r19307, r19314, MPFR_RNDN);
        mpfr_add(r19316, r19310, r19315, MPFR_RNDN);
        mpfr_mul(r19317, r19307, r19316, MPFR_RNDN);
        mpfr_add(r19318, r19309, r19317, MPFR_RNDN);
        mpfr_mul(r19319, r19307, r19318, MPFR_RNDN);
        mpfr_add(r19320, r19308, r19319, MPFR_RNDN);
        mpfr_mul(r19321, r19307, r19320, MPFR_RNDN);
        mpfr_mul(r19322, r19304, r19304, MPFR_RNDN);
        mpfr_neg(r19323, r19322, MPFR_RNDN);
        mpfr_exp(r19324, r19323, MPFR_RNDN);
        mpfr_mul(r19325, r19321, r19324, MPFR_RNDN);
        mpfr_sub(r19326, r19301, r19325, MPFR_RNDN);
        mpfr_exp(r19327, r19326, MPFR_RNDN);
        mpfr_log(r19328, r19327, MPFR_RNDN);
        mpfr_log(r19329, r19328, MPFR_RNDN);
        mpfr_exp(r19330, r19329, MPFR_RNDN);
        return mpfr_get_d(r19330, MPFR_RNDN);
}

