#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 r27537 = 1;
        float r27538 = 0.3275911;
        float r27539 = x;
        float r27540 = fabs(r27539);
        float r27541 = r27538 * r27540;
        float r27542 = r27537 + r27541;
        float r27543 = r27537 / r27542;
        float r27544 = 0.254829592;
        float r27545 = -0.284496736;
        float r27546 = 1.421413741;
        float r27547 = -1.453152027;
        float r27548 = 1.061405429;
        float r27549 = r27543 * r27548;
        float r27550 = r27547 + r27549;
        float r27551 = r27543 * r27550;
        float r27552 = r27546 + r27551;
        float r27553 = r27543 * r27552;
        float r27554 = r27545 + r27553;
        float r27555 = r27543 * r27554;
        float r27556 = r27544 + r27555;
        float r27557 = r27543 * r27556;
        float r27558 = r27540 * r27540;
        float r27559 = -r27558;
        float r27560 = exp(r27559);
        float r27561 = r27557 * r27560;
        float r27562 = r27537 - r27561;
        return r27562;
}

double f_id(double x) {
        double r27563 = 1;
        double r27564 = 0.3275911;
        double r27565 = x;
        double r27566 = fabs(r27565);
        double r27567 = r27564 * r27566;
        double r27568 = r27563 + r27567;
        double r27569 = r27563 / r27568;
        double r27570 = 0.254829592;
        double r27571 = -0.284496736;
        double r27572 = 1.421413741;
        double r27573 = -1.453152027;
        double r27574 = 1.061405429;
        double r27575 = r27569 * r27574;
        double r27576 = r27573 + r27575;
        double r27577 = r27569 * r27576;
        double r27578 = r27572 + r27577;
        double r27579 = r27569 * r27578;
        double r27580 = r27571 + r27579;
        double r27581 = r27569 * r27580;
        double r27582 = r27570 + r27581;
        double r27583 = r27569 * r27582;
        double r27584 = r27566 * r27566;
        double r27585 = -r27584;
        double r27586 = exp(r27585);
        double r27587 = r27583 * r27586;
        double r27588 = r27563 - r27587;
        return r27588;
}


double f_of(float x) {
        float r27589 = 1;
        float r27590 = 0.3275911;
        float r27591 = x;
        float r27592 = fabs(r27591);
        float r27593 = r27590 * r27592;
        float r27594 = r27589 + r27593;
        float r27595 = r27589 / r27594;
        float r27596 = 0.254829592;
        float r27597 = 3;
        float r27598 = pow(r27596, r27597);
        float r27599 = -0.284496736;
        float r27600 = 1.421413741;
        float r27601 = -1.453152027;
        float r27602 = 1.061405429;
        float r27603 = r27595 * r27602;
        float r27604 = r27601 + r27603;
        float r27605 = r27595 * r27604;
        float r27606 = r27600 + r27605;
        float r27607 = r27595 * r27606;
        float r27608 = r27599 + r27607;
        float r27609 = r27595 * r27608;
        float r27610 = pow(r27609, r27597);
        float r27611 = r27598 + r27610;
        float r27612 = fma(r27590, r27592, r27589);
        float r27613 = r27589 / r27612;
        float r27614 = r27602 / r27612;
        float r27615 = r27601 + r27614;
        float r27616 = fma(r27615, r27613, r27600);
        float r27617 = fma(r27613, r27616, r27599);
        float r27618 = r27613 * r27613;
        float r27619 = -r27596;
        float r27620 = r27619 / r27612;
        float r27621 = fma(r27617, r27618, r27620);
        float r27622 = r27596 * r27596;
        float r27623 = fma(r27617, r27621, r27622);
        float r27624 = r27611 / r27623;
        float r27625 = r27595 * r27624;
        float r27626 = r27592 * r27592;
        float r27627 = -r27626;
        float r27628 = exp(r27627);
        float r27629 = r27625 * r27628;
        float r27630 = r27589 - r27629;
        float r27631 = cbrt(r27630);
        float r27632 = r27631 * r27631;
        float r27633 = r27632 * r27631;
        return r27633;
}

