#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 r18640 = 1.0f;
        float r18641 = atan2(1.0, 0.0);
        float r18642 = sqrt(r18641);
        float r18643 = r18640 / r18642;
        float r18644 = x;
        float r18645 = fabs(r18644);
        float r18646 = r18645 * r18645;
        float r18647 = exp(r18646);
        float r18648 = r18643 * r18647;
        float r18649 = r18640 / r18645;
        float r18650 = 2.0f;
        float r18651 = r18640 / r18650;
        float r18652 = r18649 * r18649;
        float r18653 = r18652 * r18649;
        float r18654 = r18651 * r18653;
        float r18655 = r18649 + r18654;
        float r18656 = 3.0f;
        float r18657 = 4.0f;
        float r18658 = r18656 / r18657;
        float r18659 = r18653 * r18649;
        float r18660 = r18659 * r18649;
        float r18661 = r18658 * r18660;
        float r18662 = r18655 + r18661;
        float r18663 = 15.0f;
        float r18664 = 8.0f;
        float r18665 = r18663 / r18664;
        float r18666 = r18660 * r18649;
        float r18667 = r18666 * r18649;
        float r18668 = r18665 * r18667;
        float r18669 = r18662 + r18668;
        float r18670 = r18648 * r18669;
        return r18670;
}

double f_id(double x) {
        double r18671 = 1.0;
        double r18672 = atan2(1.0, 0.0);
        double r18673 = sqrt(r18672);
        double r18674 = r18671 / r18673;
        double r18675 = x;
        double r18676 = fabs(r18675);
        double r18677 = r18676 * r18676;
        double r18678 = exp(r18677);
        double r18679 = r18674 * r18678;
        double r18680 = r18671 / r18676;
        double r18681 = 2.0;
        double r18682 = r18671 / r18681;
        double r18683 = r18680 * r18680;
        double r18684 = r18683 * r18680;
        double r18685 = r18682 * r18684;
        double r18686 = r18680 + r18685;
        double r18687 = 3.0;
        double r18688 = 4.0;
        double r18689 = r18687 / r18688;
        double r18690 = r18684 * r18680;
        double r18691 = r18690 * r18680;
        double r18692 = r18689 * r18691;
        double r18693 = r18686 + r18692;
        double r18694 = 15.0;
        double r18695 = 8.0;
        double r18696 = r18694 / r18695;
        double r18697 = r18691 * r18680;
        double r18698 = r18697 * r18680;
        double r18699 = r18696 * r18698;
        double r18700 = r18693 + r18699;
        double r18701 = r18679 * r18700;
        return r18701;
}


double f_of(float x) {
        float r18702 = 1.0f;
        float r18703 = x;
        float r18704 = fabs(r18703);
        float r18705 = r18702 / r18704;
        float r18706 = r18705 * (r18705 * r18705);
        float r18707 = 2.0f;
        float r18708 = r18706 / r18707;
        float r18709 = r18708 + r18705;
        float r18710 = sqrt(r18706);
        float r18711 = r18710 * r18710;
        float r18712 = 3.0f;
        float r18713 = 4.0f;
        float r18714 = r18712 / r18713;
        float r18715 = r18705 * r18714;
        float r18716 = r18711 * r18715;
        float r18717 = r18716 * r18705;
        float r18718 = r18709 + r18717;
        float r18719 = 15.0f;
        float r18720 = 8.0f;
        float r18721 = r18719 / r18720;
        float r18722 = r18706 * r18706;
        float r18723 = r18722 / r18704;
        float r18724 = r18721 * r18723;
        float r18725 = r18718 + r18724;
        float r18726 = atan2(1.0, 0.0);
        float r18727 = sqrt(r18726);
        float r18728 = r18704 * r18704;
        float r18729 = exp(r18728);
        float r18730 = r18727 / r18729;
        float r18731 = r18725 / r18730;
        return r18731;
}

