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

char *name = "Jmat.Real.erfi, branch x less than or equal to 0.5";

double f_if(float x) {
        float r30732 = 1;
        float r30733 = atan2(1.0, 0.0);
        float r30734 = sqrt(r30733);
        float r30735 = r30732 / r30734;
        float r30736 = 2;
        float r30737 = x;
        float r30738 = fabs(r30737);
        float r30739 = r30736 * r30738;
        float r30740 = 3;
        float r30741 = r30736 / r30740;
        float r30742 = r30738 * r30738;
        float r30743 = r30742 * r30738;
        float r30744 = r30741 * r30743;
        float r30745 = r30739 + r30744;
        float r30746 = 5;
        float r30747 = r30732 / r30746;
        float r30748 = r30743 * r30738;
        float r30749 = r30748 * r30738;
        float r30750 = r30747 * r30749;
        float r30751 = r30745 + r30750;
        float r30752 = 21;
        float r30753 = r30732 / r30752;
        float r30754 = r30749 * r30738;
        float r30755 = r30754 * r30738;
        float r30756 = r30753 * r30755;
        float r30757 = r30751 + r30756;
        float r30758 = r30735 * r30757;
        float r30759 = fabs(r30758);
        return r30759;
}

double f_id(double x) {
        double r30760 = 1;
        double r30761 = atan2(1.0, 0.0);
        double r30762 = sqrt(r30761);
        double r30763 = r30760 / r30762;
        double r30764 = 2;
        double r30765 = x;
        double r30766 = fabs(r30765);
        double r30767 = r30764 * r30766;
        double r30768 = 3;
        double r30769 = r30764 / r30768;
        double r30770 = r30766 * r30766;
        double r30771 = r30770 * r30766;
        double r30772 = r30769 * r30771;
        double r30773 = r30767 + r30772;
        double r30774 = 5;
        double r30775 = r30760 / r30774;
        double r30776 = r30771 * r30766;
        double r30777 = r30776 * r30766;
        double r30778 = r30775 * r30777;
        double r30779 = r30773 + r30778;
        double r30780 = 21;
        double r30781 = r30760 / r30780;
        double r30782 = r30777 * r30766;
        double r30783 = r30782 * r30766;
        double r30784 = r30781 * r30783;
        double r30785 = r30779 + r30784;
        double r30786 = r30763 * r30785;
        double r30787 = fabs(r30786);
        return r30787;
}


double f_of(float x) {
        float r30788 = 2/3;
        float r30789 = x;
        float r30790 = fabs(r30789);
        float r30791 = 3;
        float r30792 = pow(r30790, r30791);
        float r30793 = r30788 * r30792;
        float r30794 = 2;
        float r30795 = r30794 * r30790;
        float r30796 = 1/21;
        float r30797 = 7;
        float r30798 = pow(r30790, r30797);
        float r30799 = r30796 * r30798;
        float r30800 = 1/5;
        float r30801 = 5;
        float r30802 = pow(r30790, r30801);
        float r30803 = r30800 * r30802;
        float r30804 = r30799 + r30803;
        float r30805 = r30795 + r30804;
        float r30806 = r30793 + r30805;
        float r30807 = 1;
        float r30808 = atan2(1.0, 0.0);
        float r30809 = r30807 / r30808;
        float r30810 = sqrt(r30809);
        float r30811 = r30806 * r30810;
        float r30812 = fabs(r30811);
        return r30812;
}

