#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 r19257 = 1.0f;
        float r19258 = 0.3275911f;
        float r19259 = x;
        float r19260 = fabs(r19259);
        float r19261 = r19258 * r19260;
        float r19262 = r19257 + r19261;
        float r19263 = r19257 / r19262;
        float r19264 = 0.254829592f;
        float r19265 = -0.284496736f;
        float r19266 = 1.421413741f;
        float r19267 = -1.453152027f;
        float r19268 = 1.061405429f;
        float r19269 = r19263 * r19268;
        float r19270 = r19267 + r19269;
        float r19271 = r19263 * r19270;
        float r19272 = r19266 + r19271;
        float r19273 = r19263 * r19272;
        float r19274 = r19265 + r19273;
        float r19275 = r19263 * r19274;
        float r19276 = r19264 + r19275;
        float r19277 = r19263 * r19276;
        float r19278 = r19260 * r19260;
        float r19279 = -r19278;
        float r19280 = exp(r19279);
        float r19281 = r19277 * r19280;
        float r19282 = r19257 - r19281;
        return r19282;
}

double f_id(double x) {
        double r19283 = 1.0;
        double r19284 = 0.3275911;
        double r19285 = x;
        double r19286 = fabs(r19285);
        double r19287 = r19284 * r19286;
        double r19288 = r19283 + r19287;
        double r19289 = r19283 / r19288;
        double r19290 = 0.254829592;
        double r19291 = -0.284496736;
        double r19292 = 1.421413741;
        double r19293 = -1.453152027;
        double r19294 = 1.061405429;
        double r19295 = r19289 * r19294;
        double r19296 = r19293 + r19295;
        double r19297 = r19289 * r19296;
        double r19298 = r19292 + r19297;
        double r19299 = r19289 * r19298;
        double r19300 = r19291 + r19299;
        double r19301 = r19289 * r19300;
        double r19302 = r19290 + r19301;
        double r19303 = r19289 * r19302;
        double r19304 = r19286 * r19286;
        double r19305 = -r19304;
        double r19306 = exp(r19305);
        double r19307 = r19303 * r19306;
        double r19308 = r19283 - r19307;
        return r19308;
}


double f_of(float x) {
        float r19309 = 1.0f;
        float r19310 = 3.0f;
        float r19311 = pow(r19309, r19310);
        float r19312 = 0.3275911f;
        float r19313 = x;
        float r19314 = fabs(r19313);
        float r19315 = r19312 * r19314;
        float r19316 = r19309 + r19315;
        float r19317 = r19309 / r19316;
        float r19318 = 0.254829592f;
        float r19319 = -0.284496736f;
        float r19320 = 1.061405429f;
        float r19321 = r19314 * r19312;
        float r19322 = r19309 + r19321;
        float r19323 = r19320 / r19322;
        float r19324 = -1.453152027f;
        float r19325 = r19323 + r19324;
        float r19326 = r19322 * r19322;
        float r19327 = r19325 / r19326;
        float r19328 = 1.421413741f;
        float r19329 = r19328 / r19322;
        float r19330 = r19327 + r19329;
        float r19331 = r19319 + r19330;
        float r19332 = cbrt(r19331);
        float r19333 = r19332 * (r19332 * r19332);
        float r19334 = r19317 * r19333;
        float r19335 = r19318 + r19334;
        float r19336 = r19317 * r19335;
        float r19337 = r19314 * r19314;
        float r19338 = -r19337;
        float r19339 = exp(r19338);
        float r19340 = r19336 * r19339;
        float r19341 = pow(r19340, r19310);
        float r19342 = r19311 - r19341;
        float r19343 = r19309 * r19309;
        float r19344 = r19340 * r19340;
        float r19345 = r19309 * r19340;
        float r19346 = r19344 + r19345;
        float r19347 = r19343 + r19346;
        float r19348 = r19342 / r19347;
        return r19348;
}

