#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 r30632 = 1;
        float r30633 = atan2(1.0, 0.0);
        float r30634 = sqrt(r30633);
        float r30635 = r30632 / r30634;
        float r30636 = x;
        float r30637 = fabs(r30636);
        float r30638 = r30637 * r30637;
        float r30639 = exp(r30638);
        float r30640 = r30635 * r30639;
        float r30641 = r30632 / r30637;
        float r30642 = 2;
        float r30643 = r30632 / r30642;
        float r30644 = r30641 * r30641;
        float r30645 = r30644 * r30641;
        float r30646 = r30643 * r30645;
        float r30647 = r30641 + r30646;
        float r30648 = 3;
        float r30649 = 4;
        float r30650 = r30648 / r30649;
        float r30651 = r30645 * r30641;
        float r30652 = r30651 * r30641;
        float r30653 = r30650 * r30652;
        float r30654 = r30647 + r30653;
        float r30655 = 15;
        float r30656 = 8;
        float r30657 = r30655 / r30656;
        float r30658 = r30652 * r30641;
        float r30659 = r30658 * r30641;
        float r30660 = r30657 * r30659;
        float r30661 = r30654 + r30660;
        float r30662 = r30640 * r30661;
        return r30662;
}

double f_id(double x) {
        double r30663 = 1;
        double r30664 = atan2(1.0, 0.0);
        double r30665 = sqrt(r30664);
        double r30666 = r30663 / r30665;
        double r30667 = x;
        double r30668 = fabs(r30667);
        double r30669 = r30668 * r30668;
        double r30670 = exp(r30669);
        double r30671 = r30666 * r30670;
        double r30672 = r30663 / r30668;
        double r30673 = 2;
        double r30674 = r30663 / r30673;
        double r30675 = r30672 * r30672;
        double r30676 = r30675 * r30672;
        double r30677 = r30674 * r30676;
        double r30678 = r30672 + r30677;
        double r30679 = 3;
        double r30680 = 4;
        double r30681 = r30679 / r30680;
        double r30682 = r30676 * r30672;
        double r30683 = r30682 * r30672;
        double r30684 = r30681 * r30683;
        double r30685 = r30678 + r30684;
        double r30686 = 15;
        double r30687 = 8;
        double r30688 = r30686 / r30687;
        double r30689 = r30683 * r30672;
        double r30690 = r30689 * r30672;
        double r30691 = r30688 * r30690;
        double r30692 = r30685 + r30691;
        double r30693 = r30671 * r30692;
        return r30693;
}


double f_of(float x) {
        float r30694 = x;
        float r30695 = fabs(r30694);
        float r30696 = r30695 * r30695;
        float r30697 = exp(r30696);
        float r30698 = atan2(1.0, 0.0);
        float r30699 = sqrt(r30698);
        float r30700 = r30697 / r30699;
        float r30701 = 3;
        float r30702 = 4;
        float r30703 = r30701 / r30702;
        float r30704 = r30703 / r30695;
        float r30705 = r30704 / r30696;
        float r30706 = r30705 / r30696;
        float r30707 = 15;
        float r30708 = 8;
        float r30709 = r30707 / r30708;
        float r30710 = r30709 / r30695;
        float r30711 = pow(r30695, r30701);
        float r30712 = r30711 * r30711;
        float r30713 = r30710 / r30712;
        float r30714 = 1;
        float r30715 = r30714 / r30695;
        float r30716 = 2;
        float r30717 = r30714 / r30716;
        float r30718 = r30717 / r30695;
        float r30719 = r30718 / r30696;
        float r30720 = r30715 + r30719;
        float r30721 = r30713 + r30720;
        float r30722 = r30706 + r30721;
        float r30723 = r30700 * r30722;
        return r30723;
}