double f_od(double x) {
        double r30813 = 2/3;
        double r30814 = x;
        double r30815 = fabs(r30814);
        double r30816 = 3;
        double r30817 = pow(r30815, r30816);
        double r30818 = r30813 * r30817;
        double r30819 = 2;
        double r30820 = r30819 * r30815;
        double r30821 = 1/21;
        double r30822 = 7;
        double r30823 = pow(r30815, r30822);
        double r30824 = r30821 * r30823;
        double r30825 = 1/5;
        double r30826 = 5;
        double r30827 = pow(r30815, r30826);
        double r30828 = r30825 * r30827;
        double r30829 = r30824 + r30828;
        double r30830 = r30820 + r30829;
        double r30831 = r30818 + r30830;
        double r30832 = 1;
        double r30833 = atan2(1.0, 0.0);
        double r30834 = r30832 / r30833;
        double r30835 = sqrt(r30834);
        double r30836 = r30831 * r30835;
        double r30837 = fabs(r30836);
        return r30837;
}

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 r30838, r30839, r30840, r30841, r30842, r30843, r30844, r30845, r30846, r30847, r30848, r30849, r30850, r30851, r30852, r30853, r30854, r30855, r30856, r30857, r30858, r30859, r30860, r30861, r30862, r30863, r30864, r30865;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30838, "1", 10, MPFR_RNDN);
        mpfr_init(r30839);
        mpfr_init(r30840);
        mpfr_init(r30841);
        mpfr_init_set_str(r30842, "2", 10, MPFR_RNDN);
        mpfr_init(r30843);
        mpfr_init(r30844);
        mpfr_init(r30845);
        mpfr_init_set_str(r30846, "3", 10, MPFR_RNDN);
        mpfr_init(r30847);
        mpfr_init(r30848);
        mpfr_init(r30849);
        mpfr_init(r30850);
        mpfr_init(r30851);
        mpfr_init_set_str(r30852, "5", 10, MPFR_RNDN);
        mpfr_init(r30853);
        mpfr_init(r30854);
        mpfr_init(r30855);
        mpfr_init(r30856);
        mpfr_init(r30857);
        mpfr_init_set_str(r30858, "21", 10, MPFR_RNDN);
        mpfr_init(r30859);
        mpfr_init(r30860);
        mpfr_init(r30861);
        mpfr_init(r30862);
        mpfr_init(r30863);
        mpfr_init(r30864);
        mpfr_init(r30865);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30839, MPFR_RNDN);
        mpfr_sqrt(r30840, r30839, MPFR_RNDN);
        mpfr_div(r30841, r30838, r30840, MPFR_RNDN);
        ;
        mpfr_set_d(r30843, x, MPFR_RNDN);
        mpfr_abs(r30844, r30843, MPFR_RNDN);
        mpfr_mul(r30845, r30842, r30844, MPFR_RNDN);
        ;
        mpfr_div(r30847, r30842, r30846, MPFR_RNDN);
        mpfr_mul(r30848, r30844, r30844, MPFR_RNDN);
        mpfr_mul(r30849, r30848, r30844, MPFR_RNDN);
        mpfr_mul(r30850, r30847, r30849, MPFR_RNDN);
        mpfr_add(r30851, r30845, r30850, MPFR_RNDN);
        ;
        mpfr_div(r30853, r30838, r30852, MPFR_RNDN);
        mpfr_mul(r30854, r30849, r30844, MPFR_RNDN);
        mpfr_mul(r30855, r30854, r30844, MPFR_RNDN);
        mpfr_mul(r30856, r30853, r30855, MPFR_RNDN);
        mpfr_add(r30857, r30851, r30856, MPFR_RNDN);
        ;
        mpfr_div(r30859, r30838, r30858, MPFR_RNDN);
        mpfr_mul(r30860, r30855, r30844, MPFR_RNDN);
        mpfr_mul(r30861, r30860, r30844, MPFR_RNDN);
        mpfr_mul(r30862, r30859, r30861, MPFR_RNDN);
        mpfr_add(r30863, r30857, r30862, MPFR_RNDN);
        mpfr_mul(r30864, r30841, r30863, MPFR_RNDN);
        mpfr_abs(r30865, r30864, MPFR_RNDN);
        return mpfr_get_d(r30865, MPFR_RNDN);
}