double f_od(double x) {
        double r27634 = 1;
        double r27635 = 0.3275911;
        double r27636 = x;
        double r27637 = fabs(r27636);
        double r27638 = r27635 * r27637;
        double r27639 = r27634 + r27638;
        double r27640 = r27634 / r27639;
        double r27641 = 0.254829592;
        double r27642 = 3;
        double r27643 = pow(r27641, r27642);
        double r27644 = -0.284496736;
        double r27645 = 1.421413741;
        double r27646 = -1.453152027;
        double r27647 = 1.061405429;
        double r27648 = r27640 * r27647;
        double r27649 = r27646 + r27648;
        double r27650 = r27640 * r27649;
        double r27651 = r27645 + r27650;
        double r27652 = r27640 * r27651;
        double r27653 = r27644 + r27652;
        double r27654 = r27640 * r27653;
        double r27655 = pow(r27654, r27642);
        double r27656 = r27643 + r27655;
        double r27657 = fma(r27635, r27637, r27634);
        double r27658 = r27634 / r27657;
        double r27659 = r27647 / r27657;
        double r27660 = r27646 + r27659;
        double r27661 = fma(r27660, r27658, r27645);
        double r27662 = fma(r27658, r27661, r27644);
        double r27663 = r27658 * r27658;
        double r27664 = -r27641;
        double r27665 = r27664 / r27657;
        double r27666 = fma(r27662, r27663, r27665);
        double r27667 = r27641 * r27641;
        double r27668 = fma(r27662, r27666, r27667);
        double r27669 = r27656 / r27668;
        double r27670 = r27640 * r27669;
        double r27671 = r27637 * r27637;
        double r27672 = -r27671;
        double r27673 = exp(r27672);
        double r27674 = r27670 * r27673;
        double r27675 = r27634 - r27674;
        double r27676 = cbrt(r27675);
        double r27677 = r27676 * r27676;
        double r27678 = r27677 * r27676;
        return r27678;
}

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 r27679, r27680, r27681, r27682, r27683, r27684, r27685, r27686, r27687, r27688, r27689, r27690, r27691, r27692, r27693, r27694, r27695, r27696, r27697, r27698, r27699, r27700, r27701, r27702, r27703, r27704;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27679, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27680, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27681);
        mpfr_init(r27682);
        mpfr_init(r27683);
        mpfr_init(r27684);
        mpfr_init(r27685);
        mpfr_init_set_str(r27686, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r27687, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27688, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r27689, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27690, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r27691);
        mpfr_init(r27692);
        mpfr_init(r27693);
        mpfr_init(r27694);
        mpfr_init(r27695);
        mpfr_init(r27696);
        mpfr_init(r27697);
        mpfr_init(r27698);
        mpfr_init(r27699);
        mpfr_init(r27700);
        mpfr_init(r27701);
        mpfr_init(r27702);
        mpfr_init(r27703);
        mpfr_init(r27704);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r27681, x, MPFR_RNDN);
        mpfr_abs(r27682, r27681, MPFR_RNDN);
        mpfr_mul(r27683, r27680, r27682, MPFR_RNDN);
        mpfr_add(r27684, r27679, r27683, MPFR_RNDN);
        mpfr_div(r27685, r27679, r27684, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r27691, r27685, r27690, MPFR_RNDN);
        mpfr_add(r27692, r27689, r27691, MPFR_RNDN);
        mpfr_mul(r27693, r27685, r27692, MPFR_RNDN);
        mpfr_add(r27694, r27688, r27693, MPFR_RNDN);
        mpfr_mul(r27695, r27685, r27694, MPFR_RNDN);
        mpfr_add(r27696, r27687, r27695, MPFR_RNDN);
        mpfr_mul(r27697, r27685, r27696, MPFR_RNDN);
        mpfr_add(r27698, r27686, r27697, MPFR_RNDN);
        mpfr_mul(r27699, r27685, r27698, MPFR_RNDN);
        mpfr_mul(r27700, r27682, r27682, MPFR_RNDN);
        mpfr_neg(r27701, r27700, MPFR_RNDN);
        mpfr_exp(r27702, r27701, MPFR_RNDN);
        mpfr_mul(r27703, r27699, r27702, MPFR_RNDN);
        mpfr_sub(r27704, r27679, r27703, MPFR_RNDN);
        return mpfr_get_d(r27704, MPFR_RNDN);
}

