#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Jmat.Real.erfi, branch x greater than or equal to 5";

double f_if(float x) {
        float r27516 = 1;
        float r27517 = atan2(1.0, 0.0);
        float r27518 = sqrt(r27517);
        float r27519 = r27516 / r27518;
        float r27520 = x;
        float r27521 = fabs(r27520);
        float r27522 = r27521 * r27521;
        float r27523 = exp(r27522);
        float r27524 = r27519 * r27523;
        float r27525 = r27516 / r27521;
        float r27526 = 2;
        float r27527 = r27516 / r27526;
        float r27528 = r27525 * r27525;
        float r27529 = r27528 * r27525;
        float r27530 = r27527 * r27529;
        float r27531 = r27525 + r27530;
        float r27532 = 3;
        float r27533 = 4;
        float r27534 = r27532 / r27533;
        float r27535 = r27529 * r27525;
        float r27536 = r27535 * r27525;
        float r27537 = r27534 * r27536;
        float r27538 = r27531 + r27537;
        float r27539 = 15;
        float r27540 = 8;
        float r27541 = r27539 / r27540;
        float r27542 = r27536 * r27525;
        float r27543 = r27542 * r27525;
        float r27544 = r27541 * r27543;
        float r27545 = r27538 + r27544;
        float r27546 = r27524 * r27545;
        return r27546;
}

double f_id(double x) {
        double r27547 = 1;
        double r27548 = atan2(1.0, 0.0);
        double r27549 = sqrt(r27548);
        double r27550 = r27547 / r27549;
        double r27551 = x;
        double r27552 = fabs(r27551);
        double r27553 = r27552 * r27552;
        double r27554 = exp(r27553);
        double r27555 = r27550 * r27554;
        double r27556 = r27547 / r27552;
        double r27557 = 2;
        double r27558 = r27547 / r27557;
        double r27559 = r27556 * r27556;
        double r27560 = r27559 * r27556;
        double r27561 = r27558 * r27560;
        double r27562 = r27556 + r27561;
        double r27563 = 3;
        double r27564 = 4;
        double r27565 = r27563 / r27564;
        double r27566 = r27560 * r27556;
        double r27567 = r27566 * r27556;
        double r27568 = r27565 * r27567;
        double r27569 = r27562 + r27568;
        double r27570 = 15;
        double r27571 = 8;
        double r27572 = r27570 / r27571;
        double r27573 = r27567 * r27556;
        double r27574 = r27573 * r27556;
        double r27575 = r27572 * r27574;
        double r27576 = r27569 + r27575;
        double r27577 = r27555 * r27576;
        return r27577;
}


double f_of(float x) {
        float r27578 = x;
        float r27579 = fabs(r27578);
        float r27580 = r27579 * r27579;
        float r27581 = exp(r27580);
        float r27582 = atan2(1.0, 0.0);
        float r27583 = sqrt(r27582);
        float r27584 = cbrt(r27583);
        float r27585 = r27584 * r27584;
        float r27586 = r27585 * r27584;
        float r27587 = r27581 / r27586;
        float r27588 = 1;
        float r27589 = r27588 / r27579;
        float r27590 = 3;
        float r27591 = 4;
        float r27592 = r27590 / r27591;
        float r27593 = r27589 * r27592;
        float r27594 = r27589 / r27579;
        float r27595 = r27593 * r27594;
        float r27596 = 2;
        float r27597 = r27589 / r27596;
        float r27598 = fma(r27594, r27597, r27589);
        float r27599 = fma(r27595, r27594, r27598);
        float r27600 = cbrt(r27599);
        float r27601 = r27600 * r27600;
        float r27602 = r27589 / r27580;
        float r27603 = r27602 / r27580;
        float r27604 = r27588 / r27596;
        float r27605 = r27604 / r27579;
        float r27606 = r27605 / r27580;
        float r27607 = r27589 + r27606;
        float r27608 = fma(r27592, r27603, r27607);
        float r27609 = cbrt(r27608);
        float r27610 = r27601 * r27609;
        float r27611 = -1;
        float r27612 = r27611 - r27590;
        float r27613 = pow(r27579, r27612);
        float r27614 = -r27590;
        float r27615 = pow(r27579, r27614);
        float r27616 = r27613 * r27615;
        float r27617 = r27588 / r27583;
        float r27618 = 15;
        float r27619 = 8;
        float r27620 = r27618 / r27619;
        float r27621 = r27617 * r27620;
        float r27622 = r27581 * r27621;
        float r27623 = r27616 * r27622;
        float r27624 = fma(r27587, r27610, r27623);
        return r27624;
}

