#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 r18509 = 1.0f;
        float r18510 = 0.3275911f;
        float r18511 = x;
        float r18512 = fabs(r18511);
        float r18513 = r18510 * r18512;
        float r18514 = r18509 + r18513;
        float r18515 = r18509 / r18514;
        float r18516 = 0.254829592f;
        float r18517 = -0.284496736f;
        float r18518 = 1.421413741f;
        float r18519 = -1.453152027f;
        float r18520 = 1.061405429f;
        float r18521 = r18515 * r18520;
        float r18522 = r18519 + r18521;
        float r18523 = r18515 * r18522;
        float r18524 = r18518 + r18523;
        float r18525 = r18515 * r18524;
        float r18526 = r18517 + r18525;
        float r18527 = r18515 * r18526;
        float r18528 = r18516 + r18527;
        float r18529 = r18515 * r18528;
        float r18530 = r18512 * r18512;
        float r18531 = -r18530;
        float r18532 = exp(r18531);
        float r18533 = r18529 * r18532;
        float r18534 = r18509 - r18533;
        return r18534;
}

double f_id(double x) {
        double r18535 = 1.0;
        double r18536 = 0.3275911;
        double r18537 = x;
        double r18538 = fabs(r18537);
        double r18539 = r18536 * r18538;
        double r18540 = r18535 + r18539;
        double r18541 = r18535 / r18540;
        double r18542 = 0.254829592;
        double r18543 = -0.284496736;
        double r18544 = 1.421413741;
        double r18545 = -1.453152027;
        double r18546 = 1.061405429;
        double r18547 = r18541 * r18546;
        double r18548 = r18545 + r18547;
        double r18549 = r18541 * r18548;
        double r18550 = r18544 + r18549;
        double r18551 = r18541 * r18550;
        double r18552 = r18543 + r18551;
        double r18553 = r18541 * r18552;
        double r18554 = r18542 + r18553;
        double r18555 = r18541 * r18554;
        double r18556 = r18538 * r18538;
        double r18557 = -r18556;
        double r18558 = exp(r18557);
        double r18559 = r18555 * r18558;
        double r18560 = r18535 - r18559;
        return r18560;
}


double f_of(float x) {
        float r18561 = 1.0f;
        float r18562 = 1.061405429f;
        float r18563 = 0.3275911f;
        float r18564 = x;
        float r18565 = fabs(r18564);
        float r18566 = fma(r18563, r18565, r18561);
        float r18567 = r18562 / r18566;
        float r18568 = -1.453152027f;
        float r18569 = r18567 + r18568;
        float r18570 = r18561 / r18566;
        float r18571 = r18570 / r18566;
        float r18572 = 1.421413741f;
        float r18573 = r18572 / r18566;
        float r18574 = -0.284496736f;
        float r18575 = r18573 + r18574;
        float r18576 = fma(r18569, r18571, r18575);
        float r18577 = 0.254829592f;
        float r18578 = r18577 / r18566;
        float r18579 = fma(r18576, r18571, r18578);
        float r18580 = r18579 * (r18579 * r18579);
        float r18581 = cbrt(r18580);
        float r18582 = r18565 * r18565;
        float r18583 = exp(r18582);
        float r18584 = r18581 / r18583;
        float r18585 = r18561 - r18584;
        return r18585;
}

