#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 r27836 = 1;
        float r27837 = atan2(1.0, 0.0);
        float r27838 = sqrt(r27837);
        float r27839 = r27836 / r27838;
        float r27840 = x;
        float r27841 = fabs(r27840);
        float r27842 = r27841 * r27841;
        float r27843 = exp(r27842);
        float r27844 = r27839 * r27843;
        float r27845 = r27836 / r27841;
        float r27846 = 2;
        float r27847 = r27836 / r27846;
        float r27848 = r27845 * r27845;
        float r27849 = r27848 * r27845;
        float r27850 = r27847 * r27849;
        float r27851 = r27845 + r27850;
        float r27852 = 3;
        float r27853 = 4;
        float r27854 = r27852 / r27853;
        float r27855 = r27849 * r27845;
        float r27856 = r27855 * r27845;
        float r27857 = r27854 * r27856;
        float r27858 = r27851 + r27857;
        float r27859 = 15;
        float r27860 = 8;
        float r27861 = r27859 / r27860;
        float r27862 = r27856 * r27845;
        float r27863 = r27862 * r27845;
        float r27864 = r27861 * r27863;
        float r27865 = r27858 + r27864;
        float r27866 = r27844 * r27865;
        return r27866;
}

double f_id(double x) {
        double r27867 = 1;
        double r27868 = atan2(1.0, 0.0);
        double r27869 = sqrt(r27868);
        double r27870 = r27867 / r27869;
        double r27871 = x;
        double r27872 = fabs(r27871);
        double r27873 = r27872 * r27872;
        double r27874 = exp(r27873);
        double r27875 = r27870 * r27874;
        double r27876 = r27867 / r27872;
        double r27877 = 2;
        double r27878 = r27867 / r27877;
        double r27879 = r27876 * r27876;
        double r27880 = r27879 * r27876;
        double r27881 = r27878 * r27880;
        double r27882 = r27876 + r27881;
        double r27883 = 3;
        double r27884 = 4;
        double r27885 = r27883 / r27884;
        double r27886 = r27880 * r27876;
        double r27887 = r27886 * r27876;
        double r27888 = r27885 * r27887;
        double r27889 = r27882 + r27888;
        double r27890 = 15;
        double r27891 = 8;
        double r27892 = r27890 / r27891;
        double r27893 = r27887 * r27876;
        double r27894 = r27893 * r27876;
        double r27895 = r27892 * r27894;
        double r27896 = r27889 + r27895;
        double r27897 = r27875 * r27896;
        return r27897;
}


double f_of(float x) {
        float r27898 = x;
        float r27899 = fabs(r27898);
        float r27900 = r27899 * r27899;
        float r27901 = exp(r27900);
        float r27902 = atan2(1.0, 0.0);
        float r27903 = sqrt(r27902);
        float r27904 = 1;
        float r27905 = r27904 / r27899;
        float r27906 = r27903 / r27905;
        float r27907 = r27901 / r27906;
        float r27908 = 3;
        float r27909 = 4;
        float r27910 = r27908 / r27909;
        float r27911 = r27908 + r27904;
        float r27912 = pow(r27905, r27911);
        float r27913 = r27910 * r27912;
        float r27914 = 2;
        float r27915 = r27904 / r27914;
        float r27916 = r27915 / r27899;
        float r27917 = r27916 / r27899;
        float r27918 = r27917 + r27904;
        float r27919 = r27913 + r27918;
        float r27920 = r27907 * r27919;
        float r27921 = r27905 / r27900;
        float r27922 = -1;
        float r27923 = r27922 - r27908;
        float r27924 = pow(r27899, r27923);
        float r27925 = r27921 * r27924;
        float r27926 = 15;
        float r27927 = 8;
        float r27928 = r27926 / r27927;
        float r27929 = sqrt(r27903);
        float r27930 = r27929 * r27929;
        float r27931 = r27928 / r27930;
        float r27932 = r27931 * r27901;
        float r27933 = r27925 * r27932;
        float r27934 = r27920 + r27933;
        return r27934;
}

