#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 r18517 = 1.0f;
        float r18518 = 0.3275911f;
        float r18519 = x;
        float r18520 = fabs(r18519);
        float r18521 = r18518 * r18520;
        float r18522 = r18517 + r18521;
        float r18523 = r18517 / r18522;
        float r18524 = 0.254829592f;
        float r18525 = -0.284496736f;
        float r18526 = 1.421413741f;
        float r18527 = -1.453152027f;
        float r18528 = 1.061405429f;
        float r18529 = r18523 * r18528;
        float r18530 = r18527 + r18529;
        float r18531 = r18523 * r18530;
        float r18532 = r18526 + r18531;
        float r18533 = r18523 * r18532;
        float r18534 = r18525 + r18533;
        float r18535 = r18523 * r18534;
        float r18536 = r18524 + r18535;
        float r18537 = r18523 * r18536;
        float r18538 = r18520 * r18520;
        float r18539 = -r18538;
        float r18540 = exp(r18539);
        float r18541 = r18537 * r18540;
        float r18542 = r18517 - r18541;
        return r18542;
}

double f_id(double x) {
        double r18543 = 1.0;
        double r18544 = 0.3275911;
        double r18545 = x;
        double r18546 = fabs(r18545);
        double r18547 = r18544 * r18546;
        double r18548 = r18543 + r18547;
        double r18549 = r18543 / r18548;
        double r18550 = 0.254829592;
        double r18551 = -0.284496736;
        double r18552 = 1.421413741;
        double r18553 = -1.453152027;
        double r18554 = 1.061405429;
        double r18555 = r18549 * r18554;
        double r18556 = r18553 + r18555;
        double r18557 = r18549 * r18556;
        double r18558 = r18552 + r18557;
        double r18559 = r18549 * r18558;
        double r18560 = r18551 + r18559;
        double r18561 = r18549 * r18560;
        double r18562 = r18550 + r18561;
        double r18563 = r18549 * r18562;
        double r18564 = r18546 * r18546;
        double r18565 = -r18564;
        double r18566 = exp(r18565);
        double r18567 = r18563 * r18566;
        double r18568 = r18543 - r18567;
        return r18568;
}


double f_of(float x) {
        float r18569 = 1.0f;
        float r18570 = 3.0f;
        float r18571 = pow(r18569, r18570);
        float r18572 = -1.453152027f;
        float r18573 = 1.061405429f;
        float r18574 = 0.3275911f;
        float r18575 = x;
        float r18576 = fabs(r18575);
        float r18577 = fma(r18574, r18576, r18569);
        float r18578 = r18573 / r18577;
        float r18579 = r18572 + r18578;
        float r18580 = r18577 * r18577;
        float r18581 = r18569 / r18580;
        float r18582 = 1.421413741f;
        float r18583 = r18582 / r18577;
        float r18584 = -0.284496736f;
        float r18585 = r18583 + r18584;
        float r18586 = fma(r18579, r18581, r18585);
        float r18587 = 0.254829592f;
        float r18588 = r18587 / r18577;
        float r18589 = fma(r18586, r18581, r18588);
        float r18590 = r18576 * r18576;
        float r18591 = exp(r18590);
        float r18592 = r18589 / r18591;
        float r18593 = r18592 * (r18592 * r18592);
        float r18594 = expm1(r18593);
        float r18595 = log1p(r18594);
        float r18596 = pow(r18595, r18570);
        float r18597 = r18571 - r18596;
        float r18598 = r18569 * r18569;
        float r18599 = r18595 * r18595;
        float r18600 = r18569 * r18595;
        float r18601 = r18599 + r18600;
        float r18602 = r18598 + r18601;
        float r18603 = r18597 / r18602;
        float r18604 = r18589 * r18589;
        float r18605 = exp(r18576);
        float r18606 = -r18576;
        float r18607 = pow(r18605, r18606);
        float r18608 = r18607 * r18607;
        float r18609 = fma(r18607, r18589, r18569);
        float r18610 = fma(r18604, r18608, r18609);
        float r18611 = r18603 / r18610;
        return r18611;
}

