#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 r30928 = 1;
        float r30929 = atan2(1.0, 0.0);
        float r30930 = sqrt(r30929);
        float r30931 = r30928 / r30930;
        float r30932 = x;
        float r30933 = fabs(r30932);
        float r30934 = r30933 * r30933;
        float r30935 = exp(r30934);
        float r30936 = r30931 * r30935;
        float r30937 = r30928 / r30933;
        float r30938 = 2;
        float r30939 = r30928 / r30938;
        float r30940 = r30937 * r30937;
        float r30941 = r30940 * r30937;
        float r30942 = r30939 * r30941;
        float r30943 = r30937 + r30942;
        float r30944 = 3;
        float r30945 = 4;
        float r30946 = r30944 / r30945;
        float r30947 = r30941 * r30937;
        float r30948 = r30947 * r30937;
        float r30949 = r30946 * r30948;
        float r30950 = r30943 + r30949;
        float r30951 = 15;
        float r30952 = 8;
        float r30953 = r30951 / r30952;
        float r30954 = r30948 * r30937;
        float r30955 = r30954 * r30937;
        float r30956 = r30953 * r30955;
        float r30957 = r30950 + r30956;
        float r30958 = r30936 * r30957;
        return r30958;
}

double f_id(double x) {
        double r30959 = 1;
        double r30960 = atan2(1.0, 0.0);
        double r30961 = sqrt(r30960);
        double r30962 = r30959 / r30961;
        double r30963 = x;
        double r30964 = fabs(r30963);
        double r30965 = r30964 * r30964;
        double r30966 = exp(r30965);
        double r30967 = r30962 * r30966;
        double r30968 = r30959 / r30964;
        double r30969 = 2;
        double r30970 = r30959 / r30969;
        double r30971 = r30968 * r30968;
        double r30972 = r30971 * r30968;
        double r30973 = r30970 * r30972;
        double r30974 = r30968 + r30973;
        double r30975 = 3;
        double r30976 = 4;
        double r30977 = r30975 / r30976;
        double r30978 = r30972 * r30968;
        double r30979 = r30978 * r30968;
        double r30980 = r30977 * r30979;
        double r30981 = r30974 + r30980;
        double r30982 = 15;
        double r30983 = 8;
        double r30984 = r30982 / r30983;
        double r30985 = r30979 * r30968;
        double r30986 = r30985 * r30968;
        double r30987 = r30984 * r30986;
        double r30988 = r30981 + r30987;
        double r30989 = r30967 * r30988;
        return r30989;
}


double f_of(float x) {
        float r30990 = x;
        float r30991 = fabs(r30990);
        float r30992 = r30991 * r30991;
        float r30993 = exp(r30992);
        float r30994 = atan2(1.0, 0.0);
        float r30995 = sqrt(r30994);
        float r30996 = r30993 / r30995;
        float r30997 = 3;
        float r30998 = 4;
        float r30999 = r30997 / r30998;
        float r31000 = r30999 / r30991;
        float r31001 = r31000 / r30992;
        float r31002 = r31001 / r30992;
        float r31003 = 15;
        float r31004 = 8;
        float r31005 = r31003 / r31004;
        float r31006 = r31005 / r30991;
        float r31007 = pow(r30991, r30997);
        float r31008 = r31007 * r31007;
        float r31009 = r31006 / r31008;
        float r31010 = 1;
        float r31011 = r31010 / r30991;
        float r31012 = 2;
        float r31013 = r31010 / r31012;
        float r31014 = r31013 / r30991;
        float r31015 = r31014 / r30992;
        float r31016 = r31011 + r31015;
        float r31017 = r31009 + r31016;
        float r31018 = r31002 + r31017;
        float r31019 = r30996 * r31018;
        return r31019;
}

