#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 r25483 = 1;
        float r25484 = 0.3275911;
        float r25485 = x;
        float r25486 = fabs(r25485);
        float r25487 = r25484 * r25486;
        float r25488 = r25483 + r25487;
        float r25489 = r25483 / r25488;
        float r25490 = 0.254829592;
        float r25491 = -0.284496736;
        float r25492 = 1.421413741;
        float r25493 = -1.453152027;
        float r25494 = 1.061405429;
        float r25495 = r25489 * r25494;
        float r25496 = r25493 + r25495;
        float r25497 = r25489 * r25496;
        float r25498 = r25492 + r25497;
        float r25499 = r25489 * r25498;
        float r25500 = r25491 + r25499;
        float r25501 = r25489 * r25500;
        float r25502 = r25490 + r25501;
        float r25503 = r25489 * r25502;
        float r25504 = r25486 * r25486;
        float r25505 = -r25504;
        float r25506 = exp(r25505);
        float r25507 = r25503 * r25506;
        float r25508 = r25483 - r25507;
        return r25508;
}

double f_id(double x) {
        double r25509 = 1;
        double r25510 = 0.3275911;
        double r25511 = x;
        double r25512 = fabs(r25511);
        double r25513 = r25510 * r25512;
        double r25514 = r25509 + r25513;
        double r25515 = r25509 / r25514;
        double r25516 = 0.254829592;
        double r25517 = -0.284496736;
        double r25518 = 1.421413741;
        double r25519 = -1.453152027;
        double r25520 = 1.061405429;
        double r25521 = r25515 * r25520;
        double r25522 = r25519 + r25521;
        double r25523 = r25515 * r25522;
        double r25524 = r25518 + r25523;
        double r25525 = r25515 * r25524;
        double r25526 = r25517 + r25525;
        double r25527 = r25515 * r25526;
        double r25528 = r25516 + r25527;
        double r25529 = r25515 * r25528;
        double r25530 = r25512 * r25512;
        double r25531 = -r25530;
        double r25532 = exp(r25531);
        double r25533 = r25529 * r25532;
        double r25534 = r25509 - r25533;
        return r25534;
}


double f_of(float x) {
        float r25535 = 1;
        float r25536 = 0.3275911;
        float r25537 = x;
        float r25538 = fabs(r25537);
        float r25539 = r25536 * r25538;
        float r25540 = r25535 + r25539;
        float r25541 = r25535 / r25540;
        float r25542 = 0.254829592;
        float r25543 = 1.421413741;
        float r25544 = r25543 / r25540;
        float r25545 = -0.284496736;
        float r25546 = r25544 + r25545;
        float r25547 = 1.061405429;
        float r25548 = r25547 / r25540;
        float r25549 = -1.453152027;
        float r25550 = r25548 + r25549;
        float r25551 = r25541 * r25541;
        float r25552 = r25550 * r25551;
        float r25553 = r25546 + r25552;
        float r25554 = 3;
        float r25555 = pow(r25553, r25554);
        float r25556 = cbrt(r25555);
        float r25557 = r25541 * r25556;
        float r25558 = r25542 + r25557;
        float r25559 = r25541 * r25558;
        float r25560 = r25538 * r25538;
        float r25561 = -r25560;
        float r25562 = exp(r25561);
        float r25563 = r25559 * r25562;
        float r25564 = r25535 - r25563;
        float r25565 = cbrt(r25564);
        float r25566 = r25565 * r25565;
        float r25567 = r25538 * r25536;
        float r25568 = r25567 + r25535;
        float r25569 = r25568 * r25568;
        float r25570 = r25535 / r25569;
        float r25571 = r25547 / r25568;
        float r25572 = r25549 + r25571;
        float r25573 = r25570 * r25572;
        float r25574 = r25573 / r25568;
        float r25575 = r25543 / r25568;
        float r25576 = r25575 + r25545;
        float r25577 = r25576 / r25568;
        float r25578 = r25577 + r25542;
        float r25579 = r25574 + r25578;
        float r25580 = r25535 / r25568;
        float r25581 = exp(r25560);
        float r25582 = r25580 / r25581;
        float r25583 = r25579 * r25582;
        float r25584 = r25535 - r25583;
        float r25585 = cbrt(r25584);
        float r25586 = r25566 * r25585;
        float r25587 = cbrt(r25586);
        float r25588 = r25565 * r25587;
        float r25589 = r25588 * r25585;
        float r25590 = cbrt(r25589);
        float r25591 = r25565 * r25590;
        float r25592 = r25591 * r25585;
        return r25592;
}

