#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 r18748 = 1.0f;
        float r18749 = atan2(1.0, 0.0);
        float r18750 = sqrt(r18749);
        float r18751 = r18748 / r18750;
        float r18752 = x;
        float r18753 = fabs(r18752);
        float r18754 = r18753 * r18753;
        float r18755 = exp(r18754);
        float r18756 = r18751 * r18755;
        float r18757 = r18748 / r18753;
        float r18758 = 2.0f;
        float r18759 = r18748 / r18758;
        float r18760 = r18757 * r18757;
        float r18761 = r18760 * r18757;
        float r18762 = r18759 * r18761;
        float r18763 = r18757 + r18762;
        float r18764 = 3.0f;
        float r18765 = 4.0f;
        float r18766 = r18764 / r18765;
        float r18767 = r18761 * r18757;
        float r18768 = r18767 * r18757;
        float r18769 = r18766 * r18768;
        float r18770 = r18763 + r18769;
        float r18771 = 15.0f;
        float r18772 = 8.0f;
        float r18773 = r18771 / r18772;
        float r18774 = r18768 * r18757;
        float r18775 = r18774 * r18757;
        float r18776 = r18773 * r18775;
        float r18777 = r18770 + r18776;
        float r18778 = r18756 * r18777;
        return r18778;
}

double f_id(double x) {
        double r18779 = 1.0;
        double r18780 = atan2(1.0, 0.0);
        double r18781 = sqrt(r18780);
        double r18782 = r18779 / r18781;
        double r18783 = x;
        double r18784 = fabs(r18783);
        double r18785 = r18784 * r18784;
        double r18786 = exp(r18785);
        double r18787 = r18782 * r18786;
        double r18788 = r18779 / r18784;
        double r18789 = 2.0;
        double r18790 = r18779 / r18789;
        double r18791 = r18788 * r18788;
        double r18792 = r18791 * r18788;
        double r18793 = r18790 * r18792;
        double r18794 = r18788 + r18793;
        double r18795 = 3.0;
        double r18796 = 4.0;
        double r18797 = r18795 / r18796;
        double r18798 = r18792 * r18788;
        double r18799 = r18798 * r18788;
        double r18800 = r18797 * r18799;
        double r18801 = r18794 + r18800;
        double r18802 = 15.0;
        double r18803 = 8.0;
        double r18804 = r18802 / r18803;
        double r18805 = r18799 * r18788;
        double r18806 = r18805 * r18788;
        double r18807 = r18804 * r18806;
        double r18808 = r18801 + r18807;
        double r18809 = r18787 * r18808;
        return r18809;
}


double f_of(float x) {
        float r18810 = x;
        float r18811 = fabs(r18810);
        float r18812 = r18811 * r18811;
        float r18813 = exp(r18812);
        float r18814 = atan2(1.0, 0.0);
        float r18815 = sqrt(r18814);
        float r18816 = r18813 / r18815;
        float r18817 = 1.0f;
        float r18818 = 2.0f;
        float r18819 = r18817 / r18818;
        float r18820 = r18811 * (r18811 * r18811);
        float r18821 = r18819 / r18820;
        float r18822 = 15.0f;
        float r18823 = 8.0f;
        float r18824 = r18823 / r18817;
        float r18825 = r18824 * r18811;
        float r18826 = r18822 / r18825;
        float r18827 = 3.0f;
        float r18828 = r18827 + r18827;
        float r18829 = pow(r18811, r18828);
        float r18830 = r18826 / r18829;
        float r18831 = r18821 + r18830;
        float r18832 = r18817 / r18811;
        float r18833 = r18832 * (r18832 * r18832);
        float r18834 = 4.0f;
        float r18835 = r18827 / r18834;
        float r18836 = r18835 / r18811;
        float r18837 = r18811 / r18836;
        float r18838 = r18833 / r18837;
        float r18839 = r18838 + r18832;
        float r18840 = r18831 + r18839;
        float r18841 = r18816 * r18840;
        return r18841;
}

