#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 r19121 = 1.0f;
        float r19122 = 0.3275911f;
        float r19123 = x;
        float r19124 = fabs(r19123);
        float r19125 = r19122 * r19124;
        float r19126 = r19121 + r19125;
        float r19127 = r19121 / r19126;
        float r19128 = 0.254829592f;
        float r19129 = -0.284496736f;
        float r19130 = 1.421413741f;
        float r19131 = -1.453152027f;
        float r19132 = 1.061405429f;
        float r19133 = r19127 * r19132;
        float r19134 = r19131 + r19133;
        float r19135 = r19127 * r19134;
        float r19136 = r19130 + r19135;
        float r19137 = r19127 * r19136;
        float r19138 = r19129 + r19137;
        float r19139 = r19127 * r19138;
        float r19140 = r19128 + r19139;
        float r19141 = r19127 * r19140;
        float r19142 = r19124 * r19124;
        float r19143 = -r19142;
        float r19144 = exp(r19143);
        float r19145 = r19141 * r19144;
        float r19146 = r19121 - r19145;
        return r19146;
}

double f_id(double x) {
        double r19147 = 1.0;
        double r19148 = 0.3275911;
        double r19149 = x;
        double r19150 = fabs(r19149);
        double r19151 = r19148 * r19150;
        double r19152 = r19147 + r19151;
        double r19153 = r19147 / r19152;
        double r19154 = 0.254829592;
        double r19155 = -0.284496736;
        double r19156 = 1.421413741;
        double r19157 = -1.453152027;
        double r19158 = 1.061405429;
        double r19159 = r19153 * r19158;
        double r19160 = r19157 + r19159;
        double r19161 = r19153 * r19160;
        double r19162 = r19156 + r19161;
        double r19163 = r19153 * r19162;
        double r19164 = r19155 + r19163;
        double r19165 = r19153 * r19164;
        double r19166 = r19154 + r19165;
        double r19167 = r19153 * r19166;
        double r19168 = r19150 * r19150;
        double r19169 = -r19168;
        double r19170 = exp(r19169);
        double r19171 = r19167 * r19170;
        double r19172 = r19147 - r19171;
        return r19172;
}


double f_of(float x) {
        float r19173 = 1.0f;
        float r19174 = 0.3275911f;
        float r19175 = x;
        float r19176 = fabs(r19175);
        float r19177 = r19174 * r19176;
        float r19178 = r19173 + r19177;
        float r19179 = r19173 / r19178;
        float r19180 = 0.254829592f;
        float r19181 = 1.061405429f;
        float r19182 = 3.0f;
        float r19183 = pow(r19178, r19182);
        float r19184 = r19173 / r19183;
        float r19185 = r19181 * r19184;
        float r19186 = 1.421413741f;
        float r19187 = r19186 * r19179;
        float r19188 = r19185 + r19187;
        float r19189 = 0.284496736f;
        float r19190 = 1.453152027f;
        float r19191 = r19178 * r19178;
        float r19192 = r19173 / r19191;
        float r19193 = r19190 * r19192;
        float r19194 = r19189 + r19193;
        float r19195 = r19188 - r19194;
        float r19196 = r19179 * r19195;
        float r19197 = r19180 + r19196;
        float r19198 = r19179 * r19197;
        float r19199 = r19176 * r19176;
        float r19200 = -r19199;
        float r19201 = exp(r19200);
        float r19202 = r19198 * r19201;
        float r19203 = r19173 - r19202;
        float r19204 = exp(r19203);
        float r19205 = log(r19204);
        return r19205;
}

