#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 r27584 = 1;
        float r27585 = 0.3275911;
        float r27586 = x;
        float r27587 = fabs(r27586);
        float r27588 = r27585 * r27587;
        float r27589 = r27584 + r27588;
        float r27590 = r27584 / r27589;
        float r27591 = 0.254829592;
        float r27592 = -0.284496736;
        float r27593 = 1.421413741;
        float r27594 = -1.453152027;
        float r27595 = 1.061405429;
        float r27596 = r27590 * r27595;
        float r27597 = r27594 + r27596;
        float r27598 = r27590 * r27597;
        float r27599 = r27593 + r27598;
        float r27600 = r27590 * r27599;
        float r27601 = r27592 + r27600;
        float r27602 = r27590 * r27601;
        float r27603 = r27591 + r27602;
        float r27604 = r27590 * r27603;
        float r27605 = r27587 * r27587;
        float r27606 = -r27605;
        float r27607 = exp(r27606);
        float r27608 = r27604 * r27607;
        float r27609 = r27584 - r27608;
        return r27609;
}

double f_id(double x) {
        double r27610 = 1;
        double r27611 = 0.3275911;
        double r27612 = x;
        double r27613 = fabs(r27612);
        double r27614 = r27611 * r27613;
        double r27615 = r27610 + r27614;
        double r27616 = r27610 / r27615;
        double r27617 = 0.254829592;
        double r27618 = -0.284496736;
        double r27619 = 1.421413741;
        double r27620 = -1.453152027;
        double r27621 = 1.061405429;
        double r27622 = r27616 * r27621;
        double r27623 = r27620 + r27622;
        double r27624 = r27616 * r27623;
        double r27625 = r27619 + r27624;
        double r27626 = r27616 * r27625;
        double r27627 = r27618 + r27626;
        double r27628 = r27616 * r27627;
        double r27629 = r27617 + r27628;
        double r27630 = r27616 * r27629;
        double r27631 = r27613 * r27613;
        double r27632 = -r27631;
        double r27633 = exp(r27632);
        double r27634 = r27630 * r27633;
        double r27635 = r27610 - r27634;
        return r27635;
}


double f_of(float x) {
        float r27636 = 1;
        float r27637 = 0.3275911;
        float r27638 = x;
        float r27639 = fabs(r27638);
        float r27640 = r27637 * r27639;
        float r27641 = r27636 + r27640;
        float r27642 = r27636 / r27641;
        float r27643 = 0.254829592;
        float r27644 = -0.284496736;
        float r27645 = 1.421413741;
        float r27646 = cbrt(r27642);
        float r27647 = r27646 * r27646;
        float r27648 = r27647 * r27646;
        float r27649 = -1.453152027;
        float r27650 = 1.061405429;
        float r27651 = r27642 * r27650;
        float r27652 = r27649 + r27651;
        float r27653 = r27648 * r27652;
        float r27654 = r27645 + r27653;
        float r27655 = r27642 * r27654;
        float r27656 = r27644 + r27655;
        float r27657 = r27642 * r27656;
        float r27658 = r27643 + r27657;
        float r27659 = r27642 * r27658;
        float r27660 = r27639 * r27639;
        float r27661 = -r27660;
        float r27662 = exp(r27661);
        float r27663 = r27659 * r27662;
        float r27664 = r27636 - r27663;
        return r27664;
}

