#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 r19429 = 1.0f;
        float r19430 = 0.3275911f;
        float r19431 = x;
        float r19432 = fabs(r19431);
        float r19433 = r19430 * r19432;
        float r19434 = r19429 + r19433;
        float r19435 = r19429 / r19434;
        float r19436 = 0.254829592f;
        float r19437 = -0.284496736f;
        float r19438 = 1.421413741f;
        float r19439 = -1.453152027f;
        float r19440 = 1.061405429f;
        float r19441 = r19435 * r19440;
        float r19442 = r19439 + r19441;
        float r19443 = r19435 * r19442;
        float r19444 = r19438 + r19443;
        float r19445 = r19435 * r19444;
        float r19446 = r19437 + r19445;
        float r19447 = r19435 * r19446;
        float r19448 = r19436 + r19447;
        float r19449 = r19435 * r19448;
        float r19450 = r19432 * r19432;
        float r19451 = -r19450;
        float r19452 = exp(r19451);
        float r19453 = r19449 * r19452;
        float r19454 = r19429 - r19453;
        return r19454;
}

double f_id(double x) {
        double r19455 = 1.0;
        double r19456 = 0.3275911;
        double r19457 = x;
        double r19458 = fabs(r19457);
        double r19459 = r19456 * r19458;
        double r19460 = r19455 + r19459;
        double r19461 = r19455 / r19460;
        double r19462 = 0.254829592;
        double r19463 = -0.284496736;
        double r19464 = 1.421413741;
        double r19465 = -1.453152027;
        double r19466 = 1.061405429;
        double r19467 = r19461 * r19466;
        double r19468 = r19465 + r19467;
        double r19469 = r19461 * r19468;
        double r19470 = r19464 + r19469;
        double r19471 = r19461 * r19470;
        double r19472 = r19463 + r19471;
        double r19473 = r19461 * r19472;
        double r19474 = r19462 + r19473;
        double r19475 = r19461 * r19474;
        double r19476 = r19458 * r19458;
        double r19477 = -r19476;
        double r19478 = exp(r19477);
        double r19479 = r19475 * r19478;
        double r19480 = r19455 - r19479;
        return r19480;
}


double f_of(float x) {
        float r19481 = 1.0f;
        float r19482 = r19481 * r19481;
        float r19483 = 0.3275911f;
        float r19484 = x;
        float r19485 = fabs(r19484);
        float r19486 = r19483 * r19485;
        float r19487 = r19481 + r19486;
        float r19488 = r19481 / r19487;
        float r19489 = 0.254829592f;
        float r19490 = -0.284496736f;
        float r19491 = 1.421413741f;
        float r19492 = -1.453152027f;
        float r19493 = 1.061405429f;
        float r19494 = r19488 * r19493;
        float r19495 = r19492 + r19494;
        float r19496 = r19488 * r19495;
        float r19497 = r19491 + r19496;
        float r19498 = r19488 * r19497;
        float r19499 = r19490 + r19498;
        float r19500 = r19488 * r19499;
        float r19501 = r19489 + r19500;
        float r19502 = r19488 * r19501;
        float r19503 = r19485 * r19485;
        float r19504 = -r19503;
        float r19505 = exp(r19504);
        float r19506 = r19502 * r19505;
        float r19507 = r19506 * r19506;
        float r19508 = r19507 * (r19507 * r19507);
        float r19509 = cbrt(r19508);
        float r19510 = r19482 - r19509;
        float r19511 = r19481 + r19506;
        float r19512 = r19510 / r19511;
        return r19512;
}