double f_od(double x) {
        double r19349 = 1.0;
        double r19350 = 3.0;
        double r19351 = pow(r19349, r19350);
        double r19352 = 0.3275911;
        double r19353 = x;
        double r19354 = fabs(r19353);
        double r19355 = r19352 * r19354;
        double r19356 = r19349 + r19355;
        double r19357 = r19349 / r19356;
        double r19358 = 0.254829592;
        double r19359 = -0.284496736;
        double r19360 = 1.061405429;
        double r19361 = r19354 * r19352;
        double r19362 = r19349 + r19361;
        double r19363 = r19360 / r19362;
        double r19364 = -1.453152027;
        double r19365 = r19363 + r19364;
        double r19366 = r19362 * r19362;
        double r19367 = r19365 / r19366;
        double r19368 = 1.421413741;
        double r19369 = r19368 / r19362;
        double r19370 = r19367 + r19369;
        double r19371 = r19359 + r19370;
        double r19372 = cbrt(r19371);
        double r19373 = r19372 * (r19372 * r19372);
        double r19374 = r19357 * r19373;
        double r19375 = r19358 + r19374;
        double r19376 = r19357 * r19375;
        double r19377 = r19354 * r19354;
        double r19378 = -r19377;
        double r19379 = exp(r19378);
        double r19380 = r19376 * r19379;
        double r19381 = pow(r19380, r19350);
        double r19382 = r19351 - r19381;
        double r19383 = r19349 * r19349;
        double r19384 = r19380 * r19380;
        double r19385 = r19349 * r19380;
        double r19386 = r19384 + r19385;
        double r19387 = r19383 + r19386;
        double r19388 = r19382 / r19387;
        return r19388;
}

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 r19389, r19390, r19391, r19392, r19393, r19394, r19395, r19396, r19397, r19398, r19399, r19400, r19401, r19402, r19403, r19404, r19405, r19406, r19407, r19408, r19409, r19410, r19411, r19412, r19413, r19414;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19389, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19390, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19391);
        mpfr_init(r19392);
        mpfr_init(r19393);
        mpfr_init(r19394);
        mpfr_init(r19395);
        mpfr_init_set_str(r19396, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19397, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19398, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19399, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19400, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19401);
        mpfr_init(r19402);
        mpfr_init(r19403);
        mpfr_init(r19404);
        mpfr_init(r19405);
        mpfr_init(r19406);
        mpfr_init(r19407);
        mpfr_init(r19408);
        mpfr_init(r19409);
        mpfr_init(r19410);
        mpfr_init(r19411);
        mpfr_init(r19412);
        mpfr_init(r19413);
        mpfr_init(r19414);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19391, x, MPFR_RNDN);
        mpfr_abs(r19392, r19391, MPFR_RNDN);
        mpfr_mul(r19393, r19390, r19392, MPFR_RNDN);
        mpfr_add(r19394, r19389, r19393, MPFR_RNDN);
        mpfr_div(r19395, r19389, r19394, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19401, r19395, r19400, MPFR_RNDN);
        mpfr_add(r19402, r19399, r19401, MPFR_RNDN);
        mpfr_mul(r19403, r19395, r19402, MPFR_RNDN);
        mpfr_add(r19404, r19398, r19403, MPFR_RNDN);
        mpfr_mul(r19405, r19395, r19404, MPFR_RNDN);
        mpfr_add(r19406, r19397, r19405, MPFR_RNDN);
        mpfr_mul(r19407, r19395, r19406, MPFR_RNDN);
        mpfr_add(r19408, r19396, r19407, MPFR_RNDN);
        mpfr_mul(r19409, r19395, r19408, MPFR_RNDN);
        mpfr_mul(r19410, r19392, r19392, MPFR_RNDN);
        mpfr_neg(r19411, r19410, MPFR_RNDN);
        mpfr_exp(r19412, r19411, MPFR_RNDN);
        mpfr_mul(r19413, r19409, r19412, MPFR_RNDN);
        mpfr_sub(r19414, r19389, r19413, MPFR_RNDN);
        return mpfr_get_d(r19414, MPFR_RNDN);
}

