#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Jmat.Real.erf";

double f_if(float x) {
        float r18658 = 1.0f;
        float r18659 = 0.32759109139442444f;
        float r18660 = x;
        float r18661 = fabs(r18660);
        float r18662 = r18659 * r18661;
        float r18663 = r18658 + r18662;
        float r18664 = r18658 / r18663;
        float r18665 = 0.2548295855522156f;
        float r18666 = -0.2844967246055603f;
        float r18667 = 1.421413779258728f;
        float r18668 = -1.453152060508728f;
        float r18669 = 1.0614054203033447f;
        float r18670 = r18664 * r18669;
        float r18671 = r18668 + r18670;
        float r18672 = r18664 * r18671;
        float r18673 = r18667 + r18672;
        float r18674 = r18664 * r18673;
        float r18675 = r18666 + r18674;
        float r18676 = r18664 * r18675;
        float r18677 = r18665 + r18676;
        float r18678 = r18664 * r18677;
        float r18679 = r18661 * r18661;
        float r18680 = -r18679;
        float r18681 = exp(r18680);
        float r18682 = r18678 * r18681;
        float r18683 = r18658 - r18682;
        return r18683;
}

double f_id(double x) {
        double r18684 = 1.0;
        double r18685 = 0.32759109139442444;
        double r18686 = x;
        double r18687 = fabs(r18686);
        double r18688 = r18685 * r18687;
        double r18689 = r18684 + r18688;
        double r18690 = r18684 / r18689;
        double r18691 = 0.2548295855522156;
        double r18692 = -0.2844967246055603;
        double r18693 = 1.421413779258728;
        double r18694 = -1.453152060508728;
        double r18695 = 1.0614054203033447;
        double r18696 = r18690 * r18695;
        double r18697 = r18694 + r18696;
        double r18698 = r18690 * r18697;
        double r18699 = r18693 + r18698;
        double r18700 = r18690 * r18699;
        double r18701 = r18692 + r18700;
        double r18702 = r18690 * r18701;
        double r18703 = r18691 + r18702;
        double r18704 = r18690 * r18703;
        double r18705 = r18687 * r18687;
        double r18706 = -r18705;
        double r18707 = exp(r18706);
        double r18708 = r18704 * r18707;
        double r18709 = r18684 - r18708;
        return r18709;
}


double f_of(float x) {
        float r18710 = 1.0f;
        float r18711 = 0.32759109139442444f;
        float r18712 = x;
        float r18713 = fabs(r18712);
        float r18714 = r18711 * r18713;
        float r18715 = r18710 + r18714;
        float r18716 = r18710 / r18715;
        float r18717 = 0.2548295855522156f;
        float r18718 = -0.2844967246055603f;
        float r18719 = 1.421413779258728f;
        float r18720 = -1.453152060508728f;
        float r18721 = r18720 * r18720;
        float r18722 = 1.0614054203033447f;
        float r18723 = r18716 * r18722;
        float r18724 = r18723 * r18723;
        float r18725 = r18721 - r18724;
        float r18726 = pow(r18725, r18710);
        float r18727 = r18713 * r18711;
        float r18728 = r18710 + r18727;
        float r18729 = r18722 / r18728;
        float r18730 = r18720 - r18729;
        float r18731 = r18726 / r18730;
        float r18732 = r18716 * r18731;
        float r18733 = r18719 + r18732;
        float r18734 = r18716 * r18733;
        float r18735 = r18718 + r18734;
        float r18736 = r18716 * r18735;
        float r18737 = r18717 + r18736;
        float r18738 = r18716 * r18737;
        float r18739 = r18713 * r18713;
        float r18740 = -r18739;
        float r18741 = exp(r18740);
        float r18742 = r18738 * r18741;
        float r18743 = r18710 - r18742;
        return r18743;
}