double f_od(double x) {
        double r18732 = 1.0;
        double r18733 = x;
        double r18734 = fabs(r18733);
        double r18735 = r18732 / r18734;
        double r18736 = r18735 * (r18735 * r18735);
        double r18737 = 2.0;
        double r18738 = r18736 / r18737;
        double r18739 = r18738 + r18735;
        double r18740 = sqrt(r18736);
        double r18741 = r18740 * r18740;
        double r18742 = 3.0;
        double r18743 = 4.0;
        double r18744 = r18742 / r18743;
        double r18745 = r18735 * r18744;
        double r18746 = r18741 * r18745;
        double r18747 = r18746 * r18735;
        double r18748 = r18739 + r18747;
        double r18749 = 15.0;
        double r18750 = 8.0;
        double r18751 = r18749 / r18750;
        double r18752 = r18736 * r18736;
        double r18753 = r18752 / r18734;
        double r18754 = r18751 * r18753;
        double r18755 = r18748 + r18754;
        double r18756 = atan2(1.0, 0.0);
        double r18757 = sqrt(r18756);
        double r18758 = r18734 * r18734;
        double r18759 = exp(r18758);
        double r18760 = r18757 / r18759;
        double r18761 = r18755 / r18760;
        return r18761;
}

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 r18762, r18763, r18764, r18765, r18766, r18767, r18768, r18769, r18770, r18771, r18772, r18773, r18774, r18775, r18776, r18777, r18778, r18779, r18780, r18781, r18782, r18783, r18784, r18785, r18786, r18787, r18788, r18789, r18790, r18791, r18792;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18762, "1", 10, MPFR_RNDN);
        mpfr_init(r18763);
        mpfr_init(r18764);
        mpfr_init(r18765);
        mpfr_init(r18766);
        mpfr_init(r18767);
        mpfr_init(r18768);
        mpfr_init(r18769);
        mpfr_init(r18770);
        mpfr_init(r18771);
        mpfr_init_set_str(r18772, "2", 10, MPFR_RNDN);
        mpfr_init(r18773);
        mpfr_init(r18774);
        mpfr_init(r18775);
        mpfr_init(r18776);
        mpfr_init(r18777);
        mpfr_init_set_str(r18778, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18779, "4", 10, MPFR_RNDN);
        mpfr_init(r18780);
        mpfr_init(r18781);
        mpfr_init(r18782);
        mpfr_init(r18783);
        mpfr_init(r18784);
        mpfr_init_set_str(r18785, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18786, "8", 10, MPFR_RNDN);
        mpfr_init(r18787);
        mpfr_init(r18788);
        mpfr_init(r18789);
        mpfr_init(r18790);
        mpfr_init(r18791);
        mpfr_init(r18792);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r18763, MPFR_RNDN);
        mpfr_sqrt(r18764, r18763, MPFR_RNDN);
        mpfr_div(r18765, r18762, r18764, MPFR_RNDN);
        mpfr_set_d(r18766, x, MPFR_RNDN);
        mpfr_abs(r18767, r18766, MPFR_RNDN);
        mpfr_mul(r18768, r18767, r18767, MPFR_RNDN);
        mpfr_exp(r18769, r18768, MPFR_RNDN);
        mpfr_mul(r18770, r18765, r18769, MPFR_RNDN);
        mpfr_div(r18771, r18762, r18767, MPFR_RNDN);
        ;
        mpfr_div(r18773, r18762, r18772, MPFR_RNDN);
        mpfr_mul(r18774, r18771, r18771, MPFR_RNDN);
        mpfr_mul(r18775, r18774, r18771, MPFR_RNDN);
        mpfr_mul(r18776, r18773, r18775, MPFR_RNDN);
        mpfr_add(r18777, r18771, r18776, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18780, r18778, r18779, MPFR_RNDN);
        mpfr_mul(r18781, r18775, r18771, MPFR_RNDN);
        mpfr_mul(r18782, r18781, r18771, MPFR_RNDN);
        mpfr_mul(r18783, r18780, r18782, MPFR_RNDN);
        mpfr_add(r18784, r18777, r18783, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18787, r18785, r18786, MPFR_RNDN);
        mpfr_mul(r18788, r18782, r18771, MPFR_RNDN);
        mpfr_mul(r18789, r18788, r18771, MPFR_RNDN);
        mpfr_mul(r18790, r18787, r18789, MPFR_RNDN);
        mpfr_add(r18791, r18784, r18790, MPFR_RNDN);
        mpfr_mul(r18792, r18770, r18791, MPFR_RNDN);
        return mpfr_get_d(r18792, MPFR_RNDN);
}