double f_od(double x) {
        double r27665 = 1;
        double r27666 = 0.3275911;
        double r27667 = x;
        double r27668 = fabs(r27667);
        double r27669 = r27666 * r27668;
        double r27670 = r27665 + r27669;
        double r27671 = r27665 / r27670;
        double r27672 = 0.254829592;
        double r27673 = -0.284496736;
        double r27674 = 1.421413741;
        double r27675 = cbrt(r27671);
        double r27676 = r27675 * r27675;
        double r27677 = r27676 * r27675;
        double r27678 = -1.453152027;
        double r27679 = 1.061405429;
        double r27680 = r27671 * r27679;
        double r27681 = r27678 + r27680;
        double r27682 = r27677 * r27681;
        double r27683 = r27674 + r27682;
        double r27684 = r27671 * r27683;
        double r27685 = r27673 + r27684;
        double r27686 = r27671 * r27685;
        double r27687 = r27672 + r27686;
        double r27688 = r27671 * r27687;
        double r27689 = r27668 * r27668;
        double r27690 = -r27689;
        double r27691 = exp(r27690);
        double r27692 = r27688 * r27691;
        double r27693 = r27665 - r27692;
        return r27693;
}

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 r27694, r27695, r27696, r27697, r27698, r27699, r27700, r27701, r27702, r27703, r27704, r27705, r27706, r27707, r27708, r27709, r27710, r27711, r27712, r27713, r27714, r27715, r27716, r27717, r27718, r27719;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27694, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27695, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27696);
        mpfr_init(r27697);
        mpfr_init(r27698);
        mpfr_init(r27699);
        mpfr_init(r27700);
        mpfr_init_set_str(r27701, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r27702, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27703, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r27704, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27705, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r27706);
        mpfr_init(r27707);
        mpfr_init(r27708);
        mpfr_init(r27709);
        mpfr_init(r27710);
        mpfr_init(r27711);
        mpfr_init(r27712);
        mpfr_init(r27713);
        mpfr_init(r27714);
        mpfr_init(r27715);
        mpfr_init(r27716);
        mpfr_init(r27717);
        mpfr_init(r27718);
        mpfr_init(r27719);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r27696, x, MPFR_RNDN);
        mpfr_abs(r27697, r27696, MPFR_RNDN);
        mpfr_mul(r27698, r27695, r27697, MPFR_RNDN);
        mpfr_add(r27699, r27694, r27698, MPFR_RNDN);
        mpfr_div(r27700, r27694, r27699, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r27706, r27700, r27705, MPFR_RNDN);
        mpfr_add(r27707, r27704, r27706, MPFR_RNDN);
        mpfr_mul(r27708, r27700, r27707, MPFR_RNDN);
        mpfr_add(r27709, r27703, r27708, MPFR_RNDN);
        mpfr_mul(r27710, r27700, r27709, MPFR_RNDN);
        mpfr_add(r27711, r27702, r27710, MPFR_RNDN);
        mpfr_mul(r27712, r27700, r27711, MPFR_RNDN);
        mpfr_add(r27713, r27701, r27712, MPFR_RNDN);
        mpfr_mul(r27714, r27700, r27713, MPFR_RNDN);
        mpfr_mul(r27715, r27697, r27697, MPFR_RNDN);
        mpfr_neg(r27716, r27715, MPFR_RNDN);
        mpfr_exp(r27717, r27716, MPFR_RNDN);
        mpfr_mul(r27718, r27714, r27717, MPFR_RNDN);
        mpfr_sub(r27719, r27694, r27718, MPFR_RNDN);
        return mpfr_get_d(r27719, MPFR_RNDN);
}

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

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27720, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27721, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27722);
        mpfr_init(r27723);
        mpfr_init(r27724);
        mpfr_init(r27725);
        mpfr_init(r27726);
        mpfr_init_set_str(r27727, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r27728, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27729, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r27730);
        mpfr_init(r27731);
        mpfr_init(r27732);
        mpfr_init_set_str(r27733, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27734, "1.061405429", 10, MPFR_RNDN);
        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);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r27722, x, MPFR_RNDN);
        mpfr_abs(r27723, r27722, MPFR_RNDN);
        mpfr_mul(r27724, r27721, r27723, MPFR_RNDN);
        mpfr_add(r27725, r27720, r27724, MPFR_RNDN);
        mpfr_div(r27726, r27720, r27725, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_cbrt(r27730, r27726, MPFR_RNDN);
        mpfr_mul(r27731, r27730, r27730, MPFR_RNDN);
        mpfr_mul(r27732, r27731, r27730, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r27735, r27726, r27734, MPFR_RNDN);
        mpfr_add(r27736, r27733, r27735, MPFR_RNDN);
        mpfr_mul(r27737, r27732, r27736, MPFR_RNDN);
        mpfr_add(r27738, r27729, r27737, MPFR_RNDN);
        mpfr_mul(r27739, r27726, r27738, MPFR_RNDN);
        mpfr_add(r27740, r27728, r27739, MPFR_RNDN);
        mpfr_mul(r27741, r27726, r27740, MPFR_RNDN);
        mpfr_add(r27742, r27727, r27741, MPFR_RNDN);
        mpfr_mul(r27743, r27726, r27742, MPFR_RNDN);
        mpfr_mul(r27744, r27723, r27723, MPFR_RNDN);
        mpfr_neg(r27745, r27744, MPFR_RNDN);
        mpfr_exp(r27746, r27745, MPFR_RNDN);
        mpfr_mul(r27747, r27743, r27746, MPFR_RNDN);
        mpfr_sub(r27748, r27720, r27747, MPFR_RNDN);
        return mpfr_get_d(r27748, MPFR_RNDN);
}

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

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27749, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27750, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27751);
        mpfr_init(r27752);
        mpfr_init(r27753);
        mpfr_init(r27754);
        mpfr_init(r27755);
        mpfr_init_set_str(r27756, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r27757, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27758, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r27759);
        mpfr_init(r27760);
        mpfr_init(r27761);
        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);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r27751, x, MPFR_RNDN);
        mpfr_abs(r27752, r27751, MPFR_RNDN);
        mpfr_mul(r27753, r27750, r27752, MPFR_RNDN);
        mpfr_add(r27754, r27749, r27753, MPFR_RNDN);
        mpfr_div(r27755, r27749, r27754, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_cbrt(r27759, r27755, MPFR_RNDN);
        mpfr_mul(r27760, r27759, r27759, MPFR_RNDN);
        mpfr_mul(r27761, r27760, r27759, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r27764, r27755, r27763, MPFR_RNDN);
        mpfr_add(r27765, r27762, r27764, MPFR_RNDN);
        mpfr_mul(r27766, r27761, r27765, MPFR_RNDN);
        mpfr_add(r27767, r27758, r27766, MPFR_RNDN);
        mpfr_mul(r27768, r27755, r27767, MPFR_RNDN);
        mpfr_add(r27769, r27757, r27768, MPFR_RNDN);
        mpfr_mul(r27770, r27755, r27769, MPFR_RNDN);
        mpfr_add(r27771, r27756, r27770, MPFR_RNDN);
        mpfr_mul(r27772, r27755, r27771, MPFR_RNDN);
        mpfr_mul(r27773, r27752, r27752, MPFR_RNDN);
        mpfr_neg(r27774, r27773, MPFR_RNDN);
        mpfr_exp(r27775, r27774, MPFR_RNDN);
        mpfr_mul(r27776, r27772, r27775, MPFR_RNDN);
        mpfr_sub(r27777, r27749, r27776, MPFR_RNDN);
        return mpfr_get_d(r27777, MPFR_RNDN);
}