double f_od(double x) {
        double r18612 = 1.0;
        double r18613 = 3.0;
        double r18614 = pow(r18612, r18613);
        double r18615 = -1.453152027;
        double r18616 = 1.061405429;
        double r18617 = 0.3275911;
        double r18618 = x;
        double r18619 = fabs(r18618);
        double r18620 = fma(r18617, r18619, r18612);
        double r18621 = r18616 / r18620;
        double r18622 = r18615 + r18621;
        double r18623 = r18620 * r18620;
        double r18624 = r18612 / r18623;
        double r18625 = 1.421413741;
        double r18626 = r18625 / r18620;
        double r18627 = -0.284496736;
        double r18628 = r18626 + r18627;
        double r18629 = fma(r18622, r18624, r18628);
        double r18630 = 0.254829592;
        double r18631 = r18630 / r18620;
        double r18632 = fma(r18629, r18624, r18631);
        double r18633 = r18619 * r18619;
        double r18634 = exp(r18633);
        double r18635 = r18632 / r18634;
        double r18636 = r18635 * (r18635 * r18635);
        double r18637 = expm1(r18636);
        double r18638 = log1p(r18637);
        double r18639 = pow(r18638, r18613);
        double r18640 = r18614 - r18639;
        double r18641 = r18612 * r18612;
        double r18642 = r18638 * r18638;
        double r18643 = r18612 * r18638;
        double r18644 = r18642 + r18643;
        double r18645 = r18641 + r18644;
        double r18646 = r18640 / r18645;
        double r18647 = r18632 * r18632;
        double r18648 = exp(r18619);
        double r18649 = -r18619;
        double r18650 = pow(r18648, r18649);
        double r18651 = r18650 * r18650;
        double r18652 = fma(r18650, r18632, r18612);
        double r18653 = fma(r18647, r18651, r18652);
        double r18654 = r18646 / r18653;
        return r18654;
}

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 r18655, r18656, r18657, r18658, r18659, r18660, r18661, r18662, r18663, r18664, r18665, r18666, r18667, r18668, r18669, r18670, r18671, r18672, r18673, r18674, r18675, r18676, r18677, r18678, r18679, r18680;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18655, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18656, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18657);
        mpfr_init(r18658);
        mpfr_init(r18659);
        mpfr_init(r18660);
        mpfr_init(r18661);
        mpfr_init_set_str(r18662, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18663, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18664, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18665, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r18666, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18667);
        mpfr_init(r18668);
        mpfr_init(r18669);
        mpfr_init(r18670);
        mpfr_init(r18671);
        mpfr_init(r18672);
        mpfr_init(r18673);
        mpfr_init(r18674);
        mpfr_init(r18675);
        mpfr_init(r18676);
        mpfr_init(r18677);
        mpfr_init(r18678);
        mpfr_init(r18679);
        mpfr_init(r18680);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r18657, x, MPFR_RNDN);
        mpfr_abs(r18658, r18657, MPFR_RNDN);
        mpfr_mul(r18659, r18656, r18658, MPFR_RNDN);
        mpfr_add(r18660, r18655, r18659, MPFR_RNDN);
        mpfr_div(r18661, r18655, r18660, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r18667, r18661, r18666, MPFR_RNDN);
        mpfr_add(r18668, r18665, r18667, MPFR_RNDN);
        mpfr_mul(r18669, r18661, r18668, MPFR_RNDN);
        mpfr_add(r18670, r18664, r18669, MPFR_RNDN);
        mpfr_mul(r18671, r18661, r18670, MPFR_RNDN);
        mpfr_add(r18672, r18663, r18671, MPFR_RNDN);
        mpfr_mul(r18673, r18661, r18672, MPFR_RNDN);
        mpfr_add(r18674, r18662, r18673, MPFR_RNDN);
        mpfr_mul(r18675, r18661, r18674, MPFR_RNDN);
        mpfr_mul(r18676, r18658, r18658, MPFR_RNDN);
        mpfr_neg(r18677, r18676, MPFR_RNDN);
        mpfr_exp(r18678, r18677, MPFR_RNDN);
        mpfr_mul(r18679, r18675, r18678, MPFR_RNDN);
        mpfr_sub(r18680, r18655, r18679, MPFR_RNDN);
        return mpfr_get_d(r18680, MPFR_RNDN);
}

