#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 r27595 = 1;
        float r27596 = atan2(1.0, 0.0);
        float r27597 = sqrt(r27596);
        float r27598 = r27595 / r27597;
        float r27599 = x;
        float r27600 = fabs(r27599);
        float r27601 = r27600 * r27600;
        float r27602 = exp(r27601);
        float r27603 = r27598 * r27602;
        float r27604 = r27595 / r27600;
        float r27605 = 2;
        float r27606 = r27595 / r27605;
        float r27607 = r27604 * r27604;
        float r27608 = r27607 * r27604;
        float r27609 = r27606 * r27608;
        float r27610 = r27604 + r27609;
        float r27611 = 3;
        float r27612 = 4;
        float r27613 = r27611 / r27612;
        float r27614 = r27608 * r27604;
        float r27615 = r27614 * r27604;
        float r27616 = r27613 * r27615;
        float r27617 = r27610 + r27616;
        float r27618 = 15;
        float r27619 = 8;
        float r27620 = r27618 / r27619;
        float r27621 = r27615 * r27604;
        float r27622 = r27621 * r27604;
        float r27623 = r27620 * r27622;
        float r27624 = r27617 + r27623;
        float r27625 = r27603 * r27624;
        return r27625;
}

double f_id(double x) {
        double r27626 = 1;
        double r27627 = atan2(1.0, 0.0);
        double r27628 = sqrt(r27627);
        double r27629 = r27626 / r27628;
        double r27630 = x;
        double r27631 = fabs(r27630);
        double r27632 = r27631 * r27631;
        double r27633 = exp(r27632);
        double r27634 = r27629 * r27633;
        double r27635 = r27626 / r27631;
        double r27636 = 2;
        double r27637 = r27626 / r27636;
        double r27638 = r27635 * r27635;
        double r27639 = r27638 * r27635;
        double r27640 = r27637 * r27639;
        double r27641 = r27635 + r27640;
        double r27642 = 3;
        double r27643 = 4;
        double r27644 = r27642 / r27643;
        double r27645 = r27639 * r27635;
        double r27646 = r27645 * r27635;
        double r27647 = r27644 * r27646;
        double r27648 = r27641 + r27647;
        double r27649 = 15;
        double r27650 = 8;
        double r27651 = r27649 / r27650;
        double r27652 = r27646 * r27635;
        double r27653 = r27652 * r27635;
        double r27654 = r27651 * r27653;
        double r27655 = r27648 + r27654;
        double r27656 = r27634 * r27655;
        return r27656;
}


double f_of(float x) {
        float r27657 = x;
        float r27658 = fabs(r27657);
        float r27659 = r27658 * r27658;
        float r27660 = exp(r27659);
        float r27661 = atan2(1.0, 0.0);
        float r27662 = sqrt(r27661);
        float r27663 = 1;
        float r27664 = r27663 / r27658;
        float r27665 = r27662 / r27664;
        float r27666 = r27660 / r27665;
        float r27667 = 3;
        float r27668 = 4;
        float r27669 = r27667 / r27668;
        float r27670 = r27667 + r27663;
        float r27671 = pow(r27664, r27670);
        float r27672 = r27669 * r27671;
        float r27673 = 2;
        float r27674 = r27663 / r27673;
        float r27675 = r27674 / r27658;
        float r27676 = r27675 / r27658;
        float r27677 = r27676 + r27663;
        float r27678 = r27672 + r27677;
        float r27679 = r27666 * r27678;
        float r27680 = r27664 / r27659;
        float r27681 = -1;
        float r27682 = r27681 - r27667;
        float r27683 = pow(r27658, r27682);
        float r27684 = r27680 * r27683;
        float r27685 = 15;
        float r27686 = 8;
        float r27687 = r27685 / r27686;
        float r27688 = sqrt(r27662);
        float r27689 = r27688 * r27688;
        float r27690 = r27687 / r27689;
        float r27691 = r27690 * r27660;
        float r27692 = r27684 * r27691;
        float r27693 = r27679 + r27692;
        return r27693;
}