double f_od(double x) {
        double r19513 = 1.0;
        double r19514 = r19513 * r19513;
        double r19515 = 0.3275911;
        double r19516 = x;
        double r19517 = fabs(r19516);
        double r19518 = r19515 * r19517;
        double r19519 = r19513 + r19518;
        double r19520 = r19513 / r19519;
        double r19521 = 0.254829592;
        double r19522 = -0.284496736;
        double r19523 = 1.421413741;
        double r19524 = -1.453152027;
        double r19525 = 1.061405429;
        double r19526 = r19520 * r19525;
        double r19527 = r19524 + r19526;
        double r19528 = r19520 * r19527;
        double r19529 = r19523 + r19528;
        double r19530 = r19520 * r19529;
        double r19531 = r19522 + r19530;
        double r19532 = r19520 * r19531;
        double r19533 = r19521 + r19532;
        double r19534 = r19520 * r19533;
        double r19535 = r19517 * r19517;
        double r19536 = -r19535;
        double r19537 = exp(r19536);
        double r19538 = r19534 * r19537;
        double r19539 = r19538 * r19538;
        double r19540 = r19539 * (r19539 * r19539);
        double r19541 = cbrt(r19540);
        double r19542 = r19514 - r19541;
        double r19543 = r19513 + r19538;
        double r19544 = r19542 / r19543;
        return r19544;
}

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 r19545, r19546, r19547, r19548, r19549, r19550, r19551, r19552, r19553, r19554, r19555, r19556, r19557, r19558, r19559, r19560, r19561, r19562, r19563, r19564, r19565, r19566, r19567, r19568, r19569, r19570;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19545, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19546, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19547);
        mpfr_init(r19548);
        mpfr_init(r19549);
        mpfr_init(r19550);
        mpfr_init(r19551);
        mpfr_init_set_str(r19552, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19553, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19554, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19555, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19556, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19557);
        mpfr_init(r19558);
        mpfr_init(r19559);
        mpfr_init(r19560);
        mpfr_init(r19561);
        mpfr_init(r19562);
        mpfr_init(r19563);
        mpfr_init(r19564);
        mpfr_init(r19565);
        mpfr_init(r19566);
        mpfr_init(r19567);
        mpfr_init(r19568);
        mpfr_init(r19569);
        mpfr_init(r19570);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19547, x, MPFR_RNDN);
        mpfr_abs(r19548, r19547, MPFR_RNDN);
        mpfr_mul(r19549, r19546, r19548, MPFR_RNDN);
        mpfr_add(r19550, r19545, r19549, MPFR_RNDN);
        mpfr_div(r19551, r19545, r19550, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19557, r19551, r19556, MPFR_RNDN);
        mpfr_add(r19558, r19555, r19557, MPFR_RNDN);
        mpfr_mul(r19559, r19551, r19558, MPFR_RNDN);
        mpfr_add(r19560, r19554, r19559, MPFR_RNDN);
        mpfr_mul(r19561, r19551, r19560, MPFR_RNDN);
        mpfr_add(r19562, r19553, r19561, MPFR_RNDN);
        mpfr_mul(r19563, r19551, r19562, MPFR_RNDN);
        mpfr_add(r19564, r19552, r19563, MPFR_RNDN);
        mpfr_mul(r19565, r19551, r19564, MPFR_RNDN);
        mpfr_mul(r19566, r19548, r19548, MPFR_RNDN);
        mpfr_neg(r19567, r19566, MPFR_RNDN);
        mpfr_exp(r19568, r19567, MPFR_RNDN);
        mpfr_mul(r19569, r19565, r19568, MPFR_RNDN);
        mpfr_sub(r19570, r19545, r19569, MPFR_RNDN);
        return mpfr_get_d(r19570, MPFR_RNDN);
}

static mpfr_t r19571, r19572, r19573, r19574, r19575, r19576, r19577, r19578, r19579, r19580, r19581, r19582, r19583, r19584, r19585, r19586, r19587, r19588, r19589, r19590, r19591, r19592, r19593, r19594, r19595, r19596, r19597, r19598, r19599, r19600, r19601, r19602;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19571, "1", 10, MPFR_RNDN);
        mpfr_init(r19572);
        mpfr_init_set_str(r19573, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19574);
        mpfr_init(r19575);
        mpfr_init(r19576);
        mpfr_init(r19577);
        mpfr_init(r19578);
        mpfr_init_set_str(r19579, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19580, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19581, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19582, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19583, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19584);
        mpfr_init(r19585);
        mpfr_init(r19586);
        mpfr_init(r19587);
        mpfr_init(r19588);
        mpfr_init(r19589);
        mpfr_init(r19590);
        mpfr_init(r19591);
        mpfr_init(r19592);
        mpfr_init(r19593);
        mpfr_init(r19594);
        mpfr_init(r19595);
        mpfr_init(r19596);
        mpfr_init(r19597);
        mpfr_init(r19598);
        mpfr_init(r19599);
        mpfr_init(r19600);
        mpfr_init(r19601);
        mpfr_init(r19602);
}

