#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 r27613 = 1;
        float r27614 = atan2(1.0, 0.0);
        float r27615 = sqrt(r27614);
        float r27616 = r27613 / r27615;
        float r27617 = x;
        float r27618 = fabs(r27617);
        float r27619 = r27618 * r27618;
        float r27620 = exp(r27619);
        float r27621 = r27616 * r27620;
        float r27622 = r27613 / r27618;
        float r27623 = 2;
        float r27624 = r27613 / r27623;
        float r27625 = r27622 * r27622;
        float r27626 = r27625 * r27622;
        float r27627 = r27624 * r27626;
        float r27628 = r27622 + r27627;
        float r27629 = 3;
        float r27630 = 4;
        float r27631 = r27629 / r27630;
        float r27632 = r27626 * r27622;
        float r27633 = r27632 * r27622;
        float r27634 = r27631 * r27633;
        float r27635 = r27628 + r27634;
        float r27636 = 15;
        float r27637 = 8;
        float r27638 = r27636 / r27637;
        float r27639 = r27633 * r27622;
        float r27640 = r27639 * r27622;
        float r27641 = r27638 * r27640;
        float r27642 = r27635 + r27641;
        float r27643 = r27621 * r27642;
        return r27643;
}

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


double f_of(float x) {
        float r27675 = 15/8;
        float r27676 = x;
        float r27677 = fabs(r27676);
        float r27678 = 7;
        float r27679 = pow(r27677, r27678);
        float r27680 = 1;
        float r27681 = atan2(1.0, 0.0);
        float r27682 = r27680 / r27681;
        float r27683 = sqrt(r27682);
        float r27684 = r27679 / r27683;
        float r27685 = r27677 * r27677;
        float r27686 = exp(r27685);
        float r27687 = r27684 / r27686;
        float r27688 = r27675 / r27687;
        float r27689 = 2;
        float r27690 = r27680 / r27689;
        float r27691 = r27690 / r27677;
        float r27692 = r27691 / r27677;
        float r27693 = r27692 + r27680;
        float r27694 = r27680 / r27677;
        float r27695 = 3;
        float r27696 = r27695 + r27680;
        float r27697 = pow(r27694, r27696);
        float r27698 = 4;
        float r27699 = r27698 / r27695;
        float r27700 = r27697 / r27699;
        float r27701 = r27693 + r27700;
        float r27702 = sqrt(r27681);
        float r27703 = r27677 * r27702;
        float r27704 = r27703 / r27686;
        float r27705 = r27701 / r27704;
        float r27706 = r27688 + r27705;
        return r27706;
}

