#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 r27557 = 1;
        float r27558 = atan2(1.0, 0.0);
        float r27559 = sqrt(r27558);
        float r27560 = r27557 / r27559;
        float r27561 = x;
        float r27562 = fabs(r27561);
        float r27563 = r27562 * r27562;
        float r27564 = exp(r27563);
        float r27565 = r27560 * r27564;
        float r27566 = r27557 / r27562;
        float r27567 = 2;
        float r27568 = r27557 / r27567;
        float r27569 = r27566 * r27566;
        float r27570 = r27569 * r27566;
        float r27571 = r27568 * r27570;
        float r27572 = r27566 + r27571;
        float r27573 = 3;
        float r27574 = 4;
        float r27575 = r27573 / r27574;
        float r27576 = r27570 * r27566;
        float r27577 = r27576 * r27566;
        float r27578 = r27575 * r27577;
        float r27579 = r27572 + r27578;
        float r27580 = 15;
        float r27581 = 8;
        float r27582 = r27580 / r27581;
        float r27583 = r27577 * r27566;
        float r27584 = r27583 * r27566;
        float r27585 = r27582 * r27584;
        float r27586 = r27579 + r27585;
        float r27587 = r27565 * r27586;
        return r27587;
}

double f_id(double x) {
        double r27588 = 1;
        double r27589 = atan2(1.0, 0.0);
        double r27590 = sqrt(r27589);
        double r27591 = r27588 / r27590;
        double r27592 = x;
        double r27593 = fabs(r27592);
        double r27594 = r27593 * r27593;
        double r27595 = exp(r27594);
        double r27596 = r27591 * r27595;
        double r27597 = r27588 / r27593;
        double r27598 = 2;
        double r27599 = r27588 / r27598;
        double r27600 = r27597 * r27597;
        double r27601 = r27600 * r27597;
        double r27602 = r27599 * r27601;
        double r27603 = r27597 + r27602;
        double r27604 = 3;
        double r27605 = 4;
        double r27606 = r27604 / r27605;
        double r27607 = r27601 * r27597;
        double r27608 = r27607 * r27597;
        double r27609 = r27606 * r27608;
        double r27610 = r27603 + r27609;
        double r27611 = 15;
        double r27612 = 8;
        double r27613 = r27611 / r27612;
        double r27614 = r27608 * r27597;
        double r27615 = r27614 * r27597;
        double r27616 = r27613 * r27615;
        double r27617 = r27610 + r27616;
        double r27618 = r27596 * r27617;
        return r27618;
}


double f_of(float x) {
        float r27619 = 3;
        float r27620 = x;
        float r27621 = fabs(r27620);
        float r27622 = r27619 / r27621;
        float r27623 = 4;
        float r27624 = 8;
        float r27625 = r27623 / r27624;
        float r27626 = 15;
        float r27627 = r27625 * r27626;
        float r27628 = pow(r27621, r27619);
        float r27629 = r27627 / r27628;
        float r27630 = r27622 + r27629;
        float r27631 = r27623 * r27621;
        float r27632 = r27631 * r27628;
        float r27633 = r27630 / r27632;
        float r27634 = 1;
        float r27635 = r27634 / r27621;
        float r27636 = 2;
        float r27637 = r27621 * r27621;
        float r27638 = r27636 * r27637;
        float r27639 = r27635 / r27638;
        float r27640 = r27639 + r27635;
        float r27641 = r27633 + r27640;
        float r27642 = exp(r27637);
        float r27643 = atan2(1.0, 0.0);
        float r27644 = sqrt(r27643);
        float r27645 = r27642 / r27644;
        float r27646 = r27641 * r27645;
        return r27646;
}