double f_fm(double x) {
        ;
        mpfr_sqr(r19572, r19571, MPFR_RNDN);
        ;
        mpfr_set_d(r19574, x, MPFR_RNDN);
        mpfr_abs(r19575, r19574, MPFR_RNDN);
        mpfr_mul(r19576, r19573, r19575, MPFR_RNDN);
        mpfr_add(r19577, r19571, r19576, MPFR_RNDN);
        mpfr_div(r19578, r19571, r19577, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19584, r19578, r19583, MPFR_RNDN);
        mpfr_add(r19585, r19582, r19584, MPFR_RNDN);
        mpfr_mul(r19586, r19578, r19585, MPFR_RNDN);
        mpfr_add(r19587, r19581, r19586, MPFR_RNDN);
        mpfr_mul(r19588, r19578, r19587, MPFR_RNDN);
        mpfr_add(r19589, r19580, r19588, MPFR_RNDN);
        mpfr_mul(r19590, r19578, r19589, MPFR_RNDN);
        mpfr_add(r19591, r19579, r19590, MPFR_RNDN);
        mpfr_mul(r19592, r19578, r19591, MPFR_RNDN);
        mpfr_mul(r19593, r19575, r19575, MPFR_RNDN);
        mpfr_neg(r19594, r19593, MPFR_RNDN);
        mpfr_exp(r19595, r19594, MPFR_RNDN);
        mpfr_mul(r19596, r19592, r19595, MPFR_RNDN);
        mpfr_sqr(r19597, r19596, MPFR_RNDN);
        mpfr_mul(r19598, r19597, r19597, MPFR_RNDN); mpfr_mul(r19598, r19598, r19597, MPFR_RNDN);
        mpfr_cbrt(r19599, r19598, MPFR_RNDN);
        mpfr_sub(r19600, r19572, r19599, MPFR_RNDN);
        mpfr_add(r19601, r19571, r19596, MPFR_RNDN);
        mpfr_div(r19602, r19600, r19601, MPFR_RNDN);
        return mpfr_get_d(r19602, MPFR_RNDN);
}

static mpfr_t r19603, r19604, r19605, r19606, r19607, r19608, r19609, r19610, r19611, r19612, r19613, r19614, r19615, r19616, r19617, r19618, r19619, r19620, r19621, r19622, r19623, r19624, r19625, r19626, r19627, r19628, r19629, r19630, r19631, r19632, r19633, r19634;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19603, "1", 10, MPFR_RNDN);
        mpfr_init(r19604);
        mpfr_init_set_str(r19605, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19606);
        mpfr_init(r19607);
        mpfr_init(r19608);
        mpfr_init(r19609);
        mpfr_init(r19610);
        mpfr_init_set_str(r19611, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19612, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19613, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19614, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19615, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19616);
        mpfr_init(r19617);
        mpfr_init(r19618);
        mpfr_init(r19619);
        mpfr_init(r19620);
        mpfr_init(r19621);
        mpfr_init(r19622);
        mpfr_init(r19623);
        mpfr_init(r19624);
        mpfr_init(r19625);
        mpfr_init(r19626);
        mpfr_init(r19627);
        mpfr_init(r19628);
        mpfr_init(r19629);
        mpfr_init(r19630);
        mpfr_init(r19631);
        mpfr_init(r19632);
        mpfr_init(r19633);
        mpfr_init(r19634);
}

double f_dm(double x) {
        ;
        mpfr_sqr(r19604, r19603, MPFR_RNDN);
        ;
        mpfr_set_d(r19606, x, MPFR_RNDN);
        mpfr_abs(r19607, r19606, MPFR_RNDN);
        mpfr_mul(r19608, r19605, r19607, MPFR_RNDN);
        mpfr_add(r19609, r19603, r19608, MPFR_RNDN);
        mpfr_div(r19610, r19603, r19609, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19616, r19610, r19615, MPFR_RNDN);
        mpfr_add(r19617, r19614, r19616, MPFR_RNDN);
        mpfr_mul(r19618, r19610, r19617, MPFR_RNDN);
        mpfr_add(r19619, r19613, r19618, MPFR_RNDN);
        mpfr_mul(r19620, r19610, r19619, MPFR_RNDN);
        mpfr_add(r19621, r19612, r19620, MPFR_RNDN);
        mpfr_mul(r19622, r19610, r19621, MPFR_RNDN);
        mpfr_add(r19623, r19611, r19622, MPFR_RNDN);
        mpfr_mul(r19624, r19610, r19623, MPFR_RNDN);
        mpfr_mul(r19625, r19607, r19607, MPFR_RNDN);
        mpfr_neg(r19626, r19625, MPFR_RNDN);
        mpfr_exp(r19627, r19626, MPFR_RNDN);
        mpfr_mul(r19628, r19624, r19627, MPFR_RNDN);
        mpfr_sqr(r19629, r19628, MPFR_RNDN);
        mpfr_mul(r19630, r19629, r19629, MPFR_RNDN); mpfr_mul(r19630, r19630, r19629, MPFR_RNDN);
        mpfr_cbrt(r19631, r19630, MPFR_RNDN);
        mpfr_sub(r19632, r19604, r19631, MPFR_RNDN);
        mpfr_add(r19633, r19603, r19628, MPFR_RNDN);
        mpfr_div(r19634, r19632, r19633, MPFR_RNDN);
        return mpfr_get_d(r19634, MPFR_RNDN);
}