double f_od(double x) {
        double r27694 = x;
        double r27695 = fabs(r27694);
        double r27696 = r27695 * r27695;
        double r27697 = exp(r27696);
        double r27698 = atan2(1.0, 0.0);
        double r27699 = sqrt(r27698);
        double r27700 = 1;
        double r27701 = r27700 / r27695;
        double r27702 = r27699 / r27701;
        double r27703 = r27697 / r27702;
        double r27704 = 3;
        double r27705 = 4;
        double r27706 = r27704 / r27705;
        double r27707 = r27704 + r27700;
        double r27708 = pow(r27701, r27707);
        double r27709 = r27706 * r27708;
        double r27710 = 2;
        double r27711 = r27700 / r27710;
        double r27712 = r27711 / r27695;
        double r27713 = r27712 / r27695;
        double r27714 = r27713 + r27700;
        double r27715 = r27709 + r27714;
        double r27716 = r27703 * r27715;
        double r27717 = r27701 / r27696;
        double r27718 = -1;
        double r27719 = r27718 - r27704;
        double r27720 = pow(r27695, r27719);
        double r27721 = r27717 * r27720;
        double r27722 = 15;
        double r27723 = 8;
        double r27724 = r27722 / r27723;
        double r27725 = sqrt(r27699);
        double r27726 = r27725 * r27725;
        double r27727 = r27724 / r27726;
        double r27728 = r27727 * r27697;
        double r27729 = r27721 * r27728;
        double r27730 = r27716 + r27729;
        return r27730;
}

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 r27731, r27732, r27733, 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_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27731, "1", 10, MPFR_RNDN);
        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_set_str(r27741, "2", 10, MPFR_RNDN);
        mpfr_init(r27742);
        mpfr_init(r27743);
        mpfr_init(r27744);
        mpfr_init(r27745);
        mpfr_init(r27746);
        mpfr_init_set_str(r27747, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27748, "4", 10, MPFR_RNDN);
        mpfr_init(r27749);
        mpfr_init(r27750);
        mpfr_init(r27751);
        mpfr_init(r27752);
        mpfr_init(r27753);
        mpfr_init_set_str(r27754, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27755, "8", 10, MPFR_RNDN);
        mpfr_init(r27756);
        mpfr_init(r27757);
        mpfr_init(r27758);
        mpfr_init(r27759);
        mpfr_init(r27760);
        mpfr_init(r27761);
}

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

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

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27762);
        mpfr_init(r27763);
        mpfr_init(r27764);
        mpfr_init(r27765);
        mpfr_init(r27766);
        mpfr_init(r27767);
        mpfr_init_set_str(r27768, "1", 10, MPFR_RNDN);
        mpfr_init(r27769);
        mpfr_init(r27770);
        mpfr_init(r27771);
        mpfr_init_set_str(r27772, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27773, "4", 10, MPFR_RNDN);
        mpfr_init(r27774);
        mpfr_init(r27775);
        mpfr_init(r27776);
        mpfr_init(r27777);
        mpfr_init_set_str(r27778, "2", 10, MPFR_RNDN);
        mpfr_init(r27779);
        mpfr_init(r27780);
        mpfr_init(r27781);
        mpfr_init(r27782);
        mpfr_init(r27783);
        mpfr_init(r27784);
        mpfr_init(r27785);
        mpfr_init_set_str(r27786, "-1", 10, MPFR_RNDN);
        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);
        mpfr_init(r27797);
        mpfr_init(r27798);
}

double f_fm(double x) {
        mpfr_set_d(r27762, x, MPFR_RNDN);
        mpfr_abs(r27763, r27762, MPFR_RNDN);
        mpfr_mul(r27764, r27763, r27763, MPFR_RNDN);
        mpfr_exp(r27765, r27764, MPFR_RNDN);
        mpfr_const_pi(r27766, MPFR_RNDN);
        mpfr_sqrt(r27767, r27766, MPFR_RNDN);
        ;
        mpfr_div(r27769, r27768, r27763, MPFR_RNDN);
        mpfr_div(r27770, r27767, r27769, MPFR_RNDN);
        mpfr_div(r27771, r27765, r27770, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27774, r27772, r27773, MPFR_RNDN);
        mpfr_add(r27775, r27772, r27768, MPFR_RNDN);
        mpfr_pow(r27776, r27769, r27775, MPFR_RNDN);
        mpfr_mul(r27777, r27774, r27776, MPFR_RNDN);
        ;
        mpfr_div(r27779, r27768, r27778, MPFR_RNDN);
        mpfr_div(r27780, r27779, r27763, MPFR_RNDN);
        mpfr_div(r27781, r27780, r27763, MPFR_RNDN);
        mpfr_add(r27782, r27781, r27768, MPFR_RNDN);
        mpfr_add(r27783, r27777, r27782, MPFR_RNDN);
        mpfr_mul(r27784, r27771, r27783, MPFR_RNDN);
        mpfr_div(r27785, r27769, r27764, MPFR_RNDN);
        ;
        mpfr_sub(r27787, r27786, r27772, MPFR_RNDN);
        mpfr_pow(r27788, r27763, r27787, MPFR_RNDN);
        mpfr_mul(r27789, r27785, r27788, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27792, r27790, r27791, MPFR_RNDN);
        mpfr_sqrt(r27793, r27767, MPFR_RNDN);
        mpfr_mul(r27794, r27793, r27793, MPFR_RNDN);
        mpfr_div(r27795, r27792, r27794, MPFR_RNDN);
        mpfr_mul(r27796, r27795, r27765, MPFR_RNDN);
        mpfr_mul(r27797, r27789, r27796, MPFR_RNDN);
        mpfr_add(r27798, r27784, r27797, MPFR_RNDN);
        return mpfr_get_d(r27798, MPFR_RNDN);
}