double f_od(double x) {
        double r25593 = 1;
        double r25594 = 0.3275911;
        double r25595 = x;
        double r25596 = fabs(r25595);
        double r25597 = r25594 * r25596;
        double r25598 = r25593 + r25597;
        double r25599 = r25593 / r25598;
        double r25600 = 0.254829592;
        double r25601 = 1.421413741;
        double r25602 = r25601 / r25598;
        double r25603 = -0.284496736;
        double r25604 = r25602 + r25603;
        double r25605 = 1.061405429;
        double r25606 = r25605 / r25598;
        double r25607 = -1.453152027;
        double r25608 = r25606 + r25607;
        double r25609 = r25599 * r25599;
        double r25610 = r25608 * r25609;
        double r25611 = r25604 + r25610;
        double r25612 = 3;
        double r25613 = pow(r25611, r25612);
        double r25614 = cbrt(r25613);
        double r25615 = r25599 * r25614;
        double r25616 = r25600 + r25615;
        double r25617 = r25599 * r25616;
        double r25618 = r25596 * r25596;
        double r25619 = -r25618;
        double r25620 = exp(r25619);
        double r25621 = r25617 * r25620;
        double r25622 = r25593 - r25621;
        double r25623 = cbrt(r25622);
        double r25624 = r25623 * r25623;
        double r25625 = r25596 * r25594;
        double r25626 = r25625 + r25593;
        double r25627 = r25626 * r25626;
        double r25628 = r25593 / r25627;
        double r25629 = r25605 / r25626;
        double r25630 = r25607 + r25629;
        double r25631 = r25628 * r25630;
        double r25632 = r25631 / r25626;
        double r25633 = r25601 / r25626;
        double r25634 = r25633 + r25603;
        double r25635 = r25634 / r25626;
        double r25636 = r25635 + r25600;
        double r25637 = r25632 + r25636;
        double r25638 = r25593 / r25626;
        double r25639 = exp(r25618);
        double r25640 = r25638 / r25639;
        double r25641 = r25637 * r25640;
        double r25642 = r25593 - r25641;
        double r25643 = cbrt(r25642);
        double r25644 = r25624 * r25643;
        double r25645 = cbrt(r25644);
        double r25646 = r25623 * r25645;
        double r25647 = r25646 * r25643;
        double r25648 = cbrt(r25647);
        double r25649 = r25623 * r25648;
        double r25650 = r25649 * r25643;
        return r25650;
}

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 r25651, r25652, r25653, r25654, r25655, r25656, r25657, r25658, r25659, r25660, r25661, r25662, r25663, r25664, r25665, r25666, r25667, r25668, r25669, r25670, r25671, r25672, r25673, r25674, r25675, r25676;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r25651, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r25652, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r25653);
        mpfr_init(r25654);
        mpfr_init(r25655);
        mpfr_init(r25656);
        mpfr_init(r25657);
        mpfr_init_set_str(r25658, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r25659, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r25660, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r25661, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r25662, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r25663);
        mpfr_init(r25664);
        mpfr_init(r25665);
        mpfr_init(r25666);
        mpfr_init(r25667);
        mpfr_init(r25668);
        mpfr_init(r25669);
        mpfr_init(r25670);
        mpfr_init(r25671);
        mpfr_init(r25672);
        mpfr_init(r25673);
        mpfr_init(r25674);
        mpfr_init(r25675);
        mpfr_init(r25676);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r25653, x, MPFR_RNDN);
        mpfr_abs(r25654, r25653, MPFR_RNDN);
        mpfr_mul(r25655, r25652, r25654, MPFR_RNDN);
        mpfr_add(r25656, r25651, r25655, MPFR_RNDN);
        mpfr_div(r25657, r25651, r25656, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r25663, r25657, r25662, MPFR_RNDN);
        mpfr_add(r25664, r25661, r25663, MPFR_RNDN);
        mpfr_mul(r25665, r25657, r25664, MPFR_RNDN);
        mpfr_add(r25666, r25660, r25665, MPFR_RNDN);
        mpfr_mul(r25667, r25657, r25666, MPFR_RNDN);
        mpfr_add(r25668, r25659, r25667, MPFR_RNDN);
        mpfr_mul(r25669, r25657, r25668, MPFR_RNDN);
        mpfr_add(r25670, r25658, r25669, MPFR_RNDN);
        mpfr_mul(r25671, r25657, r25670, MPFR_RNDN);
        mpfr_mul(r25672, r25654, r25654, MPFR_RNDN);
        mpfr_neg(r25673, r25672, MPFR_RNDN);
        mpfr_exp(r25674, r25673, MPFR_RNDN);
        mpfr_mul(r25675, r25671, r25674, MPFR_RNDN);
        mpfr_sub(r25676, r25651, r25675, MPFR_RNDN);
        return mpfr_get_d(r25676, MPFR_RNDN);
}