static mpfr_t r19415, r19416, r19417, r19418, r19419, r19420, r19421, r19422, r19423, r19424, r19425, r19426, r19427, r19428, r19429, r19430, r19431, r19432, r19433, r19434, r19435, r19436, r19437, r19438, r19439, r19440, r19441, r19442, r19443, r19444, r19445, r19446, r19447, r19448, r19449, r19450, r19451, r19452, r19453, r19454;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19415, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19416, "3", 10, MPFR_RNDN);
        mpfr_init(r19417);
        mpfr_init_set_str(r19418, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19419);
        mpfr_init(r19420);
        mpfr_init(r19421);
        mpfr_init(r19422);
        mpfr_init(r19423);
        mpfr_init_set_str(r19424, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19425, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19426, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19427);
        mpfr_init(r19428);
        mpfr_init(r19429);
        mpfr_init_set_str(r19430, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19431);
        mpfr_init(r19432);
        mpfr_init(r19433);
        mpfr_init_set_str(r19434, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r19435);
        mpfr_init(r19436);
        mpfr_init(r19437);
        mpfr_init(r19438);
        mpfr_init(r19439);
        mpfr_init(r19440);
        mpfr_init(r19441);
        mpfr_init(r19442);
        mpfr_init(r19443);
        mpfr_init(r19444);
        mpfr_init(r19445);
        mpfr_init(r19446);
        mpfr_init(r19447);
        mpfr_init(r19448);
        mpfr_init(r19449);
        mpfr_init(r19450);
        mpfr_init(r19451);
        mpfr_init(r19452);
        mpfr_init(r19453);
        mpfr_init(r19454);
}

double f_fm(double x) {
        ;
        ;
        mpfr_pow(r19417, r19415, r19416, MPFR_RNDN);
        ;
        mpfr_set_d(r19419, x, MPFR_RNDN);
        mpfr_abs(r19420, r19419, MPFR_RNDN);
        mpfr_mul(r19421, r19418, r19420, MPFR_RNDN);
        mpfr_add(r19422, r19415, r19421, MPFR_RNDN);
        mpfr_div(r19423, r19415, r19422, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r19427, r19420, r19418, MPFR_RNDN);
        mpfr_add(r19428, r19415, r19427, MPFR_RNDN);
        mpfr_div(r19429, r19426, r19428, MPFR_RNDN);
        ;
        mpfr_add(r19431, r19429, r19430, MPFR_RNDN);
        mpfr_sqr(r19432, r19428, MPFR_RNDN);
        mpfr_div(r19433, r19431, r19432, MPFR_RNDN);
        ;
        mpfr_div(r19435, r19434, r19428, MPFR_RNDN);
        mpfr_add(r19436, r19433, r19435, MPFR_RNDN);
        mpfr_add(r19437, r19425, r19436, MPFR_RNDN);
        mpfr_cbrt(r19438, r19437, MPFR_RNDN);
        mpfr_mul(r19439, r19438, r19438, MPFR_RNDN); mpfr_mul(r19439, r19439, r19438, MPFR_RNDN);
        mpfr_mul(r19440, r19423, r19439, MPFR_RNDN);
        mpfr_add(r19441, r19424, r19440, MPFR_RNDN);
        mpfr_mul(r19442, r19423, r19441, MPFR_RNDN);
        mpfr_mul(r19443, r19420, r19420, MPFR_RNDN);
        mpfr_neg(r19444, r19443, MPFR_RNDN);
        mpfr_exp(r19445, r19444, MPFR_RNDN);
        mpfr_mul(r19446, r19442, r19445, MPFR_RNDN);
        mpfr_pow(r19447, r19446, r19416, MPFR_RNDN);
        mpfr_sub(r19448, r19417, r19447, MPFR_RNDN);
        mpfr_sqr(r19449, r19415, MPFR_RNDN);
        mpfr_sqr(r19450, r19446, MPFR_RNDN);
        mpfr_mul(r19451, r19415, r19446, MPFR_RNDN);
        mpfr_add(r19452, r19450, r19451, MPFR_RNDN);
        mpfr_add(r19453, r19449, r19452, MPFR_RNDN);
        mpfr_div(r19454, r19448, r19453, MPFR_RNDN);
        return mpfr_get_d(r19454, MPFR_RNDN);
}