double f_od(double x) {
        double r18586 = 1.0;
        double r18587 = 1.061405429;
        double r18588 = 0.3275911;
        double r18589 = x;
        double r18590 = fabs(r18589);
        double r18591 = fma(r18588, r18590, r18586);
        double r18592 = r18587 / r18591;
        double r18593 = -1.453152027;
        double r18594 = r18592 + r18593;
        double r18595 = r18586 / r18591;
        double r18596 = r18595 / r18591;
        double r18597 = 1.421413741;
        double r18598 = r18597 / r18591;
        double r18599 = -0.284496736;
        double r18600 = r18598 + r18599;
        double r18601 = fma(r18594, r18596, r18600);
        double r18602 = 0.254829592;
        double r18603 = r18602 / r18591;
        double r18604 = fma(r18601, r18596, r18603);
        double r18605 = r18604 * (r18604 * r18604);
        double r18606 = cbrt(r18605);
        double r18607 = r18590 * r18590;
        double r18608 = exp(r18607);
        double r18609 = r18606 / r18608;
        double r18610 = r18586 - r18609;
        return r18610;
}

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 r18611, r18612, r18613, r18614, r18615, r18616, r18617, r18618, r18619, r18620, r18621, r18622, r18623, r18624, r18625, r18626, r18627, r18628, r18629, r18630, r18631, r18632, r18633, r18634, r18635, r18636;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18611, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18612, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18613);
        mpfr_init(r18614);
        mpfr_init(r18615);
        mpfr_init(r18616);
        mpfr_init(r18617);
        mpfr_init_set_str(r18618, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18619, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18620, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18621, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r18622, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18623);
        mpfr_init(r18624);
        mpfr_init(r18625);
        mpfr_init(r18626);
        mpfr_init(r18627);
        mpfr_init(r18628);
        mpfr_init(r18629);
        mpfr_init(r18630);
        mpfr_init(r18631);
        mpfr_init(r18632);
        mpfr_init(r18633);
        mpfr_init(r18634);
        mpfr_init(r18635);
        mpfr_init(r18636);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r18613, x, MPFR_RNDN);
        mpfr_abs(r18614, r18613, MPFR_RNDN);
        mpfr_mul(r18615, r18612, r18614, MPFR_RNDN);
        mpfr_add(r18616, r18611, r18615, MPFR_RNDN);
        mpfr_div(r18617, r18611, r18616, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r18623, r18617, r18622, MPFR_RNDN);
        mpfr_add(r18624, r18621, r18623, MPFR_RNDN);
        mpfr_mul(r18625, r18617, r18624, MPFR_RNDN);
        mpfr_add(r18626, r18620, r18625, MPFR_RNDN);
        mpfr_mul(r18627, r18617, r18626, MPFR_RNDN);
        mpfr_add(r18628, r18619, r18627, MPFR_RNDN);
        mpfr_mul(r18629, r18617, r18628, MPFR_RNDN);
        mpfr_add(r18630, r18618, r18629, MPFR_RNDN);
        mpfr_mul(r18631, r18617, r18630, MPFR_RNDN);
        mpfr_mul(r18632, r18614, r18614, MPFR_RNDN);
        mpfr_neg(r18633, r18632, MPFR_RNDN);
        mpfr_exp(r18634, r18633, MPFR_RNDN);
        mpfr_mul(r18635, r18631, r18634, MPFR_RNDN);
        mpfr_sub(r18636, r18611, r18635, MPFR_RNDN);
        return mpfr_get_d(r18636, MPFR_RNDN);
}

static mpfr_t r18637, r18638, r18639, r18640, r18641, r18642, r18643, r18644, r18645, r18646, r18647, r18648, r18649, r18650, r18651, r18652, r18653, r18654, r18655, r18656, r18657, r18658, r18659, r18660, r18661;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18637, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18638, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r18639, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18640);
        mpfr_init(r18641);
        mpfr_init(r18642);
        mpfr_init(r18643);
        mpfr_init_set_str(r18644, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18645);
        mpfr_init(r18646);
        mpfr_init(r18647);
        mpfr_init_set_str(r18648, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r18649);
        mpfr_init_set_str(r18650, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r18651);
        mpfr_init(r18652);
        mpfr_init_set_str(r18653, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r18654);
        mpfr_init(r18655);
        mpfr_init(r18656);
        mpfr_init(r18657);
        mpfr_init(r18658);
        mpfr_init(r18659);
        mpfr_init(r18660);
        mpfr_init(r18661);
}