double f_od(double x) {
        double r18744 = 1.0;
        double r18745 = 0.32759109139442444;
        double r18746 = x;
        double r18747 = fabs(r18746);
        double r18748 = r18745 * r18747;
        double r18749 = r18744 + r18748;
        double r18750 = r18744 / r18749;
        double r18751 = 0.2548295855522156;
        double r18752 = -0.2844967246055603;
        double r18753 = 1.421413779258728;
        double r18754 = -1.453152060508728;
        double r18755 = r18754 * r18754;
        double r18756 = 1.0614054203033447;
        double r18757 = r18750 * r18756;
        double r18758 = r18757 * r18757;
        double r18759 = r18755 - r18758;
        double r18760 = pow(r18759, r18744);
        double r18761 = r18747 * r18745;
        double r18762 = r18744 + r18761;
        double r18763 = r18756 / r18762;
        double r18764 = r18754 - r18763;
        double r18765 = r18760 / r18764;
        double r18766 = r18750 * r18765;
        double r18767 = r18753 + r18766;
        double r18768 = r18750 * r18767;
        double r18769 = r18752 + r18768;
        double r18770 = r18750 * r18769;
        double r18771 = r18751 + r18770;
        double r18772 = r18750 * r18771;
        double r18773 = r18747 * r18747;
        double r18774 = -r18773;
        double r18775 = exp(r18774);
        double r18776 = r18772 * r18775;
        double r18777 = r18744 - r18776;
        return r18777;
}

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 r18778, r18779, r18780, r18781, r18782, r18783, r18784, r18785, r18786, r18787, r18788, r18789, r18790, r18791, r18792, r18793, r18794, r18795, r18796, r18797, r18798, r18799, r18800, r18801, r18802, r18803;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18778, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18779, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18780);
        mpfr_init(r18781);
        mpfr_init(r18782);
        mpfr_init(r18783);
        mpfr_init(r18784);
        mpfr_init_set_str(r18785, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18786, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18787, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18788, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r18789, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18790);
        mpfr_init(r18791);
        mpfr_init(r18792);
        mpfr_init(r18793);
        mpfr_init(r18794);
        mpfr_init(r18795);
        mpfr_init(r18796);
        mpfr_init(r18797);
        mpfr_init(r18798);
        mpfr_init(r18799);
        mpfr_init(r18800);
        mpfr_init(r18801);
        mpfr_init(r18802);
        mpfr_init(r18803);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r18780, x, MPFR_RNDN);
        mpfr_abs(r18781, r18780, MPFR_RNDN);
        mpfr_mul(r18782, r18779, r18781, MPFR_RNDN);
        mpfr_add(r18783, r18778, r18782, MPFR_RNDN);
        mpfr_div(r18784, r18778, r18783, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r18790, r18784, r18789, MPFR_RNDN);
        mpfr_add(r18791, r18788, r18790, MPFR_RNDN);
        mpfr_mul(r18792, r18784, r18791, MPFR_RNDN);
        mpfr_add(r18793, r18787, r18792, MPFR_RNDN);
        mpfr_mul(r18794, r18784, r18793, MPFR_RNDN);
        mpfr_add(r18795, r18786, r18794, MPFR_RNDN);
        mpfr_mul(r18796, r18784, r18795, MPFR_RNDN);
        mpfr_add(r18797, r18785, r18796, MPFR_RNDN);
        mpfr_mul(r18798, r18784, r18797, MPFR_RNDN);
        mpfr_mul(r18799, r18781, r18781, MPFR_RNDN);
        mpfr_neg(r18800, r18799, MPFR_RNDN);
        mpfr_exp(r18801, r18800, MPFR_RNDN);
        mpfr_mul(r18802, r18798, r18801, MPFR_RNDN);
        mpfr_sub(r18803, r18778, r18802, MPFR_RNDN);
        return mpfr_get_d(r18803, MPFR_RNDN);
}

static mpfr_t r18804, r18805, r18806, r18807, r18808, r18809, r18810, r18811, r18812, r18813, r18814, r18815, r18816, r18817, r18818, r18819, r18820, r18821, r18822, r18823, r18824, r18825, r18826, r18827, r18828, r18829, r18830, r18831, r18832, r18833, r18834, r18835, r18836, r18837;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18804, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18805, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18806);
        mpfr_init(r18807);
        mpfr_init(r18808);
        mpfr_init(r18809);
        mpfr_init(r18810);
        mpfr_init_set_str(r18811, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18812, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18813, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18814, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18815);
        mpfr_init_set_str(r18816, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18817);
        mpfr_init(r18818);
        mpfr_init(r18819);
        mpfr_init(r18820);
        mpfr_init(r18821);
        mpfr_init(r18822);
        mpfr_init(r18823);
        mpfr_init(r18824);
        mpfr_init(r18825);
        mpfr_init(r18826);
        mpfr_init(r18827);
        mpfr_init(r18828);
        mpfr_init(r18829);
        mpfr_init(r18830);
        mpfr_init(r18831);
        mpfr_init(r18832);
        mpfr_init(r18833);
        mpfr_init(r18834);
        mpfr_init(r18835);
        mpfr_init(r18836);
        mpfr_init(r18837);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r18806, x, MPFR_RNDN);
        mpfr_abs(r18807, r18806, MPFR_RNDN);
        mpfr_mul(r18808, r18805, r18807, MPFR_RNDN);
        mpfr_add(r18809, r18804, r18808, MPFR_RNDN);
        mpfr_div(r18810, r18804, r18809, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r18815, r18814, MPFR_RNDN);
        ;
        mpfr_mul(r18817, r18810, r18816, MPFR_RNDN);
        mpfr_sqr(r18818, r18817, MPFR_RNDN);
        mpfr_sub(r18819, r18815, r18818, MPFR_RNDN);
        mpfr_pow(r18820, r18819, r18804, MPFR_RNDN);
        mpfr_mul(r18821, r18807, r18805, MPFR_RNDN);
        mpfr_add(r18822, r18804, r18821, MPFR_RNDN);
        mpfr_div(r18823, r18816, r18822, MPFR_RNDN);
        mpfr_sub(r18824, r18814, r18823, MPFR_RNDN);
        mpfr_div(r18825, r18820, r18824, MPFR_RNDN);
        mpfr_mul(r18826, r18810, r18825, MPFR_RNDN);
        mpfr_add(r18827, r18813, r18826, MPFR_RNDN);
        mpfr_mul(r18828, r18810, r18827, MPFR_RNDN);
        mpfr_add(r18829, r18812, r18828, MPFR_RNDN);
        mpfr_mul(r18830, r18810, r18829, MPFR_RNDN);
        mpfr_add(r18831, r18811, r18830, MPFR_RNDN);
        mpfr_mul(r18832, r18810, r18831, MPFR_RNDN);
        mpfr_mul(r18833, r18807, r18807, MPFR_RNDN);
        mpfr_neg(r18834, r18833, MPFR_RNDN);
        mpfr_exp(r18835, r18834, MPFR_RNDN);
        mpfr_mul(r18836, r18832, r18835, MPFR_RNDN);
        mpfr_sub(r18837, r18804, r18836, MPFR_RNDN);
        return mpfr_get_d(r18837, MPFR_RNDN);
}