static mpfr_t r19455, r19456, r19457, r19458, r19459, r19460, r19461, r19462, r19463, r19464, r19465, r19466, r19467, r19468, r19469, r19470, r19471, r19472, r19473, r19474, r19475, r19476, r19477, r19478, r19479, r19480, r19481, r19482, r19483, r19484, r19485, r19486, r19487, r19488, r19489, r19490, r19491, r19492, r19493, r19494;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19455, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19456, "3", 10, MPFR_RNDN);
        mpfr_init(r19457);
        mpfr_init_set_str(r19458, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19459);
        mpfr_init(r19460);
        mpfr_init(r19461);
        mpfr_init(r19462);
        mpfr_init(r19463);
        mpfr_init_set_str(r19464, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19465, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19466, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19467);
        mpfr_init(r19468);
        mpfr_init(r19469);
        mpfr_init_set_str(r19470, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19471);
        mpfr_init(r19472);
        mpfr_init(r19473);
        mpfr_init_set_str(r19474, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r19475);
        mpfr_init(r19476);
        mpfr_init(r19477);
        mpfr_init(r19478);
        mpfr_init(r19479);
        mpfr_init(r19480);
        mpfr_init(r19481);
        mpfr_init(r19482);
        mpfr_init(r19483);
        mpfr_init(r19484);
        mpfr_init(r19485);
        mpfr_init(r19486);
        mpfr_init(r19487);
        mpfr_init(r19488);
        mpfr_init(r19489);
        mpfr_init(r19490);
        mpfr_init(r19491);
        mpfr_init(r19492);
        mpfr_init(r19493);
        mpfr_init(r19494);
}

double f_dm(double x) {
        ;
        ;
        mpfr_pow(r19457, r19455, r19456, MPFR_RNDN);
        ;
        mpfr_set_d(r19459, x, MPFR_RNDN);
        mpfr_abs(r19460, r19459, MPFR_RNDN);
        mpfr_mul(r19461, r19458, r19460, MPFR_RNDN);
        mpfr_add(r19462, r19455, r19461, MPFR_RNDN);
        mpfr_div(r19463, r19455, r19462, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r19467, r19460, r19458, MPFR_RNDN);
        mpfr_add(r19468, r19455, r19467, MPFR_RNDN);
        mpfr_div(r19469, r19466, r19468, MPFR_RNDN);
        ;
        mpfr_add(r19471, r19469, r19470, MPFR_RNDN);
        mpfr_sqr(r19472, r19468, MPFR_RNDN);
        mpfr_div(r19473, r19471, r19472, MPFR_RNDN);
        ;
        mpfr_div(r19475, r19474, r19468, MPFR_RNDN);
        mpfr_add(r19476, r19473, r19475, MPFR_RNDN);
        mpfr_add(r19477, r19465, r19476, MPFR_RNDN);
        mpfr_cbrt(r19478, r19477, MPFR_RNDN);
        mpfr_mul(r19479, r19478, r19478, MPFR_RNDN); mpfr_mul(r19479, r19479, r19478, MPFR_RNDN);
        mpfr_mul(r19480, r19463, r19479, MPFR_RNDN);
        mpfr_add(r19481, r19464, r19480, MPFR_RNDN);
        mpfr_mul(r19482, r19463, r19481, MPFR_RNDN);
        mpfr_mul(r19483, r19460, r19460, MPFR_RNDN);
        mpfr_neg(r19484, r19483, MPFR_RNDN);
        mpfr_exp(r19485, r19484, MPFR_RNDN);
        mpfr_mul(r19486, r19482, r19485, MPFR_RNDN);
        mpfr_pow(r19487, r19486, r19456, MPFR_RNDN);
        mpfr_sub(r19488, r19457, r19487, MPFR_RNDN);
        mpfr_sqr(r19489, r19455, MPFR_RNDN);
        mpfr_sqr(r19490, r19486, MPFR_RNDN);
        mpfr_mul(r19491, r19455, r19486, MPFR_RNDN);
        mpfr_add(r19492, r19490, r19491, MPFR_RNDN);
        mpfr_add(r19493, r19489, r19492, MPFR_RNDN);
        mpfr_div(r19494, r19488, r19493, MPFR_RNDN);
        return mpfr_get_d(r19494, MPFR_RNDN);
}