double f_od(double x) {
        double r27647 = 3;
        double r27648 = x;
        double r27649 = fabs(r27648);
        double r27650 = r27647 / r27649;
        double r27651 = 4;
        double r27652 = 8;
        double r27653 = r27651 / r27652;
        double r27654 = 15;
        double r27655 = r27653 * r27654;
        double r27656 = pow(r27649, r27647);
        double r27657 = r27655 / r27656;
        double r27658 = r27650 + r27657;
        double r27659 = r27651 * r27649;
        double r27660 = r27659 * r27656;
        double r27661 = r27658 / r27660;
        double r27662 = 1;
        double r27663 = r27662 / r27649;
        double r27664 = 2;
        double r27665 = r27649 * r27649;
        double r27666 = r27664 * r27665;
        double r27667 = r27663 / r27666;
        double r27668 = r27667 + r27663;
        double r27669 = r27661 + r27668;
        double r27670 = exp(r27665);
        double r27671 = atan2(1.0, 0.0);
        double r27672 = sqrt(r27671);
        double r27673 = r27670 / r27672;
        double r27674 = r27669 * r27673;
        return r27674;
}

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 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, r27703, r27704, r27705;

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

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

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

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27706, "3", 10, MPFR_RNDN);
        mpfr_init(r27707);
        mpfr_init(r27708);
        mpfr_init(r27709);
        mpfr_init_set_str(r27710, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r27711, "8", 10, MPFR_RNDN);
        mpfr_init(r27712);
        mpfr_init_set_str(r27713, "15", 10, MPFR_RNDN);
        mpfr_init(r27714);
        mpfr_init(r27715);
        mpfr_init(r27716);
        mpfr_init(r27717);
        mpfr_init(r27718);
        mpfr_init(r27719);
        mpfr_init(r27720);
        mpfr_init_set_str(r27721, "1", 10, MPFR_RNDN);
        mpfr_init(r27722);
        mpfr_init_set_str(r27723, "2", 10, MPFR_RNDN);
        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);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r27707, x, MPFR_RNDN);
        mpfr_abs(r27708, r27707, MPFR_RNDN);
        mpfr_div(r27709, r27706, r27708, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27712, r27710, r27711, MPFR_RNDN);
        ;
        mpfr_mul(r27714, r27712, r27713, MPFR_RNDN);
        mpfr_pow(r27715, r27708, r27706, MPFR_RNDN);
        mpfr_div(r27716, r27714, r27715, MPFR_RNDN);
        mpfr_add(r27717, r27709, r27716, MPFR_RNDN);
        mpfr_mul(r27718, r27710, r27708, MPFR_RNDN);
        mpfr_mul(r27719, r27718, r27715, MPFR_RNDN);
        mpfr_div(r27720, r27717, r27719, MPFR_RNDN);
        ;
        mpfr_div(r27722, r27721, r27708, MPFR_RNDN);
        ;
        mpfr_mul(r27724, r27708, r27708, MPFR_RNDN);
        mpfr_mul(r27725, r27723, r27724, MPFR_RNDN);
        mpfr_div(r27726, r27722, r27725, MPFR_RNDN);
        mpfr_add(r27727, r27726, r27722, MPFR_RNDN);
        mpfr_add(r27728, r27720, r27727, MPFR_RNDN);
        mpfr_exp(r27729, r27724, MPFR_RNDN);
        mpfr_const_pi(r27730, MPFR_RNDN);
        mpfr_sqrt(r27731, r27730, MPFR_RNDN);
        mpfr_div(r27732, r27729, r27731, MPFR_RNDN);
        mpfr_mul(r27733, r27728, r27732, MPFR_RNDN);
        return mpfr_get_d(r27733, MPFR_RNDN);
}

static mpfr_t r27734, r27735, r27736, r27737, r27738, r27739, r27740, r27741, r27742, r27743, r27744, r27745, r27746, r27747, r27748, r27749, r27750, r27751, r27752, r27753, r27754, r27755, r27756, r27757, r27758, r27759, r27760, r27761;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27734, "3", 10, MPFR_RNDN);
        mpfr_init(r27735);
        mpfr_init(r27736);
        mpfr_init(r27737);
        mpfr_init_set_str(r27738, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r27739, "8", 10, MPFR_RNDN);
        mpfr_init(r27740);
        mpfr_init_set_str(r27741, "15", 10, MPFR_RNDN);
        mpfr_init(r27742);
        mpfr_init(r27743);
        mpfr_init(r27744);
        mpfr_init(r27745);
        mpfr_init(r27746);
        mpfr_init(r27747);
        mpfr_init(r27748);
        mpfr_init_set_str(r27749, "1", 10, MPFR_RNDN);
        mpfr_init(r27750);
        mpfr_init_set_str(r27751, "2", 10, MPFR_RNDN);
        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(r27760);
        mpfr_init(r27761);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r27735, x, MPFR_RNDN);
        mpfr_abs(r27736, r27735, MPFR_RNDN);
        mpfr_div(r27737, r27734, r27736, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27740, r27738, r27739, MPFR_RNDN);
        ;
        mpfr_mul(r27742, r27740, r27741, MPFR_RNDN);
        mpfr_pow(r27743, r27736, r27734, MPFR_RNDN);
        mpfr_div(r27744, r27742, r27743, MPFR_RNDN);
        mpfr_add(r27745, r27737, r27744, MPFR_RNDN);
        mpfr_mul(r27746, r27738, r27736, MPFR_RNDN);
        mpfr_mul(r27747, r27746, r27743, MPFR_RNDN);
        mpfr_div(r27748, r27745, r27747, MPFR_RNDN);
        ;
        mpfr_div(r27750, r27749, r27736, MPFR_RNDN);
        ;
        mpfr_mul(r27752, r27736, r27736, MPFR_RNDN);
        mpfr_mul(r27753, r27751, r27752, MPFR_RNDN);
        mpfr_div(r27754, r27750, r27753, MPFR_RNDN);
        mpfr_add(r27755, r27754, r27750, MPFR_RNDN);
        mpfr_add(r27756, r27748, r27755, MPFR_RNDN);
        mpfr_exp(r27757, r27752, MPFR_RNDN);
        mpfr_const_pi(r27758, MPFR_RNDN);
        mpfr_sqrt(r27759, r27758, MPFR_RNDN);
        mpfr_div(r27760, r27757, r27759, MPFR_RNDN);
        mpfr_mul(r27761, r27756, r27760, MPFR_RNDN);
        return mpfr_get_d(r27761, MPFR_RNDN);
}

