#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 r18497 = 1.0f;
        float r18498 = 0.3275911f;
        float r18499 = x;
        float r18500 = fabs(r18499);
        float r18501 = r18498 * r18500;
        float r18502 = r18497 + r18501;
        float r18503 = r18497 / r18502;
        float r18504 = 0.254829592f;
        float r18505 = -0.284496736f;
        float r18506 = 1.421413741f;
        float r18507 = -1.453152027f;
        float r18508 = 1.061405429f;
        float r18509 = r18503 * r18508;
        float r18510 = r18507 + r18509;
        float r18511 = r18503 * r18510;
        float r18512 = r18506 + r18511;
        float r18513 = r18503 * r18512;
        float r18514 = r18505 + r18513;
        float r18515 = r18503 * r18514;
        float r18516 = r18504 + r18515;
        float r18517 = r18503 * r18516;
        float r18518 = r18500 * r18500;
        float r18519 = -r18518;
        float r18520 = exp(r18519);
        float r18521 = r18517 * r18520;
        float r18522 = r18497 - r18521;
        return r18522;
}

double f_id(double x) {
        double r18523 = 1.0;
        double r18524 = 0.3275911;
        double r18525 = x;
        double r18526 = fabs(r18525);
        double r18527 = r18524 * r18526;
        double r18528 = r18523 + r18527;
        double r18529 = r18523 / r18528;
        double r18530 = 0.254829592;
        double r18531 = -0.284496736;
        double r18532 = 1.421413741;
        double r18533 = -1.453152027;
        double r18534 = 1.061405429;
        double r18535 = r18529 * r18534;
        double r18536 = r18533 + r18535;
        double r18537 = r18529 * r18536;
        double r18538 = r18532 + r18537;
        double r18539 = r18529 * r18538;
        double r18540 = r18531 + r18539;
        double r18541 = r18529 * r18540;
        double r18542 = r18530 + r18541;
        double r18543 = r18529 * r18542;
        double r18544 = r18526 * r18526;
        double r18545 = -r18544;
        double r18546 = exp(r18545);
        double r18547 = r18543 * r18546;
        double r18548 = r18523 - r18547;
        return r18548;
}


double f_of(float x) {
        float r18549 = 1.0f;
        float r18550 = 1.061405429f;
        float r18551 = 0.3275911f;
        float r18552 = x;
        float r18553 = fabs(r18552);
        float r18554 = fma(r18551, r18553, r18549);
        float r18555 = r18550 / r18554;
        float r18556 = -1.453152027f;
        float r18557 = r18555 + r18556;
        float r18558 = r18554 * r18554;
        float r18559 = r18549 / r18558;
        float r18560 = 1.421413741f;
        float r18561 = r18560 / r18554;
        float r18562 = -0.284496736f;
        float r18563 = r18561 + r18562;
        float r18564 = fma(r18557, r18559, r18563);
        float r18565 = 0.254829592f;
        float r18566 = r18565 / r18554;
        float r18567 = fma(r18564, r18559, r18566);
        float r18568 = r18553 * r18553;
        float r18569 = exp(r18568);
        float r18570 = r18567 / r18569;
        float r18571 = r18570 * (r18570 * r18570);
        float r18572 = r18549 - r18571;
        float r18573 = exp(r18572);
        float r18574 = log(r18573);
        float r18575 = r18556 + r18555;
        float r18576 = fma(r18575, r18559, r18563);
        float r18577 = fma(r18576, r18559, r18566);
        float r18578 = r18577 * r18577;
        float r18579 = exp(r18553);
        float r18580 = -r18553;
        float r18581 = pow(r18579, r18580);
        float r18582 = r18581 * r18581;
        float r18583 = fma(r18581, r18577, r18549);
        float r18584 = fma(r18578, r18582, r18583);
        float r18585 = r18574 / 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 = r18591 * r18591;
        double r18596 = r18586 / r18595;
        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 = r18590 * r18590;
        double r18606 = exp(r18605);
        double r18607 = r18604 / r18606;
        double r18608 = r18607 * (r18607 * r18607);
        double r18609 = r18586 - r18608;
        double r18610 = exp(r18609);
        double r18611 = log(r18610);
        double r18612 = r18593 + r18592;
        double r18613 = fma(r18612, r18596, r18600);
        double r18614 = fma(r18613, r18596, r18603);
        double r18615 = r18614 * r18614;
        double r18616 = exp(r18590);
        double r18617 = -r18590;
        double r18618 = pow(r18616, r18617);
        double r18619 = r18618 * r18618;
        double r18620 = fma(r18618, r18614, r18586);
        double r18621 = fma(r18615, r18619, r18620);
        double r18622 = r18611 / r18621;
        return r18622;
}

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 r18623, r18624, r18625, r18626, r18627, r18628, r18629, r18630, r18631, r18632, r18633, r18634, r18635, r18636, r18637, r18638, r18639, r18640, r18641, r18642, r18643, r18644, r18645, r18646, r18647, r18648;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18623, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18624, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18625);
        mpfr_init(r18626);
        mpfr_init(r18627);
        mpfr_init(r18628);
        mpfr_init(r18629);
        mpfr_init_set_str(r18630, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18631, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18632, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18633, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r18634, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18635);
        mpfr_init(r18636);
        mpfr_init(r18637);
        mpfr_init(r18638);
        mpfr_init(r18639);
        mpfr_init(r18640);
        mpfr_init(r18641);
        mpfr_init(r18642);
        mpfr_init(r18643);
        mpfr_init(r18644);
        mpfr_init(r18645);
        mpfr_init(r18646);
        mpfr_init(r18647);
        mpfr_init(r18648);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r18625, x, MPFR_RNDN);
        mpfr_abs(r18626, r18625, MPFR_RNDN);
        mpfr_mul(r18627, r18624, r18626, MPFR_RNDN);
        mpfr_add(r18628, r18623, r18627, MPFR_RNDN);
        mpfr_div(r18629, r18623, r18628, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r18635, r18629, r18634, MPFR_RNDN);
        mpfr_add(r18636, r18633, r18635, MPFR_RNDN);
        mpfr_mul(r18637, r18629, r18636, MPFR_RNDN);
        mpfr_add(r18638, r18632, r18637, MPFR_RNDN);
        mpfr_mul(r18639, r18629, r18638, MPFR_RNDN);
        mpfr_add(r18640, r18631, r18639, MPFR_RNDN);
        mpfr_mul(r18641, r18629, r18640, MPFR_RNDN);
        mpfr_add(r18642, r18630, r18641, MPFR_RNDN);
        mpfr_mul(r18643, r18629, r18642, MPFR_RNDN);
        mpfr_mul(r18644, r18626, r18626, MPFR_RNDN);
        mpfr_neg(r18645, r18644, MPFR_RNDN);
        mpfr_exp(r18646, r18645, MPFR_RNDN);
        mpfr_mul(r18647, r18643, r18646, MPFR_RNDN);
        mpfr_sub(r18648, r18623, r18647, MPFR_RNDN);
        return mpfr_get_d(r18648, MPFR_RNDN);
}