double f_od(double x) {
        double r27935 = x;
        double r27936 = fabs(r27935);
        double r27937 = r27936 * r27936;
        double r27938 = exp(r27937);
        double r27939 = atan2(1.0, 0.0);
        double r27940 = sqrt(r27939);
        double r27941 = 1;
        double r27942 = r27941 / r27936;
        double r27943 = r27940 / r27942;
        double r27944 = r27938 / r27943;
        double r27945 = 3;
        double r27946 = 4;
        double r27947 = r27945 / r27946;
        double r27948 = r27945 + r27941;
        double r27949 = pow(r27942, r27948);
        double r27950 = r27947 * r27949;
        double r27951 = 2;
        double r27952 = r27941 / r27951;
        double r27953 = r27952 / r27936;
        double r27954 = r27953 / r27936;
        double r27955 = r27954 + r27941;
        double r27956 = r27950 + r27955;
        double r27957 = r27944 * r27956;
        double r27958 = r27942 / r27937;
        double r27959 = -1;
        double r27960 = r27959 - r27945;
        double r27961 = pow(r27936, r27960);
        double r27962 = r27958 * r27961;
        double r27963 = 15;
        double r27964 = 8;
        double r27965 = r27963 / r27964;
        double r27966 = sqrt(r27940);
        double r27967 = r27966 * r27966;
        double r27968 = r27965 / r27967;
        double r27969 = r27968 * r27938;
        double r27970 = r27962 * r27969;
        double r27971 = r27957 + r27970;
        return r27971;
}

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 r27972, r27973, r27974, r27975, r27976, r27977, r27978, r27979, r27980, r27981, r27982, r27983, r27984, r27985, r27986, r27987, r27988, r27989, r27990, r27991, r27992, r27993, r27994, r27995, r27996, r27997, r27998, r27999, r28000, r28001, r28002;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27972, "1", 10, MPFR_RNDN);
        mpfr_init(r27973);
        mpfr_init(r27974);
        mpfr_init(r27975);
        mpfr_init(r27976);
        mpfr_init(r27977);
        mpfr_init(r27978);
        mpfr_init(r27979);
        mpfr_init(r27980);
        mpfr_init(r27981);
        mpfr_init_set_str(r27982, "2", 10, MPFR_RNDN);
        mpfr_init(r27983);
        mpfr_init(r27984);
        mpfr_init(r27985);
        mpfr_init(r27986);
        mpfr_init(r27987);
        mpfr_init_set_str(r27988, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27989, "4", 10, MPFR_RNDN);
        mpfr_init(r27990);
        mpfr_init(r27991);
        mpfr_init(r27992);
        mpfr_init(r27993);
        mpfr_init(r27994);
        mpfr_init_set_str(r27995, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27996, "8", 10, MPFR_RNDN);
        mpfr_init(r27997);
        mpfr_init(r27998);
        mpfr_init(r27999);
        mpfr_init(r28000);
        mpfr_init(r28001);
        mpfr_init(r28002);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27973, MPFR_RNDN);
        mpfr_sqrt(r27974, r27973, MPFR_RNDN);
        mpfr_div(r27975, r27972, r27974, MPFR_RNDN);
        mpfr_set_d(r27976, x, MPFR_RNDN);
        mpfr_abs(r27977, r27976, MPFR_RNDN);
        mpfr_mul(r27978, r27977, r27977, MPFR_RNDN);
        mpfr_exp(r27979, r27978, MPFR_RNDN);
        mpfr_mul(r27980, r27975, r27979, MPFR_RNDN);
        mpfr_div(r27981, r27972, r27977, MPFR_RNDN);
        ;
        mpfr_div(r27983, r27972, r27982, MPFR_RNDN);
        mpfr_mul(r27984, r27981, r27981, MPFR_RNDN);
        mpfr_mul(r27985, r27984, r27981, MPFR_RNDN);
        mpfr_mul(r27986, r27983, r27985, MPFR_RNDN);
        mpfr_add(r27987, r27981, r27986, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27990, r27988, r27989, MPFR_RNDN);
        mpfr_mul(r27991, r27985, r27981, MPFR_RNDN);
        mpfr_mul(r27992, r27991, r27981, MPFR_RNDN);
        mpfr_mul(r27993, r27990, r27992, MPFR_RNDN);
        mpfr_add(r27994, r27987, r27993, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27997, r27995, r27996, MPFR_RNDN);
        mpfr_mul(r27998, r27992, r27981, MPFR_RNDN);
        mpfr_mul(r27999, r27998, r27981, MPFR_RNDN);
        mpfr_mul(r28000, r27997, r27999, MPFR_RNDN);
        mpfr_add(r28001, r27994, r28000, MPFR_RNDN);
        mpfr_mul(r28002, r27980, r28001, MPFR_RNDN);
        return mpfr_get_d(r28002, MPFR_RNDN);
}

