#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 r10573 = 1.0f;
        float r10574 = 0.3275911f;
        float r10575 = x;
        float r10576 = fabs(r10575);
        float r10577 = r10574 * r10576;
        float r10578 = r10573 + r10577;
        float r10579 = r10573 / r10578;
        float r10580 = 0.254829592f;
        float r10581 = -0.284496736f;
        float r10582 = 1.421413741f;
        float r10583 = -1.453152027f;
        float r10584 = 1.061405429f;
        float r10585 = r10579 * r10584;
        float r10586 = r10583 + r10585;
        float r10587 = r10579 * r10586;
        float r10588 = r10582 + r10587;
        float r10589 = r10579 * r10588;
        float r10590 = r10581 + r10589;
        float r10591 = r10579 * r10590;
        float r10592 = r10580 + r10591;
        float r10593 = r10579 * r10592;
        float r10594 = r10576 * r10576;
        float r10595 = -r10594;
        float r10596 = exp(r10595);
        float r10597 = r10593 * r10596;
        float r10598 = r10573 - r10597;
        return r10598;
}

double f_id(double x) {
        double r10599 = 1.0;
        double r10600 = 0.3275911;
        double r10601 = x;
        double r10602 = fabs(r10601);
        double r10603 = r10600 * r10602;
        double r10604 = r10599 + r10603;
        double r10605 = r10599 / r10604;
        double r10606 = 0.254829592;
        double r10607 = -0.284496736;
        double r10608 = 1.421413741;
        double r10609 = -1.453152027;
        double r10610 = 1.061405429;
        double r10611 = r10605 * r10610;
        double r10612 = r10609 + r10611;
        double r10613 = r10605 * r10612;
        double r10614 = r10608 + r10613;
        double r10615 = r10605 * r10614;
        double r10616 = r10607 + r10615;
        double r10617 = r10605 * r10616;
        double r10618 = r10606 + r10617;
        double r10619 = r10605 * r10618;
        double r10620 = r10602 * r10602;
        double r10621 = -r10620;
        double r10622 = exp(r10621);
        double r10623 = r10619 * r10622;
        double r10624 = r10599 - r10623;
        return r10624;
}


double f_of(float x) {
        float r10625 = 1.0f;
        float r10626 = 3.0f;
        float r10627 = pow(r10625, r10626);
        float r10628 = x;
        float r10629 = fabs(r10628);
        float r10630 = r10629 * r10629;
        float r10631 = -r10630;
        float r10632 = exp(r10631);
        float r10633 = 0.3275911f;
        float r10634 = r10629 * r10633;
        float r10635 = r10625 + r10634;
        float r10636 = r10625 / r10635;
        float r10637 = exp(r10636);
        float r10638 = log(r10637);
        float r10639 = 1.061405429f;
        float r10640 = r10638 * r10639;
        float r10641 = -1.453152027f;
        float r10642 = r10640 + r10641;
        float r10643 = r10636 * r10642;
        float r10644 = 1.421413741f;
        float r10645 = r10643 + r10644;
        float r10646 = r10645 * r10636;
        float r10647 = -0.284496736f;
        float r10648 = r10646 + r10647;
        float r10649 = r10648 * r10636;
        float r10650 = 0.254829592f;
        float r10651 = r10649 + r10650;
        float r10652 = r10636 * r10651;
        float r10653 = r10632 * r10652;
        float r10654 = r10653 * r10653;
        float r10655 = pow(r10654, r10626);
        float r10656 = r10627 - r10655;
        float r10657 = r10654 * r10654;
        float r10658 = r10654 + r10657;
        float r10659 = r10658 + r10625;
        float r10660 = r10656 / r10659;
        float r10661 = r10653 + r10625;
        float r10662 = r10660 / r10661;
        return r10662;
}