double f_od(double x) {
        double r27625 = x;
        double r27626 = fabs(r27625);
        double r27627 = r27626 * r27626;
        double r27628 = exp(r27627);
        double r27629 = atan2(1.0, 0.0);
        double r27630 = sqrt(r27629);
        double r27631 = cbrt(r27630);
        double r27632 = r27631 * r27631;
        double r27633 = r27632 * r27631;
        double r27634 = r27628 / r27633;
        double r27635 = 1;
        double r27636 = r27635 / r27626;
        double r27637 = 3;
        double r27638 = 4;
        double r27639 = r27637 / r27638;
        double r27640 = r27636 * r27639;
        double r27641 = r27636 / r27626;
        double r27642 = r27640 * r27641;
        double r27643 = 2;
        double r27644 = r27636 / r27643;
        double r27645 = fma(r27641, r27644, r27636);
        double r27646 = fma(r27642, r27641, r27645);
        double r27647 = cbrt(r27646);
        double r27648 = r27647 * r27647;
        double r27649 = r27636 / r27627;
        double r27650 = r27649 / r27627;
        double r27651 = r27635 / r27643;
        double r27652 = r27651 / r27626;
        double r27653 = r27652 / r27627;
        double r27654 = r27636 + r27653;
        double r27655 = fma(r27639, r27650, r27654);
        double r27656 = cbrt(r27655);
        double r27657 = r27648 * r27656;
        double r27658 = -1;
        double r27659 = r27658 - r27637;
        double r27660 = pow(r27626, r27659);
        double r27661 = -r27637;
        double r27662 = pow(r27626, r27661);
        double r27663 = r27660 * r27662;
        double r27664 = r27635 / r27630;
        double r27665 = 15;
        double r27666 = 8;
        double r27667 = r27665 / r27666;
        double r27668 = r27664 * r27667;
        double r27669 = r27628 * r27668;
        double r27670 = r27663 * r27669;
        double r27671 = fma(r27634, r27657, r27670);
        return r27671;
}

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 r27672, r27673, r27674, r27675, r27676, r27677, r27678, r27679, r27680, r27681, r27682, r27683, r27684, r27685, r27686, r27687, r27688, r27689, r27690, r27691, r27692, r27693, r27694, r27695, r27696, r27697, r27698, r27699, r27700, r27701, r27702;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27672, "1", 10, MPFR_RNDN);
        mpfr_init(r27673);
        mpfr_init(r27674);
        mpfr_init(r27675);
        mpfr_init(r27676);
        mpfr_init(r27677);
        mpfr_init(r27678);
        mpfr_init(r27679);
        mpfr_init(r27680);
        mpfr_init(r27681);
        mpfr_init_set_str(r27682, "2", 10, MPFR_RNDN);
        mpfr_init(r27683);
        mpfr_init(r27684);
        mpfr_init(r27685);
        mpfr_init(r27686);
        mpfr_init(r27687);
        mpfr_init_set_str(r27688, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27689, "4", 10, MPFR_RNDN);
        mpfr_init(r27690);
        mpfr_init(r27691);
        mpfr_init(r27692);
        mpfr_init(r27693);
        mpfr_init(r27694);
        mpfr_init_set_str(r27695, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27696, "8", 10, MPFR_RNDN);
        mpfr_init(r27697);
        mpfr_init(r27698);
        mpfr_init(r27699);
        mpfr_init(r27700);
        mpfr_init(r27701);
        mpfr_init(r27702);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27673, MPFR_RNDN);
        mpfr_sqrt(r27674, r27673, MPFR_RNDN);
        mpfr_div(r27675, r27672, r27674, MPFR_RNDN);
        mpfr_set_d(r27676, x, MPFR_RNDN);
        mpfr_abs(r27677, r27676, MPFR_RNDN);
        mpfr_mul(r27678, r27677, r27677, MPFR_RNDN);
        mpfr_exp(r27679, r27678, MPFR_RNDN);
        mpfr_mul(r27680, r27675, r27679, MPFR_RNDN);
        mpfr_div(r27681, r27672, r27677, MPFR_RNDN);
        ;
        mpfr_div(r27683, r27672, r27682, MPFR_RNDN);
        mpfr_mul(r27684, r27681, r27681, MPFR_RNDN);
        mpfr_mul(r27685, r27684, r27681, MPFR_RNDN);
        mpfr_mul(r27686, r27683, r27685, MPFR_RNDN);
        mpfr_add(r27687, r27681, r27686, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27690, r27688, r27689, MPFR_RNDN);
        mpfr_mul(r27691, r27685, r27681, MPFR_RNDN);
        mpfr_mul(r27692, r27691, r27681, MPFR_RNDN);
        mpfr_mul(r27693, r27690, r27692, MPFR_RNDN);
        mpfr_add(r27694, r27687, r27693, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27697, r27695, r27696, MPFR_RNDN);
        mpfr_mul(r27698, r27692, r27681, MPFR_RNDN);
        mpfr_mul(r27699, r27698, r27681, MPFR_RNDN);
        mpfr_mul(r27700, r27697, r27699, MPFR_RNDN);
        mpfr_add(r27701, r27694, r27700, MPFR_RNDN);
        mpfr_mul(r27702, r27680, r27701, MPFR_RNDN);
        return mpfr_get_d(r27702, MPFR_RNDN);
}