static mpfr_t r28003, r28004, r28005, r28006, r28007, r28008, r28009, r28010, r28011, r28012, r28013, r28014, r28015, r28016, r28017, r28018, r28019, r28020, r28021, r28022, r28023, r28024, r28025, r28026, r28027, r28028, r28029, r28030, r28031, r28032, r28033, r28034, r28035, r28036, r28037, r28038, r28039;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r28003);
        mpfr_init(r28004);
        mpfr_init(r28005);
        mpfr_init(r28006);
        mpfr_init(r28007);
        mpfr_init(r28008);
        mpfr_init_set_str(r28009, "1", 10, MPFR_RNDN);
        mpfr_init(r28010);
        mpfr_init(r28011);
        mpfr_init(r28012);
        mpfr_init_set_str(r28013, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r28014, "4", 10, MPFR_RNDN);
        mpfr_init(r28015);
        mpfr_init(r28016);
        mpfr_init(r28017);
        mpfr_init(r28018);
        mpfr_init_set_str(r28019, "2", 10, MPFR_RNDN);
        mpfr_init(r28020);
        mpfr_init(r28021);
        mpfr_init(r28022);
        mpfr_init(r28023);
        mpfr_init(r28024);
        mpfr_init(r28025);
        mpfr_init(r28026);
        mpfr_init_set_str(r28027, "-1", 10, MPFR_RNDN);
        mpfr_init(r28028);
        mpfr_init(r28029);
        mpfr_init(r28030);
        mpfr_init_set_str(r28031, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r28032, "8", 10, MPFR_RNDN);
        mpfr_init(r28033);
        mpfr_init(r28034);
        mpfr_init(r28035);
        mpfr_init(r28036);
        mpfr_init(r28037);
        mpfr_init(r28038);
        mpfr_init(r28039);
}

double f_fm(double x) {
        mpfr_set_d(r28003, x, MPFR_RNDN);
        mpfr_abs(r28004, r28003, MPFR_RNDN);
        mpfr_mul(r28005, r28004, r28004, MPFR_RNDN);
        mpfr_exp(r28006, r28005, MPFR_RNDN);
        mpfr_const_pi(r28007, MPFR_RNDN);
        mpfr_sqrt(r28008, r28007, MPFR_RNDN);
        ;
        mpfr_div(r28010, r28009, r28004, MPFR_RNDN);
        mpfr_div(r28011, r28008, r28010, MPFR_RNDN);
        mpfr_div(r28012, r28006, r28011, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28015, r28013, r28014, MPFR_RNDN);
        mpfr_add(r28016, r28013, r28009, MPFR_RNDN);
        mpfr_pow(r28017, r28010, r28016, MPFR_RNDN);
        mpfr_mul(r28018, r28015, r28017, MPFR_RNDN);
        ;
        mpfr_div(r28020, r28009, r28019, MPFR_RNDN);
        mpfr_div(r28021, r28020, r28004, MPFR_RNDN);
        mpfr_div(r28022, r28021, r28004, MPFR_RNDN);
        mpfr_add(r28023, r28022, r28009, MPFR_RNDN);
        mpfr_add(r28024, r28018, r28023, MPFR_RNDN);
        mpfr_mul(r28025, r28012, r28024, MPFR_RNDN);
        mpfr_div(r28026, r28010, r28005, MPFR_RNDN);
        ;
        mpfr_sub(r28028, r28027, r28013, MPFR_RNDN);
        mpfr_pow(r28029, r28004, r28028, MPFR_RNDN);
        mpfr_mul(r28030, r28026, r28029, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28033, r28031, r28032, MPFR_RNDN);
        mpfr_sqrt(r28034, r28008, MPFR_RNDN);
        mpfr_mul(r28035, r28034, r28034, MPFR_RNDN);
        mpfr_div(r28036, r28033, r28035, MPFR_RNDN);
        mpfr_mul(r28037, r28036, r28006, MPFR_RNDN);
        mpfr_mul(r28038, r28030, r28037, MPFR_RNDN);
        mpfr_add(r28039, r28025, r28038, MPFR_RNDN);
        return mpfr_get_d(r28039, MPFR_RNDN);
}