double f_od(double x) {
        double r10663 = 1.0;
        double r10664 = 3.0;
        double r10665 = pow(r10663, r10664);
        double r10666 = x;
        double r10667 = fabs(r10666);
        double r10668 = r10667 * r10667;
        double r10669 = -r10668;
        double r10670 = exp(r10669);
        double r10671 = 0.3275911;
        double r10672 = r10667 * r10671;
        double r10673 = r10663 + r10672;
        double r10674 = r10663 / r10673;
        double r10675 = exp(r10674);
        double r10676 = log(r10675);
        double r10677 = 1.061405429;
        double r10678 = r10676 * r10677;
        double r10679 = -1.453152027;
        double r10680 = r10678 + r10679;
        double r10681 = r10674 * r10680;
        double r10682 = 1.421413741;
        double r10683 = r10681 + r10682;
        double r10684 = r10683 * r10674;
        double r10685 = -0.284496736;
        double r10686 = r10684 + r10685;
        double r10687 = r10686 * r10674;
        double r10688 = 0.254829592;
        double r10689 = r10687 + r10688;
        double r10690 = r10674 * r10689;
        double r10691 = r10670 * r10690;
        double r10692 = r10691 * r10691;
        double r10693 = pow(r10692, r10664);
        double r10694 = r10665 - r10693;
        double r10695 = r10692 * r10692;
        double r10696 = r10692 + r10695;
        double r10697 = r10696 + r10663;
        double r10698 = r10694 / r10697;
        double r10699 = r10691 + r10663;
        double r10700 = r10698 / r10699;
        return r10700;
}

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 r10701, r10702, r10703, r10704, r10705, r10706, r10707, r10708, r10709, r10710, r10711, r10712, r10713, r10714, r10715, r10716, r10717, r10718, r10719, r10720, r10721, r10722, r10723, r10724, r10725, r10726;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10701, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10702, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r10703);
        mpfr_init(r10704);
        mpfr_init(r10705);
        mpfr_init(r10706);
        mpfr_init(r10707);
        mpfr_init_set_str(r10708, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r10709, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r10710, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r10711, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r10712, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r10713);
        mpfr_init(r10714);
        mpfr_init(r10715);
        mpfr_init(r10716);
        mpfr_init(r10717);
        mpfr_init(r10718);
        mpfr_init(r10719);
        mpfr_init(r10720);
        mpfr_init(r10721);
        mpfr_init(r10722);
        mpfr_init(r10723);
        mpfr_init(r10724);
        mpfr_init(r10725);
        mpfr_init(r10726);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r10703, x, MPFR_RNDN);
        mpfr_abs(r10704, r10703, MPFR_RNDN);
        mpfr_mul(r10705, r10702, r10704, MPFR_RNDN);
        mpfr_add(r10706, r10701, r10705, MPFR_RNDN);
        mpfr_div(r10707, r10701, r10706, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r10713, r10707, r10712, MPFR_RNDN);
        mpfr_add(r10714, r10711, r10713, MPFR_RNDN);
        mpfr_mul(r10715, r10707, r10714, MPFR_RNDN);
        mpfr_add(r10716, r10710, r10715, MPFR_RNDN);
        mpfr_mul(r10717, r10707, r10716, MPFR_RNDN);
        mpfr_add(r10718, r10709, r10717, MPFR_RNDN);
        mpfr_mul(r10719, r10707, r10718, MPFR_RNDN);
        mpfr_add(r10720, r10708, r10719, MPFR_RNDN);
        mpfr_mul(r10721, r10707, r10720, MPFR_RNDN);
        mpfr_mul(r10722, r10704, r10704, MPFR_RNDN);
        mpfr_neg(r10723, r10722, MPFR_RNDN);
        mpfr_exp(r10724, r10723, MPFR_RNDN);
        mpfr_mul(r10725, r10721, r10724, MPFR_RNDN);
        mpfr_sub(r10726, r10701, r10725, MPFR_RNDN);
        return mpfr_get_d(r10726, MPFR_RNDN);
}