static mpfr_t r27705, r27706, r27707, r27708, r27709, r27710, r27711, r27712, r27713, r27714, r27715, r27716, r27717, r27718, r27719, r27720, r27721, r27722, r27723, r27724, r27725, r27726, r27727, r27728, r27729, r27730, r27731, r27732, r27733, r27734, r27735, r27736, r27737, r27738, r27739, r27740, r27741, r27742, r27743, r27744, r27745, r27746, r27747, r27748, r27749;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27705, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27706, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27707);
        mpfr_init(r27708);
        mpfr_init(r27709);
        mpfr_init(r27710);
        mpfr_init(r27711);
        mpfr_init_set_str(r27712, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r27713, "3", 10, MPFR_RNDN);
        mpfr_init(r27714);
        mpfr_init_set_str(r27715, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27716, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r27717, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27718, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r27719);
        mpfr_init(r27720);
        mpfr_init(r27721);
        mpfr_init(r27722);
        mpfr_init(r27723);
        mpfr_init(r27724);
        mpfr_init(r27725);
        mpfr_init(r27726);
        mpfr_init(r27727);
        mpfr_init(r27728);
        mpfr_init(r27729);
        mpfr_init(r27730);
        mpfr_init(r27731);
        mpfr_init(r27732);
        mpfr_init(r27733);
        mpfr_init(r27734);
        mpfr_init(r27735);
        mpfr_init(r27736);
        mpfr_init(r27737);
        mpfr_init(r27738);
        mpfr_init(r27739);
        mpfr_init(r27740);
        mpfr_init(r27741);
        mpfr_init(r27742);
        mpfr_init(r27743);
        mpfr_init(r27744);
        mpfr_init(r27745);
        mpfr_init(r27746);
        mpfr_init(r27747);
        mpfr_init(r27748);
        mpfr_init(r27749);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r27707, x, MPFR_RNDN);
        mpfr_abs(r27708, r27707, MPFR_RNDN);
        mpfr_mul(r27709, r27706, r27708, MPFR_RNDN);
        mpfr_add(r27710, r27705, r27709, MPFR_RNDN);
        mpfr_div(r27711, r27705, r27710, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r27714, r27712, r27713, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_mul(r27719, r27711, r27718, MPFR_RNDN);
        mpfr_add(r27720, r27717, r27719, MPFR_RNDN);
        mpfr_mul(r27721, r27711, r27720, MPFR_RNDN);
        mpfr_add(r27722, r27716, r27721, MPFR_RNDN);
        mpfr_mul(r27723, r27711, r27722, MPFR_RNDN);
        mpfr_add(r27724, r27715, r27723, MPFR_RNDN);
        mpfr_mul(r27725, r27711, r27724, MPFR_RNDN);
        mpfr_pow(r27726, r27725, r27713, MPFR_RNDN);
        mpfr_add(r27727, r27714, r27726, MPFR_RNDN);
        mpfr_fma(r27728, r27706, r27708, r27705, MPFR_RNDN);
        mpfr_div(r27729, r27705, r27728, MPFR_RNDN);
        mpfr_div(r27730, r27718, r27728, MPFR_RNDN);
        mpfr_add(r27731, r27717, r27730, MPFR_RNDN);
        mpfr_fma(r27732, r27731, r27729, r27716, MPFR_RNDN);
        mpfr_fma(r27733, r27729, r27732, r27715, MPFR_RNDN);
        mpfr_mul(r27734, r27729, r27729, MPFR_RNDN);
        mpfr_neg(r27735, r27712, MPFR_RNDN);
        mpfr_div(r27736, r27735, r27728, MPFR_RNDN);
        mpfr_fma(r27737, r27733, r27734, r27736, MPFR_RNDN);
        mpfr_mul(r27738, r27712, r27712, MPFR_RNDN);
        mpfr_fma(r27739, r27733, r27737, r27738, MPFR_RNDN);
        mpfr_div(r27740, r27727, r27739, MPFR_RNDN);
        mpfr_mul(r27741, r27711, r27740, MPFR_RNDN);
        mpfr_mul(r27742, r27708, r27708, MPFR_RNDN);
        mpfr_neg(r27743, r27742, MPFR_RNDN);
        mpfr_exp(r27744, r27743, MPFR_RNDN);
        mpfr_mul(r27745, r27741, r27744, MPFR_RNDN);
        mpfr_sub(r27746, r27705, r27745, MPFR_RNDN);
        mpfr_cbrt(r27747, r27746, MPFR_RNDN);
        mpfr_mul(r27748, r27747, r27747, MPFR_RNDN);
        mpfr_mul(r27749, r27748, r27747, MPFR_RNDN);
        return mpfr_get_d(r27749, MPFR_RNDN);
}