double f_od(double x) {
        double r30724 = x;
        double r30725 = fabs(r30724);
        double r30726 = r30725 * r30725;
        double r30727 = exp(r30726);
        double r30728 = atan2(1.0, 0.0);
        double r30729 = sqrt(r30728);
        double r30730 = r30727 / r30729;
        double r30731 = 3;
        double r30732 = 4;
        double r30733 = r30731 / r30732;
        double r30734 = r30733 / r30725;
        double r30735 = r30734 / r30726;
        double r30736 = r30735 / r30726;
        double r30737 = 15;
        double r30738 = 8;
        double r30739 = r30737 / r30738;
        double r30740 = r30739 / r30725;
        double r30741 = pow(r30725, r30731);
        double r30742 = r30741 * r30741;
        double r30743 = r30740 / r30742;
        double r30744 = 1;
        double r30745 = r30744 / r30725;
        double r30746 = 2;
        double r30747 = r30744 / r30746;
        double r30748 = r30747 / r30725;
        double r30749 = r30748 / r30726;
        double r30750 = r30745 + r30749;
        double r30751 = r30743 + r30750;
        double r30752 = r30736 + r30751;
        double r30753 = r30730 * r30752;
        return r30753;
}

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 r30754, r30755, r30756, r30757, r30758, r30759, r30760, r30761, r30762, r30763, r30764, r30765, r30766, r30767, r30768, r30769, r30770, r30771, r30772, r30773, r30774, r30775, r30776, r30777, r30778, r30779, r30780, r30781, r30782, r30783, r30784;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30754, "1", 10, MPFR_RNDN);
        mpfr_init(r30755);
        mpfr_init(r30756);
        mpfr_init(r30757);
        mpfr_init(r30758);
        mpfr_init(r30759);
        mpfr_init(r30760);
        mpfr_init(r30761);
        mpfr_init(r30762);
        mpfr_init(r30763);
        mpfr_init_set_str(r30764, "2", 10, MPFR_RNDN);
        mpfr_init(r30765);
        mpfr_init(r30766);
        mpfr_init(r30767);
        mpfr_init(r30768);
        mpfr_init(r30769);
        mpfr_init_set_str(r30770, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r30771, "4", 10, MPFR_RNDN);
        mpfr_init(r30772);
        mpfr_init(r30773);
        mpfr_init(r30774);
        mpfr_init(r30775);
        mpfr_init(r30776);
        mpfr_init_set_str(r30777, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30778, "8", 10, MPFR_RNDN);
        mpfr_init(r30779);
        mpfr_init(r30780);
        mpfr_init(r30781);
        mpfr_init(r30782);
        mpfr_init(r30783);
        mpfr_init(r30784);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30755, MPFR_RNDN);
        mpfr_sqrt(r30756, r30755, MPFR_RNDN);
        mpfr_div(r30757, r30754, r30756, MPFR_RNDN);
        mpfr_set_d(r30758, x, MPFR_RNDN);
        mpfr_abs(r30759, r30758, MPFR_RNDN);
        mpfr_mul(r30760, r30759, r30759, MPFR_RNDN);
        mpfr_exp(r30761, r30760, MPFR_RNDN);
        mpfr_mul(r30762, r30757, r30761, MPFR_RNDN);
        mpfr_div(r30763, r30754, r30759, MPFR_RNDN);
        ;
        mpfr_div(r30765, r30754, r30764, MPFR_RNDN);
        mpfr_mul(r30766, r30763, r30763, MPFR_RNDN);
        mpfr_mul(r30767, r30766, r30763, MPFR_RNDN);
        mpfr_mul(r30768, r30765, r30767, MPFR_RNDN);
        mpfr_add(r30769, r30763, r30768, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30772, r30770, r30771, MPFR_RNDN);
        mpfr_mul(r30773, r30767, r30763, MPFR_RNDN);
        mpfr_mul(r30774, r30773, r30763, MPFR_RNDN);
        mpfr_mul(r30775, r30772, r30774, MPFR_RNDN);
        mpfr_add(r30776, r30769, r30775, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30779, r30777, r30778, MPFR_RNDN);
        mpfr_mul(r30780, r30774, r30763, MPFR_RNDN);
        mpfr_mul(r30781, r30780, r30763, MPFR_RNDN);
        mpfr_mul(r30782, r30779, r30781, MPFR_RNDN);
        mpfr_add(r30783, r30776, r30782, MPFR_RNDN);
        mpfr_mul(r30784, r30762, r30783, MPFR_RNDN);
        return mpfr_get_d(r30784, MPFR_RNDN);
}

static mpfr_t r30785, r30786, r30787, r30788, r30789, r30790, r30791, r30792, r30793, r30794, r30795, r30796, r30797, r30798, r30799, r30800, r30801, r30802, r30803, r30804, r30805, r30806, r30807, r30808, r30809, r30810, r30811, r30812, r30813, r30814;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r30785);
        mpfr_init(r30786);
        mpfr_init(r30787);
        mpfr_init(r30788);
        mpfr_init(r30789);
        mpfr_init(r30790);
        mpfr_init(r30791);
        mpfr_init_set_str(r30792, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r30793, "4", 10, MPFR_RNDN);
        mpfr_init(r30794);
        mpfr_init(r30795);
        mpfr_init(r30796);
        mpfr_init(r30797);
        mpfr_init_set_str(r30798, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30799, "8", 10, MPFR_RNDN);
        mpfr_init(r30800);
        mpfr_init(r30801);
        mpfr_init(r30802);
        mpfr_init(r30803);
        mpfr_init(r30804);
        mpfr_init_set_str(r30805, "1", 10, MPFR_RNDN);
        mpfr_init(r30806);
        mpfr_init_set_str(r30807, "2", 10, MPFR_RNDN);
        mpfr_init(r30808);
        mpfr_init(r30809);
        mpfr_init(r30810);
        mpfr_init(r30811);
        mpfr_init(r30812);
        mpfr_init(r30813);
        mpfr_init(r30814);
}