static mpfr_t r10727, r10728, r10729, r10730, r10731, r10732, r10733, r10734, r10735, r10736, r10737, r10738, r10739, r10740, r10741, r10742, r10743, r10744, r10745, r10746, r10747, r10748, r10749, r10750, r10751, r10752, r10753, r10754, r10755, r10756, r10757, r10758, r10759, r10760, r10761, r10762, r10763, r10764;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10727, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10728, "3", 10, MPFR_RNDN);
        mpfr_init(r10729);
        mpfr_init(r10730);
        mpfr_init(r10731);
        mpfr_init(r10732);
        mpfr_init(r10733);
        mpfr_init(r10734);
        mpfr_init_set_str(r10735, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r10736);
        mpfr_init(r10737);
        mpfr_init(r10738);
        mpfr_init(r10739);
        mpfr_init(r10740);
        mpfr_init_set_str(r10741, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r10742);
        mpfr_init_set_str(r10743, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r10744);
        mpfr_init(r10745);
        mpfr_init_set_str(r10746, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r10747);
        mpfr_init(r10748);
        mpfr_init_set_str(r10749, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r10750);
        mpfr_init(r10751);
        mpfr_init_set_str(r10752, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r10753);
        mpfr_init(r10754);
        mpfr_init(r10755);
        mpfr_init(r10756);
        mpfr_init(r10757);
        mpfr_init(r10758);
        mpfr_init(r10759);
        mpfr_init(r10760);
        mpfr_init(r10761);
        mpfr_init(r10762);
        mpfr_init(r10763);
        mpfr_init(r10764);
}

double f_fm(double x) {
        ;
        ;
        mpfr_pow(r10729, r10727, r10728, MPFR_RNDN);
        mpfr_set_d(r10730, x, MPFR_RNDN);
        mpfr_abs(r10731, r10730, MPFR_RNDN);
        mpfr_mul(r10732, r10731, r10731, MPFR_RNDN);
        mpfr_neg(r10733, r10732, MPFR_RNDN);
        mpfr_exp(r10734, r10733, MPFR_RNDN);
        ;
        mpfr_mul(r10736, r10731, r10735, MPFR_RNDN);
        mpfr_add(r10737, r10727, r10736, MPFR_RNDN);
        mpfr_div(r10738, r10727, r10737, MPFR_RNDN);
        mpfr_exp(r10739, r10738, MPFR_RNDN);
        mpfr_log(r10740, r10739, MPFR_RNDN);
        ;
        mpfr_mul(r10742, r10740, r10741, MPFR_RNDN);
        ;
        mpfr_add(r10744, r10742, r10743, MPFR_RNDN);
        mpfr_mul(r10745, r10738, r10744, MPFR_RNDN);
        ;
        mpfr_add(r10747, r10745, r10746, MPFR_RNDN);
        mpfr_mul(r10748, r10747, r10738, MPFR_RNDN);
        ;
        mpfr_add(r10750, r10748, r10749, MPFR_RNDN);
        mpfr_mul(r10751, r10750, r10738, MPFR_RNDN);
        ;
        mpfr_add(r10753, r10751, r10752, MPFR_RNDN);
        mpfr_mul(r10754, r10738, r10753, MPFR_RNDN);
        mpfr_mul(r10755, r10734, r10754, MPFR_RNDN);
        mpfr_mul(r10756, r10755, r10755, MPFR_RNDN);
        mpfr_pow(r10757, r10756, r10728, MPFR_RNDN);
        mpfr_sub(r10758, r10729, r10757, MPFR_RNDN);
        mpfr_mul(r10759, r10756, r10756, MPFR_RNDN);
        mpfr_add(r10760, r10756, r10759, MPFR_RNDN);
        mpfr_add(r10761, r10760, r10727, MPFR_RNDN);
        mpfr_div(r10762, r10758, r10761, MPFR_RNDN);
        mpfr_add(r10763, r10755, r10727, MPFR_RNDN);
        mpfr_div(r10764, r10762, r10763, MPFR_RNDN);
        return mpfr_get_d(r10764, MPFR_RNDN);
}