static mpfr_t r18793, r18794, r18795, r18796, r18797, r18798, r18799, r18800, r18801, r18802, r18803, r18804, r18805, r18806, r18807, r18808, r18809, r18810, r18811, r18812, r18813, r18814, r18815, r18816, r18817, r18818, r18819, r18820, r18821, r18822;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18793, "1", 10, MPFR_RNDN);
        mpfr_init(r18794);
        mpfr_init(r18795);
        mpfr_init(r18796);
        mpfr_init(r18797);
        mpfr_init_set_str(r18798, "2", 10, MPFR_RNDN);
        mpfr_init(r18799);
        mpfr_init(r18800);
        mpfr_init(r18801);
        mpfr_init(r18802);
        mpfr_init_set_str(r18803, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18804, "4", 10, MPFR_RNDN);
        mpfr_init(r18805);
        mpfr_init(r18806);
        mpfr_init(r18807);
        mpfr_init(r18808);
        mpfr_init(r18809);
        mpfr_init_set_str(r18810, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18811, "8", 10, MPFR_RNDN);
        mpfr_init(r18812);
        mpfr_init(r18813);
        mpfr_init(r18814);
        mpfr_init(r18815);
        mpfr_init(r18816);
        mpfr_init(r18817);
        mpfr_init(r18818);
        mpfr_init(r18819);
        mpfr_init(r18820);
        mpfr_init(r18821);
        mpfr_init(r18822);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r18794, x, MPFR_RNDN);
        mpfr_abs(r18795, r18794, MPFR_RNDN);
        mpfr_div(r18796, r18793, r18795, MPFR_RNDN);
        mpfr_mul(r18797, r18796, r18796, MPFR_RNDN); mpfr_mul(r18797, r18797, r18796, MPFR_RNDN);
        ;
        mpfr_div(r18799, r18797, r18798, MPFR_RNDN);
        mpfr_add(r18800, r18799, r18796, MPFR_RNDN);
        mpfr_sqrt(r18801, r18797, MPFR_RNDN);
        mpfr_sqr(r18802, r18801, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18805, r18803, r18804, MPFR_RNDN);
        mpfr_mul(r18806, r18796, r18805, MPFR_RNDN);
        mpfr_mul(r18807, r18802, r18806, MPFR_RNDN);
        mpfr_mul(r18808, r18807, r18796, MPFR_RNDN);
        mpfr_add(r18809, r18800, r18808, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18812, r18810, r18811, MPFR_RNDN);
        mpfr_sqr(r18813, r18797, MPFR_RNDN);
        mpfr_div(r18814, r18813, r18795, MPFR_RNDN);
        mpfr_mul(r18815, r18812, r18814, MPFR_RNDN);
        mpfr_add(r18816, r18809, r18815, MPFR_RNDN);
        mpfr_const_pi(r18817, MPFR_RNDN);
        mpfr_sqrt(r18818, r18817, MPFR_RNDN);
        mpfr_mul(r18819, r18795, r18795, MPFR_RNDN);
        mpfr_exp(r18820, r18819, MPFR_RNDN);
        mpfr_div(r18821, r18818, r18820, MPFR_RNDN);
        mpfr_div(r18822, r18816, r18821, MPFR_RNDN);
        return mpfr_get_d(r18822, MPFR_RNDN);
}

static mpfr_t r18823, r18824, r18825, r18826, r18827, r18828, r18829, r18830, r18831, r18832, r18833, r18834, r18835, r18836, r18837, r18838, r18839, r18840, r18841, r18842, r18843, r18844, r18845, r18846, r18847, r18848, r18849, r18850, r18851, r18852;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18823, "1", 10, MPFR_RNDN);
        mpfr_init(r18824);
        mpfr_init(r18825);
        mpfr_init(r18826);
        mpfr_init(r18827);
        mpfr_init_set_str(r18828, "2", 10, MPFR_RNDN);
        mpfr_init(r18829);
        mpfr_init(r18830);
        mpfr_init(r18831);
        mpfr_init(r18832);
        mpfr_init_set_str(r18833, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18834, "4", 10, MPFR_RNDN);
        mpfr_init(r18835);
        mpfr_init(r18836);
        mpfr_init(r18837);
        mpfr_init(r18838);
        mpfr_init(r18839);
        mpfr_init_set_str(r18840, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18841, "8", 10, MPFR_RNDN);
        mpfr_init(r18842);
        mpfr_init(r18843);
        mpfr_init(r18844);
        mpfr_init(r18845);
        mpfr_init(r18846);
        mpfr_init(r18847);
        mpfr_init(r18848);
        mpfr_init(r18849);
        mpfr_init(r18850);
        mpfr_init(r18851);
        mpfr_init(r18852);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r18824, x, MPFR_RNDN);
        mpfr_abs(r18825, r18824, MPFR_RNDN);
        mpfr_div(r18826, r18823, r18825, MPFR_RNDN);
        mpfr_mul(r18827, r18826, r18826, MPFR_RNDN); mpfr_mul(r18827, r18827, r18826, MPFR_RNDN);
        ;
        mpfr_div(r18829, r18827, r18828, MPFR_RNDN);
        mpfr_add(r18830, r18829, r18826, MPFR_RNDN);
        mpfr_sqrt(r18831, r18827, MPFR_RNDN);
        mpfr_sqr(r18832, r18831, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18835, r18833, r18834, MPFR_RNDN);
        mpfr_mul(r18836, r18826, r18835, MPFR_RNDN);
        mpfr_mul(r18837, r18832, r18836, MPFR_RNDN);
        mpfr_mul(r18838, r18837, r18826, MPFR_RNDN);
        mpfr_add(r18839, r18830, r18838, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18842, r18840, r18841, MPFR_RNDN);
        mpfr_sqr(r18843, r18827, MPFR_RNDN);
        mpfr_div(r18844, r18843, r18825, MPFR_RNDN);
        mpfr_mul(r18845, r18842, r18844, MPFR_RNDN);
        mpfr_add(r18846, r18839, r18845, MPFR_RNDN);
        mpfr_const_pi(r18847, MPFR_RNDN);
        mpfr_sqrt(r18848, r18847, MPFR_RNDN);
        mpfr_mul(r18849, r18825, r18825, MPFR_RNDN);
        mpfr_exp(r18850, r18849, MPFR_RNDN);
        mpfr_div(r18851, r18848, r18850, MPFR_RNDN);
        mpfr_div(r18852, r18846, r18851, MPFR_RNDN);
        return mpfr_get_d(r18852, MPFR_RNDN);
}