static mpfr_t r28040, r28041, r28042, r28043, r28044, r28045, r28046, r28047, r28048, r28049, r28050, r28051, r28052, r28053, r28054, r28055, r28056, r28057, r28058, r28059, r28060, r28061, r28062, r28063, r28064, r28065, r28066, r28067, r28068, r28069, r28070, r28071, r28072, r28073, r28074, r28075, r28076;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r28040);
        mpfr_init(r28041);
        mpfr_init(r28042);
        mpfr_init(r28043);
        mpfr_init(r28044);
        mpfr_init(r28045);
        mpfr_init_set_str(r28046, "1", 10, MPFR_RNDN);
        mpfr_init(r28047);
        mpfr_init(r28048);
        mpfr_init(r28049);
        mpfr_init_set_str(r28050, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r28051, "4", 10, MPFR_RNDN);
        mpfr_init(r28052);
        mpfr_init(r28053);
        mpfr_init(r28054);
        mpfr_init(r28055);
        mpfr_init_set_str(r28056, "2", 10, MPFR_RNDN);
        mpfr_init(r28057);
        mpfr_init(r28058);
        mpfr_init(r28059);
        mpfr_init(r28060);
        mpfr_init(r28061);
        mpfr_init(r28062);
        mpfr_init(r28063);
        mpfr_init_set_str(r28064, "-1", 10, MPFR_RNDN);
        mpfr_init(r28065);
        mpfr_init(r28066);
        mpfr_init(r28067);
        mpfr_init_set_str(r28068, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r28069, "8", 10, MPFR_RNDN);
        mpfr_init(r28070);
        mpfr_init(r28071);
        mpfr_init(r28072);
        mpfr_init(r28073);
        mpfr_init(r28074);
        mpfr_init(r28075);
        mpfr_init(r28076);
}

double f_dm(double x) {
        mpfr_set_d(r28040, x, MPFR_RNDN);
        mpfr_abs(r28041, r28040, MPFR_RNDN);
        mpfr_mul(r28042, r28041, r28041, MPFR_RNDN);
        mpfr_exp(r28043, r28042, MPFR_RNDN);
        mpfr_const_pi(r28044, MPFR_RNDN);
        mpfr_sqrt(r28045, r28044, MPFR_RNDN);
        ;
        mpfr_div(r28047, r28046, r28041, MPFR_RNDN);
        mpfr_div(r28048, r28045, r28047, MPFR_RNDN);
        mpfr_div(r28049, r28043, r28048, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28052, r28050, r28051, MPFR_RNDN);
        mpfr_add(r28053, r28050, r28046, MPFR_RNDN);
        mpfr_pow(r28054, r28047, r28053, MPFR_RNDN);
        mpfr_mul(r28055, r28052, r28054, MPFR_RNDN);
        ;
        mpfr_div(r28057, r28046, r28056, MPFR_RNDN);
        mpfr_div(r28058, r28057, r28041, MPFR_RNDN);
        mpfr_div(r28059, r28058, r28041, MPFR_RNDN);
        mpfr_add(r28060, r28059, r28046, MPFR_RNDN);
        mpfr_add(r28061, r28055, r28060, MPFR_RNDN);
        mpfr_mul(r28062, r28049, r28061, MPFR_RNDN);
        mpfr_div(r28063, r28047, r28042, MPFR_RNDN);
        ;
        mpfr_sub(r28065, r28064, r28050, MPFR_RNDN);
        mpfr_pow(r28066, r28041, r28065, MPFR_RNDN);
        mpfr_mul(r28067, r28063, r28066, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28070, r28068, r28069, MPFR_RNDN);
        mpfr_sqrt(r28071, r28045, MPFR_RNDN);
        mpfr_mul(r28072, r28071, r28071, MPFR_RNDN);
        mpfr_div(r28073, r28070, r28072, MPFR_RNDN);
        mpfr_mul(r28074, r28073, r28043, MPFR_RNDN);
        mpfr_mul(r28075, r28067, r28074, MPFR_RNDN);
        mpfr_add(r28076, r28062, r28075, MPFR_RNDN);
        return mpfr_get_d(r28076, MPFR_RNDN);
}