double f_od(double x) {
        double r18842 = x;
        double r18843 = fabs(r18842);
        double r18844 = r18843 * r18843;
        double r18845 = exp(r18844);
        double r18846 = atan2(1.0, 0.0);
        double r18847 = sqrt(r18846);
        double r18848 = r18845 / r18847;
        double r18849 = 1.0;
        double r18850 = 2.0;
        double r18851 = r18849 / r18850;
        double r18852 = r18843 * (r18843 * r18843);
        double r18853 = r18851 / r18852;
        double r18854 = 15.0;
        double r18855 = 8.0;
        double r18856 = r18855 / r18849;
        double r18857 = r18856 * r18843;
        double r18858 = r18854 / r18857;
        double r18859 = 3.0;
        double r18860 = r18859 + r18859;
        double r18861 = pow(r18843, r18860);
        double r18862 = r18858 / r18861;
        double r18863 = r18853 + r18862;
        double r18864 = r18849 / r18843;
        double r18865 = r18864 * (r18864 * r18864);
        double r18866 = 4.0;
        double r18867 = r18859 / r18866;
        double r18868 = r18867 / r18843;
        double r18869 = r18843 / r18868;
        double r18870 = r18865 / r18869;
        double r18871 = r18870 + r18864;
        double r18872 = r18863 + r18871;
        double r18873 = r18848 * r18872;
        return r18873;
}

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 r18874, r18875, r18876, r18877, r18878, r18879, r18880, r18881, r18882, r18883, r18884, r18885, r18886, r18887, r18888, r18889, r18890, r18891, r18892, r18893, r18894, r18895, r18896, r18897, r18898, r18899, r18900, r18901, r18902, r18903, r18904;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18874, "1", 10, MPFR_RNDN);
        mpfr_init(r18875);
        mpfr_init(r18876);
        mpfr_init(r18877);
        mpfr_init(r18878);
        mpfr_init(r18879);
        mpfr_init(r18880);
        mpfr_init(r18881);
        mpfr_init(r18882);
        mpfr_init(r18883);
        mpfr_init_set_str(r18884, "2", 10, MPFR_RNDN);
        mpfr_init(r18885);
        mpfr_init(r18886);
        mpfr_init(r18887);
        mpfr_init(r18888);
        mpfr_init(r18889);
        mpfr_init_set_str(r18890, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r18891, "4", 10, MPFR_RNDN);
        mpfr_init(r18892);
        mpfr_init(r18893);
        mpfr_init(r18894);
        mpfr_init(r18895);
        mpfr_init(r18896);
        mpfr_init_set_str(r18897, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18898, "8", 10, MPFR_RNDN);
        mpfr_init(r18899);
        mpfr_init(r18900);
        mpfr_init(r18901);
        mpfr_init(r18902);
        mpfr_init(r18903);
        mpfr_init(r18904);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r18875, MPFR_RNDN);
        mpfr_sqrt(r18876, r18875, MPFR_RNDN);
        mpfr_div(r18877, r18874, r18876, MPFR_RNDN);
        mpfr_set_d(r18878, x, MPFR_RNDN);
        mpfr_abs(r18879, r18878, MPFR_RNDN);
        mpfr_mul(r18880, r18879, r18879, MPFR_RNDN);
        mpfr_exp(r18881, r18880, MPFR_RNDN);
        mpfr_mul(r18882, r18877, r18881, MPFR_RNDN);
        mpfr_div(r18883, r18874, r18879, MPFR_RNDN);
        ;
        mpfr_div(r18885, r18874, r18884, MPFR_RNDN);
        mpfr_mul(r18886, r18883, r18883, MPFR_RNDN);
        mpfr_mul(r18887, r18886, r18883, MPFR_RNDN);
        mpfr_mul(r18888, r18885, r18887, MPFR_RNDN);
        mpfr_add(r18889, r18883, r18888, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18892, r18890, r18891, MPFR_RNDN);
        mpfr_mul(r18893, r18887, r18883, MPFR_RNDN);
        mpfr_mul(r18894, r18893, r18883, MPFR_RNDN);
        mpfr_mul(r18895, r18892, r18894, MPFR_RNDN);
        mpfr_add(r18896, r18889, r18895, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18899, r18897, r18898, MPFR_RNDN);
        mpfr_mul(r18900, r18894, r18883, MPFR_RNDN);
        mpfr_mul(r18901, r18900, r18883, MPFR_RNDN);
        mpfr_mul(r18902, r18899, r18901, MPFR_RNDN);
        mpfr_add(r18903, r18896, r18902, MPFR_RNDN);
        mpfr_mul(r18904, r18882, r18903, MPFR_RNDN);
        return mpfr_get_d(r18904, MPFR_RNDN);
}