static mpfr_t r27799, r27800, r27801, r27802, r27803, r27804, r27805, r27806, r27807, r27808, r27809, r27810, r27811, r27812, r27813, r27814, r27815, r27816, r27817, r27818, r27819, r27820, r27821, r27822, r27823, r27824, r27825, r27826, r27827, r27828, r27829, r27830, r27831, r27832, r27833, r27834, r27835;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27799);
        mpfr_init(r27800);
        mpfr_init(r27801);
        mpfr_init(r27802);
        mpfr_init(r27803);
        mpfr_init(r27804);
        mpfr_init_set_str(r27805, "1", 10, MPFR_RNDN);
        mpfr_init(r27806);
        mpfr_init(r27807);
        mpfr_init(r27808);
        mpfr_init_set_str(r27809, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27810, "4", 10, MPFR_RNDN);
        mpfr_init(r27811);
        mpfr_init(r27812);
        mpfr_init(r27813);
        mpfr_init(r27814);
        mpfr_init_set_str(r27815, "2", 10, MPFR_RNDN);
        mpfr_init(r27816);
        mpfr_init(r27817);
        mpfr_init(r27818);
        mpfr_init(r27819);
        mpfr_init(r27820);
        mpfr_init(r27821);
        mpfr_init(r27822);
        mpfr_init_set_str(r27823, "-1", 10, MPFR_RNDN);
        mpfr_init(r27824);
        mpfr_init(r27825);
        mpfr_init(r27826);
        mpfr_init_set_str(r27827, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27828, "8", 10, MPFR_RNDN);
        mpfr_init(r27829);
        mpfr_init(r27830);
        mpfr_init(r27831);
        mpfr_init(r27832);
        mpfr_init(r27833);
        mpfr_init(r27834);
        mpfr_init(r27835);
}

double f_dm(double x) {
        mpfr_set_d(r27799, x, MPFR_RNDN);
        mpfr_abs(r27800, r27799, MPFR_RNDN);
        mpfr_mul(r27801, r27800, r27800, MPFR_RNDN);
        mpfr_exp(r27802, r27801, MPFR_RNDN);
        mpfr_const_pi(r27803, MPFR_RNDN);
        mpfr_sqrt(r27804, r27803, MPFR_RNDN);
        ;
        mpfr_div(r27806, r27805, r27800, MPFR_RNDN);
        mpfr_div(r27807, r27804, r27806, MPFR_RNDN);
        mpfr_div(r27808, r27802, r27807, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27811, r27809, r27810, MPFR_RNDN);
        mpfr_add(r27812, r27809, r27805, MPFR_RNDN);
        mpfr_pow(r27813, r27806, r27812, MPFR_RNDN);
        mpfr_mul(r27814, r27811, r27813, MPFR_RNDN);
        ;
        mpfr_div(r27816, r27805, r27815, MPFR_RNDN);
        mpfr_div(r27817, r27816, r27800, MPFR_RNDN);
        mpfr_div(r27818, r27817, r27800, MPFR_RNDN);
        mpfr_add(r27819, r27818, r27805, MPFR_RNDN);
        mpfr_add(r27820, r27814, r27819, MPFR_RNDN);
        mpfr_mul(r27821, r27808, r27820, MPFR_RNDN);
        mpfr_div(r27822, r27806, r27801, MPFR_RNDN);
        ;
        mpfr_sub(r27824, r27823, r27809, MPFR_RNDN);
        mpfr_pow(r27825, r27800, r27824, MPFR_RNDN);
        mpfr_mul(r27826, r27822, r27825, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27829, r27827, r27828, MPFR_RNDN);
        mpfr_sqrt(r27830, r27804, MPFR_RNDN);
        mpfr_mul(r27831, r27830, r27830, MPFR_RNDN);
        mpfr_div(r27832, r27829, r27831, MPFR_RNDN);
        mpfr_mul(r27833, r27832, r27802, MPFR_RNDN);
        mpfr_mul(r27834, r27826, r27833, MPFR_RNDN);
        mpfr_add(r27835, r27821, r27834, MPFR_RNDN);
        return mpfr_get_d(r27835, MPFR_RNDN);
}