static mpfr_t r18838, r18839, r18840, r18841, r18842, r18843, r18844, r18845, r18846, r18847, r18848, r18849, r18850, r18851, r18852, r18853, r18854, r18855, r18856, r18857, r18858, r18859, r18860, r18861, r18862, r18863, r18864, r18865, r18866, r18867, r18868, r18869, r18870, r18871;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18838, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18839, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18840);
        mpfr_init(r18841);
        mpfr_init(r18842);
        mpfr_init(r18843);
        mpfr_init(r18844);
        mpfr_init_set_str(r18845, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18846, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18847, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18848, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18849);
        mpfr_init_set_str(r18850, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18851);
        mpfr_init(r18852);
        mpfr_init(r18853);
        mpfr_init(r18854);
        mpfr_init(r18855);
        mpfr_init(r18856);
        mpfr_init(r18857);
        mpfr_init(r18858);
        mpfr_init(r18859);
        mpfr_init(r18860);
        mpfr_init(r18861);
        mpfr_init(r18862);
        mpfr_init(r18863);
        mpfr_init(r18864);
        mpfr_init(r18865);
        mpfr_init(r18866);
        mpfr_init(r18867);
        mpfr_init(r18868);
        mpfr_init(r18869);
        mpfr_init(r18870);
        mpfr_init(r18871);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r18840, x, MPFR_RNDN);
        mpfr_abs(r18841, r18840, MPFR_RNDN);
        mpfr_mul(r18842, r18839, r18841, MPFR_RNDN);
        mpfr_add(r18843, r18838, r18842, MPFR_RNDN);
        mpfr_div(r18844, r18838, r18843, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r18849, r18848, MPFR_RNDN);
        ;
        mpfr_mul(r18851, r18844, r18850, MPFR_RNDN);
        mpfr_sqr(r18852, r18851, MPFR_RNDN);
        mpfr_sub(r18853, r18849, r18852, MPFR_RNDN);
        mpfr_pow(r18854, r18853, r18838, MPFR_RNDN);
        mpfr_mul(r18855, r18841, r18839, MPFR_RNDN);
        mpfr_add(r18856, r18838, r18855, MPFR_RNDN);
        mpfr_div(r18857, r18850, r18856, MPFR_RNDN);
        mpfr_sub(r18858, r18848, r18857, MPFR_RNDN);
        mpfr_div(r18859, r18854, r18858, MPFR_RNDN);
        mpfr_mul(r18860, r18844, r18859, MPFR_RNDN);
        mpfr_add(r18861, r18847, r18860, MPFR_RNDN);
        mpfr_mul(r18862, r18844, r18861, MPFR_RNDN);
        mpfr_add(r18863, r18846, r18862, MPFR_RNDN);
        mpfr_mul(r18864, r18844, r18863, MPFR_RNDN);
        mpfr_add(r18865, r18845, r18864, MPFR_RNDN);
        mpfr_mul(r18866, r18844, r18865, MPFR_RNDN);
        mpfr_mul(r18867, r18841, r18841, MPFR_RNDN);
        mpfr_neg(r18868, r18867, MPFR_RNDN);
        mpfr_exp(r18869, r18868, MPFR_RNDN);
        mpfr_mul(r18870, r18866, r18869, MPFR_RNDN);
        mpfr_sub(r18871, r18838, r18870, MPFR_RNDN);
        return mpfr_get_d(r18871, MPFR_RNDN);
}