double f_fm(double x) {
        mpfr_set_d(r30785, x, MPFR_RNDN);
        mpfr_abs(r30786, r30785, MPFR_RNDN);
        mpfr_mul(r30787, r30786, r30786, MPFR_RNDN);
        mpfr_exp(r30788, r30787, MPFR_RNDN);
        mpfr_const_pi(r30789, MPFR_RNDN);
        mpfr_sqrt(r30790, r30789, MPFR_RNDN);
        mpfr_div(r30791, r30788, r30790, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30794, r30792, r30793, MPFR_RNDN);
        mpfr_div(r30795, r30794, r30786, MPFR_RNDN);
        mpfr_div(r30796, r30795, r30787, MPFR_RNDN);
        mpfr_div(r30797, r30796, r30787, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30800, r30798, r30799, MPFR_RNDN);
        mpfr_div(r30801, r30800, r30786, MPFR_RNDN);
        mpfr_pow(r30802, r30786, r30792, MPFR_RNDN);
        mpfr_mul(r30803, r30802, r30802, MPFR_RNDN);
        mpfr_div(r30804, r30801, r30803, MPFR_RNDN);
        ;
        mpfr_div(r30806, r30805, r30786, MPFR_RNDN);
        ;
        mpfr_div(r30808, r30805, r30807, MPFR_RNDN);
        mpfr_div(r30809, r30808, r30786, MPFR_RNDN);
        mpfr_div(r30810, r30809, r30787, MPFR_RNDN);
        mpfr_add(r30811, r30806, r30810, MPFR_RNDN);
        mpfr_add(r30812, r30804, r30811, MPFR_RNDN);
        mpfr_add(r30813, r30797, r30812, MPFR_RNDN);
        mpfr_mul(r30814, r30791, r30813, MPFR_RNDN);
        return mpfr_get_d(r30814, MPFR_RNDN);
}

static mpfr_t r30815, r30816, r30817, r30818, r30819, r30820, r30821, r30822, r30823, r30824, r30825, r30826, r30827, r30828, r30829, r30830, r30831, r30832, r30833, r30834, r30835, r30836, r30837, r30838, r30839, r30840, r30841, r30842, r30843, r30844;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r30815);
        mpfr_init(r30816);
        mpfr_init(r30817);
        mpfr_init(r30818);
        mpfr_init(r30819);
        mpfr_init(r30820);
        mpfr_init(r30821);
        mpfr_init_set_str(r30822, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r30823, "4", 10, MPFR_RNDN);
        mpfr_init(r30824);
        mpfr_init(r30825);
        mpfr_init(r30826);
        mpfr_init(r30827);
        mpfr_init_set_str(r30828, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30829, "8", 10, MPFR_RNDN);
        mpfr_init(r30830);
        mpfr_init(r30831);
        mpfr_init(r30832);
        mpfr_init(r30833);
        mpfr_init(r30834);
        mpfr_init_set_str(r30835, "1", 10, MPFR_RNDN);
        mpfr_init(r30836);
        mpfr_init_set_str(r30837, "2", 10, MPFR_RNDN);
        mpfr_init(r30838);
        mpfr_init(r30839);
        mpfr_init(r30840);
        mpfr_init(r30841);
        mpfr_init(r30842);
        mpfr_init(r30843);
        mpfr_init(r30844);
}

double f_dm(double x) {
        mpfr_set_d(r30815, x, MPFR_RNDN);
        mpfr_abs(r30816, r30815, MPFR_RNDN);
        mpfr_mul(r30817, r30816, r30816, MPFR_RNDN);
        mpfr_exp(r30818, r30817, MPFR_RNDN);
        mpfr_const_pi(r30819, MPFR_RNDN);
        mpfr_sqrt(r30820, r30819, MPFR_RNDN);
        mpfr_div(r30821, r30818, r30820, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30824, r30822, r30823, MPFR_RNDN);
        mpfr_div(r30825, r30824, r30816, MPFR_RNDN);
        mpfr_div(r30826, r30825, r30817, MPFR_RNDN);
        mpfr_div(r30827, r30826, r30817, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30830, r30828, r30829, MPFR_RNDN);
        mpfr_div(r30831, r30830, r30816, MPFR_RNDN);
        mpfr_pow(r30832, r30816, r30822, MPFR_RNDN);
        mpfr_mul(r30833, r30832, r30832, MPFR_RNDN);
        mpfr_div(r30834, r30831, r30833, MPFR_RNDN);
        ;
        mpfr_div(r30836, r30835, r30816, MPFR_RNDN);
        ;
        mpfr_div(r30838, r30835, r30837, MPFR_RNDN);
        mpfr_div(r30839, r30838, r30816, MPFR_RNDN);
        mpfr_div(r30840, r30839, r30817, MPFR_RNDN);
        mpfr_add(r30841, r30836, r30840, MPFR_RNDN);
        mpfr_add(r30842, r30834, r30841, MPFR_RNDN);
        mpfr_add(r30843, r30827, r30842, MPFR_RNDN);
        mpfr_mul(r30844, r30821, r30843, MPFR_RNDN);
        return mpfr_get_d(r30844, MPFR_RNDN);
}