static mpfr_t r18681, r18682, r18683, r18684, r18685, r18686, r18687, r18688, r18689, r18690, r18691, r18692, r18693, r18694, r18695, r18696, r18697, r18698, r18699, r18700, r18701, r18702, r18703, r18704, r18705, r18706, r18707, r18708, r18709, r18710, r18711, r18712, r18713, r18714, r18715, r18716, r18717, r18718, r18719, r18720, r18721, r18722, r18723;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18681, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18682, "3", 10, MPFR_RNDN);
        mpfr_init(r18683);
        mpfr_init_set_str(r18684, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r18685, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r18686, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18687);
        mpfr_init(r18688);
        mpfr_init(r18689);
        mpfr_init(r18690);
        mpfr_init(r18691);
        mpfr_init(r18692);
        mpfr_init(r18693);
        mpfr_init_set_str(r18694, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r18695);
        mpfr_init_set_str(r18696, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r18697);
        mpfr_init(r18698);
        mpfr_init_set_str(r18699, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r18700);
        mpfr_init(r18701);
        mpfr_init(r18702);
        mpfr_init(r18703);
        mpfr_init(r18704);
        mpfr_init(r18705);
        mpfr_init(r18706);
        mpfr_init(r18707);
        mpfr_init(r18708);
        mpfr_init(r18709);
        mpfr_init(r18710);
        mpfr_init(r18711);
        mpfr_init(r18712);
        mpfr_init(r18713);
        mpfr_init(r18714);
        mpfr_init(r18715);
        mpfr_init(r18716);
        mpfr_init(r18717);
        mpfr_init(r18718);
        mpfr_init(r18719);
        mpfr_init(r18720);
        mpfr_init(r18721);
        mpfr_init(r18722);
        mpfr_init(r18723);
}

double f_fm(double x) {
        ;
        ;
        mpfr_pow(r18683, r18681, r18682, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_set_d(r18687, x, MPFR_RNDN);
        mpfr_abs(r18688, r18687, MPFR_RNDN);
        mpfr_fma(r18689, r18686, r18688, r18681, MPFR_RNDN);
        mpfr_div(r18690, r18685, r18689, MPFR_RNDN);
        mpfr_add(r18691, r18684, r18690, MPFR_RNDN);
        mpfr_sqr(r18692, r18689, MPFR_RNDN);
        mpfr_div(r18693, r18681, r18692, MPFR_RNDN);
        ;
        mpfr_div(r18695, r18694, r18689, MPFR_RNDN);
        ;
        mpfr_add(r18697, r18695, r18696, MPFR_RNDN);
        mpfr_fma(r18698, r18691, r18693, r18697, MPFR_RNDN);
        ;
        mpfr_div(r18700, r18699, r18689, MPFR_RNDN);
        mpfr_fma(r18701, r18698, r18693, r18700, MPFR_RNDN);
        mpfr_mul(r18702, r18688, r18688, MPFR_RNDN);
        mpfr_exp(r18703, r18702, MPFR_RNDN);
        mpfr_div(r18704, r18701, r18703, MPFR_RNDN);
        mpfr_mul(r18705, r18704, r18704, MPFR_RNDN); mpfr_mul(r18705, r18705, r18704, MPFR_RNDN);
        mpfr_expm1(r18706, r18705, MPFR_RNDN);
        mpfr_log1p(r18707, r18706, MPFR_RNDN);
        mpfr_pow(r18708, r18707, r18682, MPFR_RNDN);
        mpfr_sub(r18709, r18683, r18708, MPFR_RNDN);
        mpfr_sqr(r18710, r18681, MPFR_RNDN);
        mpfr_sqr(r18711, r18707, MPFR_RNDN);
        mpfr_mul(r18712, r18681, r18707, MPFR_RNDN);
        mpfr_add(r18713, r18711, r18712, MPFR_RNDN);
        mpfr_add(r18714, r18710, r18713, MPFR_RNDN);
        mpfr_div(r18715, r18709, r18714, MPFR_RNDN);
        mpfr_sqr(r18716, r18701, MPFR_RNDN);
        mpfr_exp(r18717, r18688, MPFR_RNDN);
        mpfr_neg(r18718, r18688, MPFR_RNDN);
        mpfr_pow(r18719, r18717, r18718, MPFR_RNDN);
        mpfr_sqr(r18720, r18719, MPFR_RNDN);
        mpfr_fma(r18721, r18719, r18701, r18681, MPFR_RNDN);
        mpfr_fma(r18722, r18716, r18720, r18721, MPFR_RNDN);
        mpfr_div(r18723, r18715, r18722, MPFR_RNDN);
        return mpfr_get_d(r18723, MPFR_RNDN);
}

static mpfr_t r18724, r18725, r18726, r18727, r18728, r18729, r18730, r18731, r18732, r18733, r18734, r18735, r18736, r18737, r18738, r18739, r18740, r18741, r18742, r18743, r18744, r18745, r18746, r18747, r18748, r18749, r18750, r18751, r18752, r18753, r18754, r18755, r18756, r18757, r18758, r18759, r18760, r18761, r18762, r18763, r18764, r18765, r18766;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18724, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18725, "3", 10, MPFR_RNDN);
        mpfr_init(r18726);
        mpfr_init_set_str(r18727, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r18728, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r18729, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18730);
        mpfr_init(r18731);
        mpfr_init(r18732);
        mpfr_init(r18733);
        mpfr_init(r18734);
        mpfr_init(r18735);
        mpfr_init(r18736);
        mpfr_init_set_str(r18737, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r18738);
        mpfr_init_set_str(r18739, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r18740);
        mpfr_init(r18741);
        mpfr_init_set_str(r18742, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r18743);
        mpfr_init(r18744);
        mpfr_init(r18745);
        mpfr_init(r18746);
        mpfr_init(r18747);
        mpfr_init(r18748);
        mpfr_init(r18749);
        mpfr_init(r18750);
        mpfr_init(r18751);
        mpfr_init(r18752);
        mpfr_init(r18753);
        mpfr_init(r18754);
        mpfr_init(r18755);
        mpfr_init(r18756);
        mpfr_init(r18757);
        mpfr_init(r18758);
        mpfr_init(r18759);
        mpfr_init(r18760);
        mpfr_init(r18761);
        mpfr_init(r18762);
        mpfr_init(r18763);
        mpfr_init(r18764);
        mpfr_init(r18765);
        mpfr_init(r18766);
}