double f_od(double x) {
        double r19206 = 1.0;
        double r19207 = 0.3275911;
        double r19208 = x;
        double r19209 = fabs(r19208);
        double r19210 = r19207 * r19209;
        double r19211 = r19206 + r19210;
        double r19212 = r19206 / r19211;
        double r19213 = 0.254829592;
        double r19214 = 1.061405429;
        double r19215 = 3.0;
        double r19216 = pow(r19211, r19215);
        double r19217 = r19206 / r19216;
        double r19218 = r19214 * r19217;
        double r19219 = 1.421413741;
        double r19220 = r19219 * r19212;
        double r19221 = r19218 + r19220;
        double r19222 = 0.284496736;
        double r19223 = 1.453152027;
        double r19224 = r19211 * r19211;
        double r19225 = r19206 / r19224;
        double r19226 = r19223 * r19225;
        double r19227 = r19222 + r19226;
        double r19228 = r19221 - r19227;
        double r19229 = r19212 * r19228;
        double r19230 = r19213 + r19229;
        double r19231 = r19212 * r19230;
        double r19232 = r19209 * r19209;
        double r19233 = -r19232;
        double r19234 = exp(r19233);
        double r19235 = r19231 * r19234;
        double r19236 = r19206 - r19235;
        double r19237 = exp(r19236);
        double r19238 = log(r19237);
        return r19238;
}

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 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_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19239, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19240, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19241);
        mpfr_init(r19242);
        mpfr_init(r19243);
        mpfr_init(r19244);
        mpfr_init(r19245);
        mpfr_init_set_str(r19246, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19247, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19248, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19249, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19250, "1.061405429", 10, MPFR_RNDN);
        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_im(double x) {
        ;
        ;
        mpfr_set_d(r19241, x, MPFR_RNDN);
        mpfr_abs(r19242, r19241, MPFR_RNDN);
        mpfr_mul(r19243, r19240, r19242, MPFR_RNDN);
        mpfr_add(r19244, r19239, r19243, MPFR_RNDN);
        mpfr_div(r19245, r19239, r19244, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19251, r19245, r19250, MPFR_RNDN);
        mpfr_add(r19252, r19249, r19251, MPFR_RNDN);
        mpfr_mul(r19253, r19245, r19252, MPFR_RNDN);
        mpfr_add(r19254, r19248, r19253, MPFR_RNDN);
        mpfr_mul(r19255, r19245, r19254, MPFR_RNDN);
        mpfr_add(r19256, r19247, r19255, MPFR_RNDN);
        mpfr_mul(r19257, r19245, r19256, MPFR_RNDN);
        mpfr_add(r19258, r19246, r19257, MPFR_RNDN);
        mpfr_mul(r19259, r19245, r19258, MPFR_RNDN);
        mpfr_mul(r19260, r19242, r19242, MPFR_RNDN);
        mpfr_neg(r19261, r19260, MPFR_RNDN);
        mpfr_exp(r19262, r19261, MPFR_RNDN);
        mpfr_mul(r19263, r19259, r19262, MPFR_RNDN);
        mpfr_sub(r19264, r19239, 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;

void setup_mpfr_f_fm() {
        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, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r19274, "3", 10, MPFR_RNDN);
        mpfr_init(r19275);
        mpfr_init(r19276);
        mpfr_init(r19277);
        mpfr_init_set_str(r19278, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r19279);
        mpfr_init(r19280);
        mpfr_init_set_str(r19281, "0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19282, "1.453152027", 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);
}

double f_fm(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_pow(r19275, r19270, r19274, MPFR_RNDN);
        mpfr_div(r19276, r19265, r19275, MPFR_RNDN);
        mpfr_mul(r19277, r19273, r19276, MPFR_RNDN);
        ;
        mpfr_mul(r19279, r19278, r19271, MPFR_RNDN);
        mpfr_add(r19280, r19277, r19279, MPFR_RNDN);
        ;
        ;
        mpfr_sqr(r19283, r19270, MPFR_RNDN);
        mpfr_div(r19284, r19265, r19283, MPFR_RNDN);
        mpfr_mul(r19285, r19282, r19284, MPFR_RNDN);
        mpfr_add(r19286, r19281, r19285, MPFR_RNDN);
        mpfr_sub(r19287, r19280, r19286, MPFR_RNDN);
        mpfr_mul(r19288, r19271, r19287, MPFR_RNDN);
        mpfr_add(r19289, r19272, r19288, MPFR_RNDN);
        mpfr_mul(r19290, r19271, r19289, MPFR_RNDN);
        mpfr_mul(r19291, r19268, r19268, MPFR_RNDN);
        mpfr_neg(r19292, r19291, MPFR_RNDN);
        mpfr_exp(r19293, r19292, MPFR_RNDN);
        mpfr_mul(r19294, r19290, r19293, MPFR_RNDN);
        mpfr_sub(r19295, r19265, r19294, MPFR_RNDN);
        mpfr_exp(r19296, r19295, MPFR_RNDN);
        mpfr_log(r19297, r19296, MPFR_RNDN);
        return mpfr_get_d(r19297, MPFR_RNDN);
}

static mpfr_t r19298, r19299, r19300, 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(r19298, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19299, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19300);
        mpfr_init(r19301);
        mpfr_init(r19302);
        mpfr_init(r19303);
        mpfr_init(r19304);
        mpfr_init_set_str(r19305, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19306, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r19307, "3", 10, MPFR_RNDN);
        mpfr_init(r19308);
        mpfr_init(r19309);
        mpfr_init(r19310);
        mpfr_init_set_str(r19311, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r19312);
        mpfr_init(r19313);
        mpfr_init_set_str(r19314, "0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19315, "1.453152027", 10, MPFR_RNDN);
        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(r19300, x, MPFR_RNDN);
        mpfr_abs(r19301, r19300, MPFR_RNDN);
        mpfr_mul(r19302, r19299, r19301, MPFR_RNDN);
        mpfr_add(r19303, r19298, r19302, MPFR_RNDN);
        mpfr_div(r19304, r19298, r19303, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_pow(r19308, r19303, r19307, MPFR_RNDN);
        mpfr_div(r19309, r19298, r19308, MPFR_RNDN);
        mpfr_mul(r19310, r19306, r19309, MPFR_RNDN);
        ;
        mpfr_mul(r19312, r19311, r19304, MPFR_RNDN);
        mpfr_add(r19313, r19310, r19312, MPFR_RNDN);
        ;
        ;
        mpfr_sqr(r19316, r19303, MPFR_RNDN);
        mpfr_div(r19317, r19298, r19316, MPFR_RNDN);
        mpfr_mul(r19318, r19315, r19317, MPFR_RNDN);
        mpfr_add(r19319, r19314, r19318, MPFR_RNDN);
        mpfr_sub(r19320, r19313, r19319, MPFR_RNDN);
        mpfr_mul(r19321, r19304, r19320, MPFR_RNDN);
        mpfr_add(r19322, r19305, r19321, MPFR_RNDN);
        mpfr_mul(r19323, r19304, r19322, MPFR_RNDN);
        mpfr_mul(r19324, r19301, r19301, MPFR_RNDN);
        mpfr_neg(r19325, r19324, MPFR_RNDN);
        mpfr_exp(r19326, r19325, MPFR_RNDN);
        mpfr_mul(r19327, r19323, r19326, MPFR_RNDN);
        mpfr_sub(r19328, r19298, r19327, MPFR_RNDN);
        mpfr_exp(r19329, r19328, MPFR_RNDN);
        mpfr_log(r19330, r19329, MPFR_RNDN);
        return mpfr_get_d(r19330, MPFR_RNDN);
}