double f_od(double x) {
        double r31020 = x;
        double r31021 = fabs(r31020);
        double r31022 = r31021 * r31021;
        double r31023 = exp(r31022);
        double r31024 = atan2(1.0, 0.0);
        double r31025 = sqrt(r31024);
        double r31026 = r31023 / r31025;
        double r31027 = 3;
        double r31028 = 4;
        double r31029 = r31027 / r31028;
        double r31030 = r31029 / r31021;
        double r31031 = r31030 / r31022;
        double r31032 = r31031 / r31022;
        double r31033 = 15;
        double r31034 = 8;
        double r31035 = r31033 / r31034;
        double r31036 = r31035 / r31021;
        double r31037 = pow(r31021, r31027);
        double r31038 = r31037 * r31037;
        double r31039 = r31036 / r31038;
        double r31040 = 1;
        double r31041 = r31040 / r31021;
        double r31042 = 2;
        double r31043 = r31040 / r31042;
        double r31044 = r31043 / r31021;
        double r31045 = r31044 / r31022;
        double r31046 = r31041 + r31045;
        double r31047 = r31039 + r31046;
        double r31048 = r31032 + r31047;
        double r31049 = r31026 * r31048;
        return r31049;
}

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 r31050, r31051, r31052, r31053, r31054, r31055, r31056, r31057, r31058, r31059, r31060, r31061, r31062, r31063, r31064, r31065, r31066, r31067, r31068, r31069, r31070, r31071, r31072, r31073, r31074, r31075, r31076, r31077, r31078, r31079, r31080;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31050, "1", 10, MPFR_RNDN);
        mpfr_init(r31051);
        mpfr_init(r31052);
        mpfr_init(r31053);
        mpfr_init(r31054);
        mpfr_init(r31055);
        mpfr_init(r31056);
        mpfr_init(r31057);
        mpfr_init(r31058);
        mpfr_init(r31059);
        mpfr_init_set_str(r31060, "2", 10, MPFR_RNDN);
        mpfr_init(r31061);
        mpfr_init(r31062);
        mpfr_init(r31063);
        mpfr_init(r31064);
        mpfr_init(r31065);
        mpfr_init_set_str(r31066, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r31067, "4", 10, MPFR_RNDN);
        mpfr_init(r31068);
        mpfr_init(r31069);
        mpfr_init(r31070);
        mpfr_init(r31071);
        mpfr_init(r31072);
        mpfr_init_set_str(r31073, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31074, "8", 10, MPFR_RNDN);
        mpfr_init(r31075);
        mpfr_init(r31076);
        mpfr_init(r31077);
        mpfr_init(r31078);
        mpfr_init(r31079);
        mpfr_init(r31080);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r31051, MPFR_RNDN);
        mpfr_sqrt(r31052, r31051, MPFR_RNDN);
        mpfr_div(r31053, r31050, r31052, MPFR_RNDN);
        mpfr_set_d(r31054, x, MPFR_RNDN);
        mpfr_abs(r31055, r31054, MPFR_RNDN);
        mpfr_mul(r31056, r31055, r31055, MPFR_RNDN);
        mpfr_exp(r31057, r31056, MPFR_RNDN);
        mpfr_mul(r31058, r31053, r31057, MPFR_RNDN);
        mpfr_div(r31059, r31050, r31055, MPFR_RNDN);
        ;
        mpfr_div(r31061, r31050, r31060, MPFR_RNDN);
        mpfr_mul(r31062, r31059, r31059, MPFR_RNDN);
        mpfr_mul(r31063, r31062, r31059, MPFR_RNDN);
        mpfr_mul(r31064, r31061, r31063, MPFR_RNDN);
        mpfr_add(r31065, r31059, r31064, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31068, r31066, r31067, MPFR_RNDN);
        mpfr_mul(r31069, r31063, r31059, MPFR_RNDN);
        mpfr_mul(r31070, r31069, r31059, MPFR_RNDN);
        mpfr_mul(r31071, r31068, r31070, MPFR_RNDN);
        mpfr_add(r31072, r31065, r31071, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31075, r31073, r31074, MPFR_RNDN);
        mpfr_mul(r31076, r31070, r31059, MPFR_RNDN);
        mpfr_mul(r31077, r31076, r31059, MPFR_RNDN);
        mpfr_mul(r31078, r31075, r31077, MPFR_RNDN);
        mpfr_add(r31079, r31072, r31078, MPFR_RNDN);
        mpfr_mul(r31080, r31058, r31079, MPFR_RNDN);
        return mpfr_get_d(r31080, MPFR_RNDN);
}

static mpfr_t r31081, r31082, r31083, r31084, r31085, r31086, r31087, r31088, r31089, r31090, r31091, r31092, r31093, r31094, r31095, r31096, r31097, r31098, r31099, r31100, r31101, r31102, r31103, r31104, r31105, r31106, r31107, r31108, r31109, r31110;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r31081);
        mpfr_init(r31082);
        mpfr_init(r31083);
        mpfr_init(r31084);
        mpfr_init(r31085);
        mpfr_init(r31086);
        mpfr_init(r31087);
        mpfr_init_set_str(r31088, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r31089, "4", 10, MPFR_RNDN);
        mpfr_init(r31090);
        mpfr_init(r31091);
        mpfr_init(r31092);
        mpfr_init(r31093);
        mpfr_init_set_str(r31094, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31095, "8", 10, MPFR_RNDN);
        mpfr_init(r31096);
        mpfr_init(r31097);
        mpfr_init(r31098);
        mpfr_init(r31099);
        mpfr_init(r31100);
        mpfr_init_set_str(r31101, "1", 10, MPFR_RNDN);
        mpfr_init(r31102);
        mpfr_init_set_str(r31103, "2", 10, MPFR_RNDN);
        mpfr_init(r31104);
        mpfr_init(r31105);
        mpfr_init(r31106);
        mpfr_init(r31107);
        mpfr_init(r31108);
        mpfr_init(r31109);
        mpfr_init(r31110);
}