static mpfr_t r30866, r30867, r30868, r30869, r30870, r30871, r30872, r30873, r30874, r30875, r30876, r30877, r30878, r30879, r30880, r30881, r30882, r30883, r30884, r30885, r30886, r30887, r30888, r30889, r30890;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30866, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30867);
        mpfr_init(r30868);
        mpfr_init_set_str(r30869, "3", 10, MPFR_RNDN);
        mpfr_init(r30870);
        mpfr_init(r30871);
        mpfr_init_set_str(r30872, "2", 10, MPFR_RNDN);
        mpfr_init(r30873);
        mpfr_init_set_str(r30874, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30875, "7", 10, MPFR_RNDN);
        mpfr_init(r30876);
        mpfr_init(r30877);
        mpfr_init_set_str(r30878, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30879, "5", 10, MPFR_RNDN);
        mpfr_init(r30880);
        mpfr_init(r30881);
        mpfr_init(r30882);
        mpfr_init(r30883);
        mpfr_init(r30884);
        mpfr_init_set_str(r30885, "1", 10, MPFR_RNDN);
        mpfr_init(r30886);
        mpfr_init(r30887);
        mpfr_init(r30888);
        mpfr_init(r30889);
        mpfr_init(r30890);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r30867, x, MPFR_RNDN);
        mpfr_abs(r30868, r30867, MPFR_RNDN);
        ;
        mpfr_pow(r30870, r30868, r30869, MPFR_RNDN);
        mpfr_mul(r30871, r30866, r30870, MPFR_RNDN);
        ;
        mpfr_mul(r30873, r30872, r30868, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30876, r30868, r30875, MPFR_RNDN);
        mpfr_mul(r30877, r30874, r30876, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30880, r30868, r30879, MPFR_RNDN);
        mpfr_mul(r30881, r30878, r30880, MPFR_RNDN);
        mpfr_add(r30882, r30877, r30881, MPFR_RNDN);
        mpfr_add(r30883, r30873, r30882, MPFR_RNDN);
        mpfr_add(r30884, r30871, r30883, MPFR_RNDN);
        ;
        mpfr_const_pi(r30886, MPFR_RNDN);
        mpfr_div(r30887, r30885, r30886, MPFR_RNDN);
        mpfr_sqrt(r30888, r30887, MPFR_RNDN);
        mpfr_mul(r30889, r30884, r30888, MPFR_RNDN);
        mpfr_abs(r30890, r30889, MPFR_RNDN);
        return mpfr_get_d(r30890, MPFR_RNDN);
}

static mpfr_t r30891, r30892, r30893, r30894, r30895, r30896, r30897, r30898, r30899, r30900, r30901, r30902, r30903, r30904, r30905, r30906, r30907, r30908, r30909, r30910, r30911, r30912, r30913, r30914, r30915;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30891, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30892);
        mpfr_init(r30893);
        mpfr_init_set_str(r30894, "3", 10, MPFR_RNDN);
        mpfr_init(r30895);
        mpfr_init(r30896);
        mpfr_init_set_str(r30897, "2", 10, MPFR_RNDN);
        mpfr_init(r30898);
        mpfr_init_set_str(r30899, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30900, "7", 10, MPFR_RNDN);
        mpfr_init(r30901);
        mpfr_init(r30902);
        mpfr_init_set_str(r30903, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30904, "5", 10, MPFR_RNDN);
        mpfr_init(r30905);
        mpfr_init(r30906);
        mpfr_init(r30907);
        mpfr_init(r30908);
        mpfr_init(r30909);
        mpfr_init_set_str(r30910, "1", 10, MPFR_RNDN);
        mpfr_init(r30911);
        mpfr_init(r30912);
        mpfr_init(r30913);
        mpfr_init(r30914);
        mpfr_init(r30915);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r30892, x, MPFR_RNDN);
        mpfr_abs(r30893, r30892, MPFR_RNDN);
        ;
        mpfr_pow(r30895, r30893, r30894, MPFR_RNDN);
        mpfr_mul(r30896, r30891, r30895, MPFR_RNDN);
        ;
        mpfr_mul(r30898, r30897, r30893, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30901, r30893, r30900, MPFR_RNDN);
        mpfr_mul(r30902, r30899, r30901, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30905, r30893, r30904, MPFR_RNDN);
        mpfr_mul(r30906, r30903, r30905, MPFR_RNDN);
        mpfr_add(r30907, r30902, r30906, MPFR_RNDN);
        mpfr_add(r30908, r30898, r30907, MPFR_RNDN);
        mpfr_add(r30909, r30896, r30908, MPFR_RNDN);
        ;
        mpfr_const_pi(r30911, MPFR_RNDN);
        mpfr_div(r30912, r30910, r30911, MPFR_RNDN);
        mpfr_sqrt(r30913, r30912, MPFR_RNDN);
        mpfr_mul(r30914, r30909, r30913, MPFR_RNDN);
        mpfr_abs(r30915, r30914, MPFR_RNDN);
        return mpfr_get_d(r30915, MPFR_RNDN);
}