double f_dm(double x) {
        ;
        ;
        mpfr_pow(r18726, r18724, r18725, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_set_d(r18730, x, MPFR_RNDN);
        mpfr_abs(r18731, r18730, MPFR_RNDN);
        mpfr_fma(r18732, r18729, r18731, r18724, MPFR_RNDN);
        mpfr_div(r18733, r18728, r18732, MPFR_RNDN);
        mpfr_add(r18734, r18727, r18733, MPFR_RNDN);
        mpfr_sqr(r18735, r18732, MPFR_RNDN);
        mpfr_div(r18736, r18724, r18735, MPFR_RNDN);
        ;
        mpfr_div(r18738, r18737, r18732, MPFR_RNDN);
        ;
        mpfr_add(r18740, r18738, r18739, MPFR_RNDN);
        mpfr_fma(r18741, r18734, r18736, r18740, MPFR_RNDN);
        ;
        mpfr_div(r18743, r18742, r18732, MPFR_RNDN);
        mpfr_fma(r18744, r18741, r18736, r18743, MPFR_RNDN);
        mpfr_mul(r18745, r18731, r18731, MPFR_RNDN);
        mpfr_exp(r18746, r18745, MPFR_RNDN);
        mpfr_div(r18747, r18744, r18746, MPFR_RNDN);
        mpfr_mul(r18748, r18747, r18747, MPFR_RNDN); mpfr_mul(r18748, r18748, r18747, MPFR_RNDN);
        mpfr_expm1(r18749, r18748, MPFR_RNDN);
        mpfr_log1p(r18750, r18749, MPFR_RNDN);
        mpfr_pow(r18751, r18750, r18725, MPFR_RNDN);
        mpfr_sub(r18752, r18726, r18751, MPFR_RNDN);
        mpfr_sqr(r18753, r18724, MPFR_RNDN);
        mpfr_sqr(r18754, r18750, MPFR_RNDN);
        mpfr_mul(r18755, r18724, r18750, MPFR_RNDN);
        mpfr_add(r18756, r18754, r18755, MPFR_RNDN);
        mpfr_add(r18757, r18753, r18756, MPFR_RNDN);
        mpfr_div(r18758, r18752, r18757, MPFR_RNDN);
        mpfr_sqr(r18759, r18744, MPFR_RNDN);
        mpfr_exp(r18760, r18731, MPFR_RNDN);
        mpfr_neg(r18761, r18731, MPFR_RNDN);
        mpfr_pow(r18762, r18760, r18761, MPFR_RNDN);
        mpfr_sqr(r18763, r18762, MPFR_RNDN);
        mpfr_fma(r18764, r18762, r18744, r18724, MPFR_RNDN);
        mpfr_fma(r18765, r18759, r18763, r18764, MPFR_RNDN);
        mpfr_div(r18766, r18758, r18765, MPFR_RNDN);
        return mpfr_get_d(r18766, MPFR_RNDN);
}