double f_fm(double x) {
        mpfr_set_d(r31081, x, MPFR_RNDN);
        mpfr_abs(r31082, r31081, MPFR_RNDN);
        mpfr_mul(r31083, r31082, r31082, MPFR_RNDN);
        mpfr_exp(r31084, r31083, MPFR_RNDN);
        mpfr_const_pi(r31085, MPFR_RNDN);
        mpfr_sqrt(r31086, r31085, MPFR_RNDN);
        mpfr_div(r31087, r31084, r31086, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31090, r31088, r31089, MPFR_RNDN);
        mpfr_div(r31091, r31090, r31082, MPFR_RNDN);
        mpfr_div(r31092, r31091, r31083, MPFR_RNDN);
        mpfr_div(r31093, r31092, r31083, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31096, r31094, r31095, MPFR_RNDN);
        mpfr_div(r31097, r31096, r31082, MPFR_RNDN);
        mpfr_pow(r31098, r31082, r31088, MPFR_RNDN);
        mpfr_mul(r31099, r31098, r31098, MPFR_RNDN);
        mpfr_div(r31100, r31097, r31099, MPFR_RNDN);
        ;
        mpfr_div(r31102, r31101, r31082, MPFR_RNDN);
        ;
        mpfr_div(r31104, r31101, r31103, MPFR_RNDN);
        mpfr_div(r31105, r31104, r31082, MPFR_RNDN);
        mpfr_div(r31106, r31105, r31083, MPFR_RNDN);
        mpfr_add(r31107, r31102, r31106, MPFR_RNDN);
        mpfr_add(r31108, r31100, r31107, MPFR_RNDN);
        mpfr_add(r31109, r31093, r31108, MPFR_RNDN);
        mpfr_mul(r31110, r31087, r31109, MPFR_RNDN);
        return mpfr_get_d(r31110, MPFR_RNDN);
}

static mpfr_t r31111, r31112, r31113, r31114, r31115, r31116, r31117, r31118, r31119, r31120, r31121, r31122, r31123, r31124, r31125, r31126, r31127, r31128, r31129, r31130, r31131, r31132, r31133, r31134, r31135, r31136, r31137, r31138, r31139, r31140;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r31111);
        mpfr_init(r31112);
        mpfr_init(r31113);
        mpfr_init(r31114);
        mpfr_init(r31115);
        mpfr_init(r31116);
        mpfr_init(r31117);
        mpfr_init_set_str(r31118, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r31119, "4", 10, MPFR_RNDN);
        mpfr_init(r31120);
        mpfr_init(r31121);
        mpfr_init(r31122);
        mpfr_init(r31123);
        mpfr_init_set_str(r31124, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31125, "8", 10, MPFR_RNDN);
        mpfr_init(r31126);
        mpfr_init(r31127);
        mpfr_init(r31128);
        mpfr_init(r31129);
        mpfr_init(r31130);
        mpfr_init_set_str(r31131, "1", 10, MPFR_RNDN);
        mpfr_init(r31132);
        mpfr_init_set_str(r31133, "2", 10, MPFR_RNDN);
        mpfr_init(r31134);
        mpfr_init(r31135);
        mpfr_init(r31136);
        mpfr_init(r31137);
        mpfr_init(r31138);
        mpfr_init(r31139);
        mpfr_init(r31140);
}

double f_dm(double x) {
        mpfr_set_d(r31111, x, MPFR_RNDN);
        mpfr_abs(r31112, r31111, MPFR_RNDN);
        mpfr_mul(r31113, r31112, r31112, MPFR_RNDN);
        mpfr_exp(r31114, r31113, MPFR_RNDN);
        mpfr_const_pi(r31115, MPFR_RNDN);
        mpfr_sqrt(r31116, r31115, MPFR_RNDN);
        mpfr_div(r31117, r31114, r31116, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31120, r31118, r31119, MPFR_RNDN);
        mpfr_div(r31121, r31120, r31112, MPFR_RNDN);
        mpfr_div(r31122, r31121, r31113, MPFR_RNDN);
        mpfr_div(r31123, r31122, r31113, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31126, r31124, r31125, MPFR_RNDN);
        mpfr_div(r31127, r31126, r31112, MPFR_RNDN);
        mpfr_pow(r31128, r31112, r31118, MPFR_RNDN);
        mpfr_mul(r31129, r31128, r31128, MPFR_RNDN);
        mpfr_div(r31130, r31127, r31129, MPFR_RNDN);
        ;
        mpfr_div(r31132, r31131, r31112, MPFR_RNDN);
        ;
        mpfr_div(r31134, r31131, r31133, MPFR_RNDN);
        mpfr_div(r31135, r31134, r31112, MPFR_RNDN);
        mpfr_div(r31136, r31135, r31113, MPFR_RNDN);
        mpfr_add(r31137, r31132, r31136, MPFR_RNDN);
        mpfr_add(r31138, r31130, r31137, MPFR_RNDN);
        mpfr_add(r31139, r31123, r31138, MPFR_RNDN);
        mpfr_mul(r31140, r31117, r31139, MPFR_RNDN);
        return mpfr_get_d(r31140, MPFR_RNDN);
}