static mpfr_t r27703, r27704, 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(r27703);
        mpfr_init(r27704);
        mpfr_init(r27705);
        mpfr_init(r27706);
        mpfr_init(r27707);
        mpfr_init(r27708);
        mpfr_init(r27709);
        mpfr_init(r27710);
        mpfr_init(r27711);
        mpfr_init(r27712);
        mpfr_init_set_str(r27713, "1", 10, MPFR_RNDN);
        mpfr_init(r27714);
        mpfr_init_set_str(r27715, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27716, "4", 10, MPFR_RNDN);
        mpfr_init(r27717);
        mpfr_init(r27718);
        mpfr_init(r27719);
        mpfr_init(r27720);
        mpfr_init_set_str(r27721, "2", 10, MPFR_RNDN);
        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_set_str(r27736, "-1", 10, MPFR_RNDN);
        mpfr_init(r27737);
        mpfr_init(r27738);
        mpfr_init(r27739);
        mpfr_init(r27740);
        mpfr_init(r27741);
        mpfr_init(r27742);
        mpfr_init_set_str(r27743, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27744, "8", 10, MPFR_RNDN);
        mpfr_init(r27745);
        mpfr_init(r27746);
        mpfr_init(r27747);
        mpfr_init(r27748);
        mpfr_init(r27749);
}