static mpfr_t r25677, r25678, r25679, r25680, r25681, r25682, r25683, r25684, r25685, r25686, r25687, r25688, r25689, r25690, r25691, r25692, r25693, r25694, r25695, r25696, r25697, r25698, r25699, r25700, r25701, r25702, r25703, r25704, r25705, r25706, r25707, r25708, r25709, r25710, r25711, r25712, r25713, r25714, r25715, r25716, r25717, r25718, r25719, r25720, r25721, r25722, r25723, r25724, r25725, r25726, r25727, r25728, r25729, r25730, r25731, r25732, r25733, r25734;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r25677, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r25678, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r25679);
        mpfr_init(r25680);
        mpfr_init(r25681);
        mpfr_init(r25682);
        mpfr_init(r25683);
        mpfr_init_set_str(r25684, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r25685, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r25686);
        mpfr_init_set_str(r25687, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r25688);
        mpfr_init_set_str(r25689, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r25690);
        mpfr_init_set_str(r25691, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r25692);
        mpfr_init(r25693);
        mpfr_init(r25694);
        mpfr_init(r25695);
        mpfr_init_set_str(r25696, "3", 10, MPFR_RNDN);
        mpfr_init(r25697);
        mpfr_init(r25698);
        mpfr_init(r25699);
        mpfr_init(r25700);
        mpfr_init(r25701);
        mpfr_init(r25702);
        mpfr_init(r25703);
        mpfr_init(r25704);
        mpfr_init(r25705);
        mpfr_init(r25706);
        mpfr_init(r25707);
        mpfr_init(r25708);
        mpfr_init(r25709);
        mpfr_init(r25710);
        mpfr_init(r25711);
        mpfr_init(r25712);
        mpfr_init(r25713);
        mpfr_init(r25714);
        mpfr_init(r25715);
        mpfr_init(r25716);
        mpfr_init(r25717);
        mpfr_init(r25718);
        mpfr_init(r25719);
        mpfr_init(r25720);
        mpfr_init(r25721);
        mpfr_init(r25722);
        mpfr_init(r25723);
        mpfr_init(r25724);
        mpfr_init(r25725);
        mpfr_init(r25726);
        mpfr_init(r25727);
        mpfr_init(r25728);
        mpfr_init(r25729);
        mpfr_init(r25730);
        mpfr_init(r25731);
        mpfr_init(r25732);
        mpfr_init(r25733);
        mpfr_init(r25734);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r25679, x, MPFR_RNDN);
        mpfr_abs(r25680, r25679, MPFR_RNDN);
        mpfr_mul(r25681, r25678, r25680, MPFR_RNDN);
        mpfr_add(r25682, r25677, r25681, MPFR_RNDN);
        mpfr_div(r25683, r25677, r25682, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25686, r25685, r25682, MPFR_RNDN);
        ;
        mpfr_add(r25688, r25686, r25687, MPFR_RNDN);
        ;
        mpfr_div(r25690, r25689, r25682, MPFR_RNDN);
        ;
        mpfr_add(r25692, r25690, r25691, MPFR_RNDN);
        mpfr_mul(r25693, r25683, r25683, MPFR_RNDN);
        mpfr_mul(r25694, r25692, r25693, MPFR_RNDN);
        mpfr_add(r25695, r25688, r25694, MPFR_RNDN);
        ;
        mpfr_pow(r25697, r25695, r25696, MPFR_RNDN);
        mpfr_cbrt(r25698, r25697, MPFR_RNDN);
        mpfr_mul(r25699, r25683, r25698, MPFR_RNDN);
        mpfr_add(r25700, r25684, r25699, MPFR_RNDN);
        mpfr_mul(r25701, r25683, r25700, MPFR_RNDN);
        mpfr_mul(r25702, r25680, r25680, MPFR_RNDN);
        mpfr_neg(r25703, r25702, MPFR_RNDN);
        mpfr_exp(r25704, r25703, MPFR_RNDN);
        mpfr_mul(r25705, r25701, r25704, MPFR_RNDN);
        mpfr_sub(r25706, r25677, r25705, MPFR_RNDN);
        mpfr_cbrt(r25707, r25706, MPFR_RNDN);
        mpfr_mul(r25708, r25707, r25707, MPFR_RNDN);
        mpfr_mul(r25709, r25680, r25678, MPFR_RNDN);
        mpfr_add(r25710, r25709, r25677, MPFR_RNDN);
        mpfr_mul(r25711, r25710, r25710, MPFR_RNDN);
        mpfr_div(r25712, r25677, r25711, MPFR_RNDN);
        mpfr_div(r25713, r25689, r25710, MPFR_RNDN);
        mpfr_add(r25714, r25691, r25713, MPFR_RNDN);
        mpfr_mul(r25715, r25712, r25714, MPFR_RNDN);
        mpfr_div(r25716, r25715, r25710, MPFR_RNDN);
        mpfr_div(r25717, r25685, r25710, MPFR_RNDN);
        mpfr_add(r25718, r25717, r25687, MPFR_RNDN);
        mpfr_div(r25719, r25718, r25710, MPFR_RNDN);
        mpfr_add(r25720, r25719, r25684, MPFR_RNDN);
        mpfr_add(r25721, r25716, r25720, MPFR_RNDN);
        mpfr_div(r25722, r25677, r25710, MPFR_RNDN);
        mpfr_exp(r25723, r25702, MPFR_RNDN);
        mpfr_div(r25724, r25722, r25723, MPFR_RNDN);
        mpfr_mul(r25725, r25721, r25724, MPFR_RNDN);
        mpfr_sub(r25726, r25677, r25725, MPFR_RNDN);
        mpfr_cbrt(r25727, r25726, MPFR_RNDN);
        mpfr_mul(r25728, r25708, r25727, MPFR_RNDN);
        mpfr_cbrt(r25729, r25728, MPFR_RNDN);
        mpfr_mul(r25730, r25707, r25729, MPFR_RNDN);
        mpfr_mul(r25731, r25730, r25727, MPFR_RNDN);
        mpfr_cbrt(r25732, r25731, MPFR_RNDN);
        mpfr_mul(r25733, r25707, r25732, MPFR_RNDN);
        mpfr_mul(r25734, r25733, r25727, MPFR_RNDN);
        return mpfr_get_d(r25734, MPFR_RNDN);
}