static mpfr_t r18649, r18650, r18651, r18652, r18653, r18654, 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, r18681, r18682, r18683, r18684, r18685;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18649, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18650, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r18651, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18652);
        mpfr_init(r18653);
        mpfr_init(r18654);
        mpfr_init(r18655);
        mpfr_init_set_str(r18656, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18657);
        mpfr_init(r18658);
        mpfr_init(r18659);
        mpfr_init_set_str(r18660, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r18661);
        mpfr_init_set_str(r18662, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r18663);
        mpfr_init(r18664);
        mpfr_init_set_str(r18665, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r18666);
        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);
        mpfr_init(r18681);
        mpfr_init(r18682);
        mpfr_init(r18683);
        mpfr_init(r18684);
        mpfr_init(r18685);
}

double f_fm(double x) {
        ;
        ;
        ;
        mpfr_set_d(r18652, x, MPFR_RNDN);
        mpfr_abs(r18653, r18652, MPFR_RNDN);
        mpfr_fma(r18654, r18651, r18653, r18649, MPFR_RNDN);
        mpfr_div(r18655, r18650, r18654, MPFR_RNDN);
        ;
        mpfr_add(r18657, r18655, r18656, MPFR_RNDN);
        mpfr_sqr(r18658, r18654, MPFR_RNDN);
        mpfr_div(r18659, r18649, r18658, MPFR_RNDN);
        ;
        mpfr_div(r18661, r18660, r18654, MPFR_RNDN);
        ;
        mpfr_add(r18663, r18661, r18662, MPFR_RNDN);
        mpfr_fma(r18664, r18657, r18659, r18663, MPFR_RNDN);
        ;
        mpfr_div(r18666, r18665, r18654, MPFR_RNDN);
        mpfr_fma(r18667, r18664, r18659, r18666, MPFR_RNDN);
        mpfr_mul(r18668, r18653, r18653, MPFR_RNDN);
        mpfr_exp(r18669, r18668, MPFR_RNDN);
        mpfr_div(r18670, r18667, r18669, MPFR_RNDN);
        mpfr_mul(r18671, r18670, r18670, MPFR_RNDN); mpfr_mul(r18671, r18671, r18670, MPFR_RNDN);
        mpfr_sub(r18672, r18649, r18671, MPFR_RNDN);
        mpfr_exp(r18673, r18672, MPFR_RNDN);
        mpfr_log(r18674, r18673, MPFR_RNDN);
        mpfr_add(r18675, r18656, r18655, MPFR_RNDN);
        mpfr_fma(r18676, r18675, r18659, r18663, MPFR_RNDN);
        mpfr_fma(r18677, r18676, r18659, r18666, MPFR_RNDN);
        mpfr_sqr(r18678, r18677, MPFR_RNDN);
        mpfr_exp(r18679, r18653, MPFR_RNDN);
        mpfr_neg(r18680, r18653, MPFR_RNDN);
        mpfr_pow(r18681, r18679, r18680, MPFR_RNDN);
        mpfr_sqr(r18682, r18681, MPFR_RNDN);
        mpfr_fma(r18683, r18681, r18677, r18649, MPFR_RNDN);
        mpfr_fma(r18684, r18678, r18682, r18683, MPFR_RNDN);
        mpfr_div(r18685, r18674, r18684, MPFR_RNDN);
        return mpfr_get_d(r18685, MPFR_RNDN);
}

static mpfr_t 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18686, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18687, "1.061405429", 10, MPFR_RNDN);
        mpfr_init_set_str(r18688, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18689);
        mpfr_init(r18690);
        mpfr_init(r18691);
        mpfr_init(r18692);
        mpfr_init_set_str(r18693, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18694);
        mpfr_init(r18695);
        mpfr_init(r18696);
        mpfr_init_set_str(r18697, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r18698);
        mpfr_init_set_str(r18699, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r18700);
        mpfr_init(r18701);
        mpfr_init_set_str(r18702, "0.254829592", 10, MPFR_RNDN);
        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);
}

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