static mpfr_t r10765, r10766, r10767, r10768, r10769, r10770, r10771, r10772, r10773, r10774, r10775, r10776, r10777, r10778, r10779, r10780, r10781, r10782, r10783, r10784, r10785, r10786, r10787, r10788, r10789, r10790, r10791, r10792, r10793, r10794, r10795, r10796, r10797, r10798, r10799, r10800, r10801, r10802;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10765, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10766, "3", 10, MPFR_RNDN);
        mpfr_init(r10767);
        mpfr_init(r10768);
        mpfr_init(r10769);
        mpfr_init(r10770);
        mpfr_init(r10771);
        mpfr_init(r10772);
        mpfr_init_set_str(r10773, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r10774);
        mpfr_init(r10775);
        mpfr_init(r10776);
        mpfr_init(r10777);
        mpfr_init(r10778);
        mpfr_init_set_str(r10779, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r10780);
        mpfr_init_set_str(r10781, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r10782);
        mpfr_init(r10783);
        mpfr_init_set_str(r10784, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r10785);
        mpfr_init(r10786);
        mpfr_init_set_str(r10787, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r10788);
        mpfr_init(r10789);
        mpfr_init_set_str(r10790, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r10791);
        mpfr_init(r10792);
        mpfr_init(r10793);
        mpfr_init(r10794);
        mpfr_init(r10795);
        mpfr_init(r10796);
        mpfr_init(r10797);
        mpfr_init(r10798);
        mpfr_init(r10799);
        mpfr_init(r10800);
        mpfr_init(r10801);
        mpfr_init(r10802);
}

double f_dm(double x) {
        ;
        ;
        mpfr_pow(r10767, r10765, r10766, MPFR_RNDN);
        mpfr_set_d(r10768, x, MPFR_RNDN);
        mpfr_abs(r10769, r10768, MPFR_RNDN);
        mpfr_mul(r10770, r10769, r10769, MPFR_RNDN);
        mpfr_neg(r10771, r10770, MPFR_RNDN);
        mpfr_exp(r10772, r10771, MPFR_RNDN);
        ;
        mpfr_mul(r10774, r10769, r10773, MPFR_RNDN);
        mpfr_add(r10775, r10765, r10774, MPFR_RNDN);
        mpfr_div(r10776, r10765, r10775, MPFR_RNDN);
        mpfr_exp(r10777, r10776, MPFR_RNDN);
        mpfr_log(r10778, r10777, MPFR_RNDN);
        ;
        mpfr_mul(r10780, r10778, r10779, MPFR_RNDN);
        ;
        mpfr_add(r10782, r10780, r10781, MPFR_RNDN);
        mpfr_mul(r10783, r10776, r10782, MPFR_RNDN);
        ;
        mpfr_add(r10785, r10783, r10784, MPFR_RNDN);
        mpfr_mul(r10786, r10785, r10776, MPFR_RNDN);
        ;
        mpfr_add(r10788, r10786, r10787, MPFR_RNDN);
        mpfr_mul(r10789, r10788, r10776, MPFR_RNDN);
        ;
        mpfr_add(r10791, r10789, r10790, MPFR_RNDN);
        mpfr_mul(r10792, r10776, r10791, MPFR_RNDN);
        mpfr_mul(r10793, r10772, r10792, MPFR_RNDN);
        mpfr_mul(r10794, r10793, r10793, MPFR_RNDN);
        mpfr_pow(r10795, r10794, r10766, MPFR_RNDN);
        mpfr_sub(r10796, r10767, r10795, MPFR_RNDN);
        mpfr_mul(r10797, r10794, r10794, MPFR_RNDN);
        mpfr_add(r10798, r10794, r10797, MPFR_RNDN);
        mpfr_add(r10799, r10798, r10765, MPFR_RNDN);
        mpfr_div(r10800, r10796, r10799, MPFR_RNDN);
        mpfr_add(r10801, r10793, r10765, MPFR_RNDN);
        mpfr_div(r10802, r10800, r10801, MPFR_RNDN);
        return mpfr_get_d(r10802, MPFR_RNDN);
}