static mpfr_t r25735, r25736, r25737, r25738, r25739, r25740, r25741, r25742, r25743, r25744, r25745, r25746, r25747, r25748, r25749, r25750, r25751, r25752, r25753, r25754, r25755, r25756, r25757, r25758, r25759, r25760, r25761, r25762, r25763, r25764, r25765, r25766, r25767, r25768, r25769, r25770, r25771, r25772, r25773, r25774, r25775, r25776, r25777, r25778, r25779, r25780, r25781, r25782, r25783, r25784, r25785, r25786, r25787, r25788, r25789, r25790, r25791, r25792;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r25735, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r25736, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r25737);
        mpfr_init(r25738);
        mpfr_init(r25739);
        mpfr_init(r25740);
        mpfr_init(r25741);
        mpfr_init_set_str(r25742, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r25743, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r25744);
        mpfr_init_set_str(r25745, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r25746);
        mpfr_init_set_str(r25747, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r25748);
        mpfr_init_set_str(r25749, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r25750);
        mpfr_init(r25751);
        mpfr_init(r25752);
        mpfr_init(r25753);
        mpfr_init_set_str(r25754, "3", 10, MPFR_RNDN);
        mpfr_init(r25755);
        mpfr_init(r25756);
        mpfr_init(r25757);
        mpfr_init(r25758);
        mpfr_init(r25759);
        mpfr_init(r25760);
        mpfr_init(r25761);
        mpfr_init(r25762);
        mpfr_init(r25763);
        mpfr_init(r25764);
        mpfr_init(r25765);
        mpfr_init(r25766);
        mpfr_init(r25767);
        mpfr_init(r25768);
        mpfr_init(r25769);
        mpfr_init(r25770);
        mpfr_init(r25771);
        mpfr_init(r25772);
        mpfr_init(r25773);
        mpfr_init(r25774);
        mpfr_init(r25775);
        mpfr_init(r25776);
        mpfr_init(r25777);
        mpfr_init(r25778);
        mpfr_init(r25779);
        mpfr_init(r25780);
        mpfr_init(r25781);
        mpfr_init(r25782);
        mpfr_init(r25783);
        mpfr_init(r25784);
        mpfr_init(r25785);
        mpfr_init(r25786);
        mpfr_init(r25787);
        mpfr_init(r25788);
        mpfr_init(r25789);
        mpfr_init(r25790);
        mpfr_init(r25791);
        mpfr_init(r25792);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r25737, x, MPFR_RNDN);
        mpfr_abs(r25738, r25737, MPFR_RNDN);
        mpfr_mul(r25739, r25736, r25738, MPFR_RNDN);
        mpfr_add(r25740, r25735, r25739, MPFR_RNDN);
        mpfr_div(r25741, r25735, r25740, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25744, r25743, r25740, MPFR_RNDN);
        ;
        mpfr_add(r25746, r25744, r25745, MPFR_RNDN);
        ;
        mpfr_div(r25748, r25747, r25740, MPFR_RNDN);
        ;
        mpfr_add(r25750, r25748, r25749, MPFR_RNDN);
        mpfr_mul(r25751, r25741, r25741, MPFR_RNDN);
        mpfr_mul(r25752, r25750, r25751, MPFR_RNDN);
        mpfr_add(r25753, r25746, r25752, MPFR_RNDN);
        ;
        mpfr_pow(r25755, r25753, r25754, MPFR_RNDN);
        mpfr_cbrt(r25756, r25755, MPFR_RNDN);
        mpfr_mul(r25757, r25741, r25756, MPFR_RNDN);
        mpfr_add(r25758, r25742, r25757, MPFR_RNDN);
        mpfr_mul(r25759, r25741, r25758, MPFR_RNDN);
        mpfr_mul(r25760, r25738, r25738, MPFR_RNDN);
        mpfr_neg(r25761, r25760, MPFR_RNDN);
        mpfr_exp(r25762, r25761, MPFR_RNDN);
        mpfr_mul(r25763, r25759, r25762, MPFR_RNDN);
        mpfr_sub(r25764, r25735, r25763, MPFR_RNDN);
        mpfr_cbrt(r25765, r25764, MPFR_RNDN);
        mpfr_mul(r25766, r25765, r25765, MPFR_RNDN);
        mpfr_mul(r25767, r25738, r25736, MPFR_RNDN);
        mpfr_add(r25768, r25767, r25735, MPFR_RNDN);
        mpfr_mul(r25769, r25768, r25768, MPFR_RNDN);
        mpfr_div(r25770, r25735, r25769, MPFR_RNDN);
        mpfr_div(r25771, r25747, r25768, MPFR_RNDN);
        mpfr_add(r25772, r25749, r25771, MPFR_RNDN);
        mpfr_mul(r25773, r25770, r25772, MPFR_RNDN);
        mpfr_div(r25774, r25773, r25768, MPFR_RNDN);
        mpfr_div(r25775, r25743, r25768, MPFR_RNDN);
        mpfr_add(r25776, r25775, r25745, MPFR_RNDN);
        mpfr_div(r25777, r25776, r25768, MPFR_RNDN);
        mpfr_add(r25778, r25777, r25742, MPFR_RNDN);
        mpfr_add(r25779, r25774, r25778, MPFR_RNDN);
        mpfr_div(r25780, r25735, r25768, MPFR_RNDN);
        mpfr_exp(r25781, r25760, MPFR_RNDN);
        mpfr_div(r25782, r25780, r25781, MPFR_RNDN);
        mpfr_mul(r25783, r25779, r25782, MPFR_RNDN);
        mpfr_sub(r25784, r25735, r25783, MPFR_RNDN);
        mpfr_cbrt(r25785, r25784, MPFR_RNDN);
        mpfr_mul(r25786, r25766, r25785, MPFR_RNDN);
        mpfr_cbrt(r25787, r25786, MPFR_RNDN);
        mpfr_mul(r25788, r25765, r25787, MPFR_RNDN);
        mpfr_mul(r25789, r25788, r25785, MPFR_RNDN);
        mpfr_cbrt(r25790, r25789, MPFR_RNDN);
        mpfr_mul(r25791, r25765, r25790, MPFR_RNDN);
        mpfr_mul(r25792, r25791, r25785, MPFR_RNDN);
        return mpfr_get_d(r25792, MPFR_RNDN);
}