static mpfr_t r27750, r27751, r27752, r27753, r27754, r27755, r27756, r27757, r27758, r27759, r27760, r27761, r27762, r27763, r27764, r27765, r27766, r27767, r27768, r27769, r27770, r27771, r27772, r27773, r27774, r27775, r27776, r27777, r27778, r27779, r27780, r27781, r27782, r27783, r27784, r27785, r27786, r27787, r27788, r27789, r27790, r27791, r27792, r27793, r27794;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27750, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27751, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27752);
        mpfr_init(r27753);
        mpfr_init(r27754);
        mpfr_init(r27755);
        mpfr_init(r27756);
        mpfr_init_set_str(r27757, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r27758, "3", 10, MPFR_RNDN);
        mpfr_init(r27759);
        mpfr_init_set_str(r27760, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27761, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r27762, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27763, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r27764);
        mpfr_init(r27765);
        mpfr_init(r27766);
        mpfr_init(r27767);
        mpfr_init(r27768);
        mpfr_init(r27769);
        mpfr_init(r27770);
        mpfr_init(r27771);
        mpfr_init(r27772);
        mpfr_init(r27773);
        mpfr_init(r27774);
        mpfr_init(r27775);
        mpfr_init(r27776);
        mpfr_init(r27777);
        mpfr_init(r27778);
        mpfr_init(r27779);
        mpfr_init(r27780);
        mpfr_init(r27781);
        mpfr_init(r27782);
        mpfr_init(r27783);
        mpfr_init(r27784);
        mpfr_init(r27785);
        mpfr_init(r27786);
        mpfr_init(r27787);
        mpfr_init(r27788);
        mpfr_init(r27789);
        mpfr_init(r27790);
        mpfr_init(r27791);
        mpfr_init(r27792);
        mpfr_init(r27793);
        mpfr_init(r27794);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r27752, x, MPFR_RNDN);
        mpfr_abs(r27753, r27752, MPFR_RNDN);
        mpfr_mul(r27754, r27751, r27753, MPFR_RNDN);
        mpfr_add(r27755, r27750, r27754, MPFR_RNDN);
        mpfr_div(r27756, r27750, r27755, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r27759, r27757, r27758, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_mul(r27764, r27756, r27763, MPFR_RNDN);
        mpfr_add(r27765, r27762, r27764, MPFR_RNDN);
        mpfr_mul(r27766, r27756, r27765, MPFR_RNDN);
        mpfr_add(r27767, r27761, r27766, MPFR_RNDN);
        mpfr_mul(r27768, r27756, r27767, MPFR_RNDN);
        mpfr_add(r27769, r27760, r27768, MPFR_RNDN);
        mpfr_mul(r27770, r27756, r27769, MPFR_RNDN);
        mpfr_pow(r27771, r27770, r27758, MPFR_RNDN);
        mpfr_add(r27772, r27759, r27771, MPFR_RNDN);
        mpfr_fma(r27773, r27751, r27753, r27750, MPFR_RNDN);
        mpfr_div(r27774, r27750, r27773, MPFR_RNDN);
        mpfr_div(r27775, r27763, r27773, MPFR_RNDN);
        mpfr_add(r27776, r27762, r27775, MPFR_RNDN);
        mpfr_fma(r27777, r27776, r27774, r27761, MPFR_RNDN);
        mpfr_fma(r27778, r27774, r27777, r27760, MPFR_RNDN);
        mpfr_mul(r27779, r27774, r27774, MPFR_RNDN);
        mpfr_neg(r27780, r27757, MPFR_RNDN);
        mpfr_div(r27781, r27780, r27773, MPFR_RNDN);
        mpfr_fma(r27782, r27778, r27779, r27781, MPFR_RNDN);
        mpfr_mul(r27783, r27757, r27757, MPFR_RNDN);
        mpfr_fma(r27784, r27778, r27782, r27783, MPFR_RNDN);
        mpfr_div(r27785, r27772, r27784, MPFR_RNDN);
        mpfr_mul(r27786, r27756, r27785, MPFR_RNDN);
        mpfr_mul(r27787, r27753, r27753, MPFR_RNDN);
        mpfr_neg(r27788, r27787, MPFR_RNDN);
        mpfr_exp(r27789, r27788, MPFR_RNDN);
        mpfr_mul(r27790, r27786, r27789, MPFR_RNDN);
        mpfr_sub(r27791, r27750, r27790, MPFR_RNDN);
        mpfr_cbrt(r27792, r27791, MPFR_RNDN);
        mpfr_mul(r27793, r27792, r27792, MPFR_RNDN);
        mpfr_mul(r27794, r27793, r27792, MPFR_RNDN);
        return mpfr_get_d(r27794, MPFR_RNDN);
}