static mpfr_t r18905, r18906, r18907, r18908, r18909, r18910, r18911, r18912, r18913, r18914, r18915, r18916, r18917, r18918, r18919, r18920, r18921, r18922, r18923, r18924, r18925, r18926, r18927, r18928, r18929, r18930, r18931, r18932, r18933, r18934, r18935, r18936;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18905);
        mpfr_init(r18906);
        mpfr_init(r18907);
        mpfr_init(r18908);
        mpfr_init(r18909);
        mpfr_init(r18910);
        mpfr_init(r18911);
        mpfr_init_set_str(r18912, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18913, "2", 10, MPFR_RNDN);
        mpfr_init(r18914);
        mpfr_init(r18915);
        mpfr_init(r18916);
        mpfr_init_set_str(r18917, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18918, "8", 10, MPFR_RNDN);
        mpfr_init(r18919);
        mpfr_init(r18920);
        mpfr_init(r18921);
        mpfr_init_set_str(r18922, "3", 10, MPFR_RNDN);
        mpfr_init(r18923);
        mpfr_init(r18924);
        mpfr_init(r18925);
        mpfr_init(r18926);
        mpfr_init(r18927);
        mpfr_init(r18928);
        mpfr_init_set_str(r18929, "4", 10, MPFR_RNDN);
        mpfr_init(r18930);
        mpfr_init(r18931);
        mpfr_init(r18932);
        mpfr_init(r18933);
        mpfr_init(r18934);
        mpfr_init(r18935);
        mpfr_init(r18936);
}

double f_fm(double x) {
        mpfr_set_d(r18905, x, MPFR_RNDN);
        mpfr_abs(r18906, r18905, MPFR_RNDN);
        mpfr_mul(r18907, r18906, r18906, MPFR_RNDN);
        mpfr_exp(r18908, r18907, MPFR_RNDN);
        mpfr_const_pi(r18909, MPFR_RNDN);
        mpfr_sqrt(r18910, r18909, MPFR_RNDN);
        mpfr_div(r18911, r18908, r18910, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18914, r18912, r18913, MPFR_RNDN);
        mpfr_mul(r18915, r18906, r18906, MPFR_RNDN); mpfr_mul(r18915, r18915, r18906, MPFR_RNDN);
        mpfr_div(r18916, r18914, r18915, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18919, r18918, r18912, MPFR_RNDN);
        mpfr_mul(r18920, r18919, r18906, MPFR_RNDN);
        mpfr_div(r18921, r18917, r18920, MPFR_RNDN);
        ;
        mpfr_add(r18923, r18922, r18922, MPFR_RNDN);
        mpfr_pow(r18924, r18906, r18923, MPFR_RNDN);
        mpfr_div(r18925, r18921, r18924, MPFR_RNDN);
        mpfr_add(r18926, r18916, r18925, MPFR_RNDN);
        mpfr_div(r18927, r18912, r18906, MPFR_RNDN);
        mpfr_mul(r18928, r18927, r18927, MPFR_RNDN); mpfr_mul(r18928, r18928, r18927, MPFR_RNDN);
        ;
        mpfr_div(r18930, r18922, r18929, MPFR_RNDN);
        mpfr_div(r18931, r18930, r18906, MPFR_RNDN);
        mpfr_div(r18932, r18906, r18931, MPFR_RNDN);
        mpfr_div(r18933, r18928, r18932, MPFR_RNDN);
        mpfr_add(r18934, r18933, r18927, MPFR_RNDN);
        mpfr_add(r18935, r18926, r18934, MPFR_RNDN);
        mpfr_mul(r18936, r18911, r18935, MPFR_RNDN);
        return mpfr_get_d(r18936, MPFR_RNDN);
}