double f_fm(double x) {
        ;
        ;
        ;
        mpfr_set_d(r18640, x, MPFR_RNDN);
        mpfr_abs(r18641, r18640, MPFR_RNDN);
        mpfr_fma(r18642, r18639, r18641, r18637, MPFR_RNDN);
        mpfr_div(r18643, r18638, r18642, MPFR_RNDN);
        ;
        mpfr_add(r18645, r18643, r18644, MPFR_RNDN);
        mpfr_div(r18646, r18637, r18642, MPFR_RNDN);
        mpfr_div(r18647, r18646, r18642, MPFR_RNDN);
        ;
        mpfr_div(r18649, r18648, r18642, MPFR_RNDN);
        ;
        mpfr_add(r18651, r18649, r18650, MPFR_RNDN);
        mpfr_fma(r18652, r18645, r18647, r18651, MPFR_RNDN);
        ;
        mpfr_div(r18654, r18653, r18642, MPFR_RNDN);
        mpfr_fma(r18655, r18652, r18647, r18654, MPFR_RNDN);
        mpfr_mul(r18656, r18655, r18655, MPFR_RNDN); mpfr_mul(r18656, r18656, r18655, MPFR_RNDN);
        mpfr_cbrt(r18657, r18656, MPFR_RNDN);
        mpfr_mul(r18658, r18641, r18641, MPFR_RNDN);
        mpfr_exp(r18659, r18658, MPFR_RNDN);
        mpfr_div(r18660, r18657, r18659, MPFR_RNDN);
        mpfr_sub(r18661, r18637, r18660, MPFR_RNDN);
        return mpfr_get_d(r18661, MPFR_RNDN);
}

static mpfr_t r18662, r18663, r18664, r18665, r18666, r18667, r18668, r18669, r18670, r18671, r18672, r18673, r18674, r18675, r18676, r18677, r18678, r18679, r18680, r18681, r18682, r18683, r18684, r18685, r18686;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18662, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18663, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r18664, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18665);
        mpfr_init(r18666);
        mpfr_init(r18667);
        mpfr_init(r18668);
        mpfr_init_set_str(r18669, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18670);
        mpfr_init(r18671);
        mpfr_init(r18672);
        mpfr_init_set_str(r18673, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r18674);
        mpfr_init_set_str(r18675, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r18676);
        mpfr_init(r18677);
        mpfr_init_set_str(r18678, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r18679);
        mpfr_init(r18680);
        mpfr_init(r18681);
        mpfr_init(r18682);
        mpfr_init(r18683);
        mpfr_init(r18684);
        mpfr_init(r18685);
        mpfr_init(r18686);
}

double f_dm(double x) {
        ;
        ;
        ;
        mpfr_set_d(r18665, x, MPFR_RNDN);
        mpfr_abs(r18666, r18665, MPFR_RNDN);
        mpfr_fma(r18667, r18664, r18666, r18662, MPFR_RNDN);
        mpfr_div(r18668, r18663, r18667, MPFR_RNDN);
        ;
        mpfr_add(r18670, r18668, r18669, MPFR_RNDN);
        mpfr_div(r18671, r18662, r18667, MPFR_RNDN);
        mpfr_div(r18672, r18671, r18667, MPFR_RNDN);
        ;
        mpfr_div(r18674, r18673, r18667, MPFR_RNDN);
        ;
        mpfr_add(r18676, r18674, r18675, MPFR_RNDN);
        mpfr_fma(r18677, r18670, r18672, r18676, MPFR_RNDN);
        ;
        mpfr_div(r18679, r18678, r18667, MPFR_RNDN);
        mpfr_fma(r18680, r18677, r18672, r18679, MPFR_RNDN);
        mpfr_mul(r18681, r18680, r18680, MPFR_RNDN); mpfr_mul(r18681, r18681, r18680, MPFR_RNDN);
        mpfr_cbrt(r18682, r18681, MPFR_RNDN);
        mpfr_mul(r18683, r18666, r18666, MPFR_RNDN);
        mpfr_exp(r18684, r18683, MPFR_RNDN);
        mpfr_div(r18685, r18682, r18684, MPFR_RNDN);
        mpfr_sub(r18686, r18662, r18685, MPFR_RNDN);
        return mpfr_get_d(r18686, MPFR_RNDN);
}