double f_fm(double x) {
        mpfr_set_d(r27703, x, MPFR_RNDN);
        mpfr_abs(r27704, r27703, MPFR_RNDN);
        mpfr_mul(r27705, r27704, r27704, MPFR_RNDN);
        mpfr_exp(r27706, r27705, MPFR_RNDN);
        mpfr_const_pi(r27707, MPFR_RNDN);
        mpfr_sqrt(r27708, r27707, MPFR_RNDN);
        mpfr_cbrt(r27709, r27708, MPFR_RNDN);
        mpfr_mul(r27710, r27709, r27709, MPFR_RNDN);
        mpfr_mul(r27711, r27710, r27709, MPFR_RNDN);
        mpfr_div(r27712, r27706, r27711, MPFR_RNDN);
        ;
        mpfr_div(r27714, r27713, r27704, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27717, r27715, r27716, MPFR_RNDN);
        mpfr_mul(r27718, r27714, r27717, MPFR_RNDN);
        mpfr_div(r27719, r27714, r27704, MPFR_RNDN);
        mpfr_mul(r27720, r27718, r27719, MPFR_RNDN);
        ;
        mpfr_div(r27722, r27714, r27721, MPFR_RNDN);
        mpfr_fma(r27723, r27719, r27722, r27714, MPFR_RNDN);
        mpfr_fma(r27724, r27720, r27719, r27723, MPFR_RNDN);
        mpfr_cbrt(r27725, r27724, MPFR_RNDN);
        mpfr_mul(r27726, r27725, r27725, MPFR_RNDN);
        mpfr_div(r27727, r27714, r27705, MPFR_RNDN);
        mpfr_div(r27728, r27727, r27705, MPFR_RNDN);
        mpfr_div(r27729, r27713, r27721, MPFR_RNDN);
        mpfr_div(r27730, r27729, r27704, MPFR_RNDN);
        mpfr_div(r27731, r27730, r27705, MPFR_RNDN);
        mpfr_add(r27732, r27714, r27731, MPFR_RNDN);
        mpfr_fma(r27733, r27717, r27728, r27732, MPFR_RNDN);
        mpfr_cbrt(r27734, r27733, MPFR_RNDN);
        mpfr_mul(r27735, r27726, r27734, MPFR_RNDN);
        ;
        mpfr_sub(r27737, r27736, r27715, MPFR_RNDN);
        mpfr_pow(r27738, r27704, r27737, MPFR_RNDN);
        mpfr_neg(r27739, r27715, MPFR_RNDN);
        mpfr_pow(r27740, r27704, r27739, MPFR_RNDN);
        mpfr_mul(r27741, r27738, r27740, MPFR_RNDN);
        mpfr_div(r27742, r27713, r27708, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27745, r27743, r27744, MPFR_RNDN);
        mpfr_mul(r27746, r27742, r27745, MPFR_RNDN);
        mpfr_mul(r27747, r27706, r27746, MPFR_RNDN);
        mpfr_mul(r27748, r27741, r27747, MPFR_RNDN);
        mpfr_fma(r27749, r27712, r27735, r27748, 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, r27795, r27796;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27750);
        mpfr_init(r27751);
        mpfr_init(r27752);
        mpfr_init(r27753);
        mpfr_init(r27754);
        mpfr_init(r27755);
        mpfr_init(r27756);
        mpfr_init(r27757);
        mpfr_init(r27758);
        mpfr_init(r27759);
        mpfr_init_set_str(r27760, "1", 10, MPFR_RNDN);
        mpfr_init(r27761);
        mpfr_init_set_str(r27762, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27763, "4", 10, MPFR_RNDN);
        mpfr_init(r27764);
        mpfr_init(r27765);
        mpfr_init(r27766);
        mpfr_init(r27767);
        mpfr_init_set_str(r27768, "2", 10, MPFR_RNDN);
        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_set_str(r27783, "-1", 10, MPFR_RNDN);
        mpfr_init(r27784);
        mpfr_init(r27785);
        mpfr_init(r27786);
        mpfr_init(r27787);
        mpfr_init(r27788);
        mpfr_init(r27789);
        mpfr_init_set_str(r27790, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27791, "8", 10, MPFR_RNDN);
        mpfr_init(r27792);
        mpfr_init(r27793);
        mpfr_init(r27794);
        mpfr_init(r27795);
        mpfr_init(r27796);
}

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