double f_od(double x) {
        double r27707 = 15/8;
        double r27708 = x;
        double r27709 = fabs(r27708);
        double r27710 = 7;
        double r27711 = pow(r27709, r27710);
        double r27712 = 1;
        double r27713 = atan2(1.0, 0.0);
        double r27714 = r27712 / r27713;
        double r27715 = sqrt(r27714);
        double r27716 = r27711 / r27715;
        double r27717 = r27709 * r27709;
        double r27718 = exp(r27717);
        double r27719 = r27716 / r27718;
        double r27720 = r27707 / r27719;
        double r27721 = 2;
        double r27722 = r27712 / r27721;
        double r27723 = r27722 / r27709;
        double r27724 = r27723 / r27709;
        double r27725 = r27724 + r27712;
        double r27726 = r27712 / r27709;
        double r27727 = 3;
        double r27728 = r27727 + r27712;
        double r27729 = pow(r27726, r27728);
        double r27730 = 4;
        double r27731 = r27730 / r27727;
        double r27732 = r27729 / r27731;
        double r27733 = r27725 + r27732;
        double r27734 = sqrt(r27713);
        double r27735 = r27709 * r27734;
        double r27736 = r27735 / r27718;
        double r27737 = r27733 / r27736;
        double r27738 = r27720 + r27737;
        return r27738;
}

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 r27739, r27740, r27741, r27742, r27743, r27744, r27745, r27746, r27747, r27748, r27749, r27750, r27751, r27752, r27753, r27754, r27755, r27756, r27757, r27758, r27759, r27760, r27761, r27762, r27763, r27764, r27765, r27766, r27767, r27768, r27769;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27739, "1", 10, MPFR_RNDN);
        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);
        mpfr_init_set_str(r27749, "2", 10, MPFR_RNDN);
        mpfr_init(r27750);
        mpfr_init(r27751);
        mpfr_init(r27752);
        mpfr_init(r27753);
        mpfr_init(r27754);
        mpfr_init_set_str(r27755, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27756, "4", 10, MPFR_RNDN);
        mpfr_init(r27757);
        mpfr_init(r27758);
        mpfr_init(r27759);
        mpfr_init(r27760);
        mpfr_init(r27761);
        mpfr_init_set_str(r27762, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27763, "8", 10, MPFR_RNDN);
        mpfr_init(r27764);
        mpfr_init(r27765);
        mpfr_init(r27766);
        mpfr_init(r27767);
        mpfr_init(r27768);
        mpfr_init(r27769);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27740, MPFR_RNDN);
        mpfr_sqrt(r27741, r27740, MPFR_RNDN);
        mpfr_div(r27742, r27739, r27741, MPFR_RNDN);
        mpfr_set_d(r27743, x, MPFR_RNDN);
        mpfr_abs(r27744, r27743, MPFR_RNDN);
        mpfr_mul(r27745, r27744, r27744, MPFR_RNDN);
        mpfr_exp(r27746, r27745, MPFR_RNDN);
        mpfr_mul(r27747, r27742, r27746, MPFR_RNDN);
        mpfr_div(r27748, r27739, r27744, MPFR_RNDN);
        ;
        mpfr_div(r27750, r27739, r27749, MPFR_RNDN);
        mpfr_mul(r27751, r27748, r27748, MPFR_RNDN);
        mpfr_mul(r27752, r27751, r27748, MPFR_RNDN);
        mpfr_mul(r27753, r27750, r27752, MPFR_RNDN);
        mpfr_add(r27754, r27748, r27753, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27757, r27755, r27756, MPFR_RNDN);
        mpfr_mul(r27758, r27752, r27748, MPFR_RNDN);
        mpfr_mul(r27759, r27758, r27748, MPFR_RNDN);
        mpfr_mul(r27760, r27757, r27759, MPFR_RNDN);
        mpfr_add(r27761, r27754, r27760, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27764, r27762, r27763, MPFR_RNDN);
        mpfr_mul(r27765, r27759, r27748, MPFR_RNDN);
        mpfr_mul(r27766, r27765, r27748, MPFR_RNDN);
        mpfr_mul(r27767, r27764, r27766, MPFR_RNDN);
        mpfr_add(r27768, r27761, r27767, MPFR_RNDN);
        mpfr_mul(r27769, r27747, r27768, MPFR_RNDN);
        return mpfr_get_d(r27769, MPFR_RNDN);
}

static mpfr_t 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, r27799, r27800, r27801;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27770, "15/8", 10, MPFR_RNDN);
        mpfr_init(r27771);
        mpfr_init(r27772);
        mpfr_init_set_str(r27773, "7", 10, MPFR_RNDN);
        mpfr_init(r27774);
        mpfr_init_set_str(r27775, "1", 10, MPFR_RNDN);
        mpfr_init(r27776);
        mpfr_init(r27777);
        mpfr_init(r27778);
        mpfr_init(r27779);
        mpfr_init(r27780);
        mpfr_init(r27781);
        mpfr_init(r27782);
        mpfr_init(r27783);
        mpfr_init_set_str(r27784, "2", 10, MPFR_RNDN);
        mpfr_init(r27785);
        mpfr_init(r27786);
        mpfr_init(r27787);
        mpfr_init(r27788);
        mpfr_init(r27789);
        mpfr_init_set_str(r27790, "3", 10, MPFR_RNDN);
        mpfr_init(r27791);
        mpfr_init(r27792);
        mpfr_init_set_str(r27793, "4", 10, MPFR_RNDN);
        mpfr_init(r27794);
        mpfr_init(r27795);
        mpfr_init(r27796);
        mpfr_init(r27797);
        mpfr_init(r27798);
        mpfr_init(r27799);
        mpfr_init(r27800);
        mpfr_init(r27801);
}

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

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

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

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