static mpfr_t r18937, r18938, r18939, r18940, r18941, r18942, r18943, r18944, r18945, r18946, r18947, r18948, r18949, r18950, r18951, r18952, r18953, r18954, r18955, r18956, r18957, r18958, r18959, r18960, r18961, r18962, r18963, r18964, r18965, r18966, r18967, r18968;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18937);
        mpfr_init(r18938);
        mpfr_init(r18939);
        mpfr_init(r18940);
        mpfr_init(r18941);
        mpfr_init(r18942);
        mpfr_init(r18943);
        mpfr_init_set_str(r18944, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18945, "2", 10, MPFR_RNDN);
        mpfr_init(r18946);
        mpfr_init(r18947);
        mpfr_init(r18948);
        mpfr_init_set_str(r18949, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r18950, "8", 10, MPFR_RNDN);
        mpfr_init(r18951);
        mpfr_init(r18952);
        mpfr_init(r18953);
        mpfr_init_set_str(r18954, "3", 10, MPFR_RNDN);
        mpfr_init(r18955);
        mpfr_init(r18956);
        mpfr_init(r18957);
        mpfr_init(r18958);
        mpfr_init(r18959);
        mpfr_init(r18960);
        mpfr_init_set_str(r18961, "4", 10, MPFR_RNDN);
        mpfr_init(r18962);
        mpfr_init(r18963);
        mpfr_init(r18964);
        mpfr_init(r18965);
        mpfr_init(r18966);
        mpfr_init(r18967);
        mpfr_init(r18968);
}

double f_dm(double x) {
        mpfr_set_d(r18937, x, MPFR_RNDN);
        mpfr_abs(r18938, r18937, MPFR_RNDN);
        mpfr_mul(r18939, r18938, r18938, MPFR_RNDN);
        mpfr_exp(r18940, r18939, MPFR_RNDN);
        mpfr_const_pi(r18941, MPFR_RNDN);
        mpfr_sqrt(r18942, r18941, MPFR_RNDN);
        mpfr_div(r18943, r18940, r18942, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18946, r18944, r18945, MPFR_RNDN);
        mpfr_mul(r18947, r18938, r18938, MPFR_RNDN); mpfr_mul(r18947, r18947, r18938, MPFR_RNDN);
        mpfr_div(r18948, r18946, r18947, MPFR_RNDN);
        ;
        ;
        mpfr_div(r18951, r18950, r18944, MPFR_RNDN);
        mpfr_mul(r18952, r18951, r18938, MPFR_RNDN);
        mpfr_div(r18953, r18949, r18952, MPFR_RNDN);
        ;
        mpfr_add(r18955, r18954, r18954, MPFR_RNDN);
        mpfr_pow(r18956, r18938, r18955, MPFR_RNDN);
        mpfr_div(r18957, r18953, r18956, MPFR_RNDN);
        mpfr_add(r18958, r18948, r18957, MPFR_RNDN);
        mpfr_div(r18959, r18944, r18938, MPFR_RNDN);
        mpfr_mul(r18960, r18959, r18959, MPFR_RNDN); mpfr_mul(r18960, r18960, r18959, MPFR_RNDN);
        ;
        mpfr_div(r18962, r18954, r18961, MPFR_RNDN);
        mpfr_div(r18963, r18962, r18938, MPFR_RNDN);
        mpfr_div(r18964, r18938, r18963, MPFR_RNDN);
        mpfr_div(r18965, r18960, r18964, MPFR_RNDN);
        mpfr_add(r18966, r18965, r18959, MPFR_RNDN);
        mpfr_add(r18967, r18958, r18966, MPFR_RNDN);
        mpfr_mul(r18968, r18943, r18967, MPFR_RNDN);
        return mpfr_get_d(r18968, MPFR_RNDN);
}

