#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 r30916 = 1;
        float r30917 = atan2(1.0, 0.0);
        float r30918 = sqrt(r30917);
        float r30919 = r30916 / r30918;
        float r30920 = x;
        float r30921 = fabs(r30920);
        float r30922 = r30921 * r30921;
        float r30923 = exp(r30922);
        float r30924 = r30919 * r30923;
        float r30925 = r30916 / r30921;
        float r30926 = 2;
        float r30927 = r30916 / r30926;
        float r30928 = r30925 * r30925;
        float r30929 = r30928 * r30925;
        float r30930 = r30927 * r30929;
        float r30931 = r30925 + r30930;
        float r30932 = 3;
        float r30933 = 4;
        float r30934 = r30932 / r30933;
        float r30935 = r30929 * r30925;
        float r30936 = r30935 * r30925;
        float r30937 = r30934 * r30936;
        float r30938 = r30931 + r30937;
        float r30939 = 15;
        float r30940 = 8;
        float r30941 = r30939 / r30940;
        float r30942 = r30936 * r30925;
        float r30943 = r30942 * r30925;
        float r30944 = r30941 * r30943;
        float r30945 = r30938 + r30944;
        float r30946 = r30924 * r30945;
        return r30946;
}

double f_id(double x) {
        double r30947 = 1;
        double r30948 = atan2(1.0, 0.0);
        double r30949 = sqrt(r30948);
        double r30950 = r30947 / r30949;
        double r30951 = x;
        double r30952 = fabs(r30951);
        double r30953 = r30952 * r30952;
        double r30954 = exp(r30953);
        double r30955 = r30950 * r30954;
        double r30956 = r30947 / r30952;
        double r30957 = 2;
        double r30958 = r30947 / r30957;
        double r30959 = r30956 * r30956;
        double r30960 = r30959 * r30956;
        double r30961 = r30958 * r30960;
        double r30962 = r30956 + r30961;
        double r30963 = 3;
        double r30964 = 4;
        double r30965 = r30963 / r30964;
        double r30966 = r30960 * r30956;
        double r30967 = r30966 * r30956;
        double r30968 = r30965 * r30967;
        double r30969 = r30962 + r30968;
        double r30970 = 15;
        double r30971 = 8;
        double r30972 = r30970 / r30971;
        double r30973 = r30967 * r30956;
        double r30974 = r30973 * r30956;
        double r30975 = r30972 * r30974;
        double r30976 = r30969 + r30975;
        double r30977 = r30955 * r30976;
        return r30977;
}


double f_of(float x) {
        float r30978 = 1;
        float r30979 = x;
        float r30980 = fabs(r30979);
        float r30981 = r30978 / r30980;
        float r30982 = r30980 + r30980;
        float r30983 = r30981 / r30982;
        float r30984 = r30981 * r30983;
        float r30985 = r30984 + r30981;
        float r30986 = 4/3;
        float r30987 = r30986 * r30980;
        float r30988 = r30981 / r30987;
        float r30989 = r30980 * r30980;
        float r30990 = r30989 / r30981;
        float r30991 = r30988 / r30990;
        float r30992 = 15;
        float r30993 = 8;
        float r30994 = r30992 / r30993;
        float r30995 = r30994 / r30980;
        float r30996 = 3;
        float r30997 = pow(r30980, r30996);
        float r30998 = r30995 / r30997;
        float r30999 = r30998 / r30997;
        float r31000 = r30991 + r30999;
        float r31001 = r30985 + r31000;
        float r31002 = exp(r30989);
        float r31003 = atan2(1.0, 0.0);
        float r31004 = sqrt(r31003);
        float r31005 = r31002 / r31004;
        float r31006 = r31001 * r31005;
        return r31006;
}

double f_od(double x) {
        double r31007 = 1;
        double r31008 = x;
        double r31009 = fabs(r31008);
        double r31010 = r31007 / r31009;
        double r31011 = r31009 + r31009;
        double r31012 = r31010 / r31011;
        double r31013 = r31010 * r31012;
        double r31014 = r31013 + r31010;
        double r31015 = 4/3;
        double r31016 = r31015 * r31009;
        double r31017 = r31010 / r31016;
        double r31018 = r31009 * r31009;
        double r31019 = r31018 / r31010;
        double r31020 = r31017 / r31019;
        double r31021 = 15;
        double r31022 = 8;
        double r31023 = r31021 / r31022;
        double r31024 = r31023 / r31009;
        double r31025 = 3;
        double r31026 = pow(r31009, r31025);
        double r31027 = r31024 / r31026;
        double r31028 = r31027 / r31026;
        double r31029 = r31020 + r31028;
        double r31030 = r31014 + r31029;
        double r31031 = exp(r31018);
        double r31032 = atan2(1.0, 0.0);
        double r31033 = sqrt(r31032);
        double r31034 = r31031 / r31033;
        double r31035 = r31030 * r31034;
        return r31035;
}

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 r31036, r31037, r31038, r31039, r31040, r31041, r31042, r31043, r31044, r31045, r31046, r31047, r31048, r31049, r31050, r31051, r31052, r31053, r31054, r31055, r31056, r31057, r31058, r31059, r31060, r31061, r31062, r31063, r31064, r31065, r31066;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31036, "1", 10, MPFR_RNDN);
        mpfr_init(r31037);
        mpfr_init(r31038);
        mpfr_init(r31039);
        mpfr_init(r31040);
        mpfr_init(r31041);
        mpfr_init(r31042);
        mpfr_init(r31043);
        mpfr_init(r31044);
        mpfr_init(r31045);
        mpfr_init_set_str(r31046, "2", 10, MPFR_RNDN);
        mpfr_init(r31047);
        mpfr_init(r31048);
        mpfr_init(r31049);
        mpfr_init(r31050);
        mpfr_init(r31051);
        mpfr_init_set_str(r31052, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r31053, "4", 10, MPFR_RNDN);
        mpfr_init(r31054);
        mpfr_init(r31055);
        mpfr_init(r31056);
        mpfr_init(r31057);
        mpfr_init(r31058);
        mpfr_init_set_str(r31059, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31060, "8", 10, MPFR_RNDN);
        mpfr_init(r31061);
        mpfr_init(r31062);
        mpfr_init(r31063);
        mpfr_init(r31064);
        mpfr_init(r31065);
        mpfr_init(r31066);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r31037, MPFR_RNDN);
        mpfr_sqrt(r31038, r31037, MPFR_RNDN);
        mpfr_div(r31039, r31036, r31038, MPFR_RNDN);
        mpfr_set_d(r31040, x, MPFR_RNDN);
        mpfr_abs(r31041, r31040, MPFR_RNDN);
        mpfr_mul(r31042, r31041, r31041, MPFR_RNDN);
        mpfr_exp(r31043, r31042, MPFR_RNDN);
        mpfr_mul(r31044, r31039, r31043, MPFR_RNDN);
        mpfr_div(r31045, r31036, r31041, MPFR_RNDN);
        ;
        mpfr_div(r31047, r31036, r31046, MPFR_RNDN);
        mpfr_mul(r31048, r31045, r31045, MPFR_RNDN);
        mpfr_mul(r31049, r31048, r31045, MPFR_RNDN);
        mpfr_mul(r31050, r31047, r31049, MPFR_RNDN);
        mpfr_add(r31051, r31045, r31050, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31054, r31052, r31053, MPFR_RNDN);
        mpfr_mul(r31055, r31049, r31045, MPFR_RNDN);
        mpfr_mul(r31056, r31055, r31045, MPFR_RNDN);
        mpfr_mul(r31057, r31054, r31056, MPFR_RNDN);
        mpfr_add(r31058, r31051, r31057, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31061, r31059, r31060, MPFR_RNDN);
        mpfr_mul(r31062, r31056, r31045, MPFR_RNDN);
        mpfr_mul(r31063, r31062, r31045, MPFR_RNDN);
        mpfr_mul(r31064, r31061, r31063, MPFR_RNDN);
        mpfr_add(r31065, r31058, r31064, MPFR_RNDN);
        mpfr_mul(r31066, r31044, r31065, MPFR_RNDN);
        return mpfr_get_d(r31066, MPFR_RNDN);
}

static mpfr_t r31067, r31068, r31069, r31070, r31071, r31072, r31073, r31074, r31075, r31076, r31077, r31078, r31079, r31080, r31081, r31082, r31083, r31084, r31085, r31086, r31087, r31088, r31089, r31090, r31091, r31092, r31093, r31094, r31095;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31067, "1", 10, MPFR_RNDN);
        mpfr_init(r31068);
        mpfr_init(r31069);
        mpfr_init(r31070);
        mpfr_init(r31071);
        mpfr_init(r31072);
        mpfr_init(r31073);
        mpfr_init(r31074);
        mpfr_init_set_str(r31075, "4/3", 10, MPFR_RNDN);
        mpfr_init(r31076);
        mpfr_init(r31077);
        mpfr_init(r31078);
        mpfr_init(r31079);
        mpfr_init(r31080);
        mpfr_init_set_str(r31081, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31082, "8", 10, MPFR_RNDN);
        mpfr_init(r31083);
        mpfr_init(r31084);
        mpfr_init_set_str(r31085, "3", 10, MPFR_RNDN);
        mpfr_init(r31086);
        mpfr_init(r31087);
        mpfr_init(r31088);
        mpfr_init(r31089);
        mpfr_init(r31090);
        mpfr_init(r31091);
        mpfr_init(r31092);
        mpfr_init(r31093);
        mpfr_init(r31094);
        mpfr_init(r31095);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r31068, x, MPFR_RNDN);
        mpfr_abs(r31069, r31068, MPFR_RNDN);
        mpfr_div(r31070, r31067, r31069, MPFR_RNDN);
        mpfr_add(r31071, r31069, r31069, MPFR_RNDN);
        mpfr_div(r31072, r31070, r31071, MPFR_RNDN);
        mpfr_mul(r31073, r31070, r31072, MPFR_RNDN);
        mpfr_add(r31074, r31073, r31070, MPFR_RNDN);
        ;
        mpfr_mul(r31076, r31075, r31069, MPFR_RNDN);
        mpfr_div(r31077, r31070, r31076, MPFR_RNDN);
        mpfr_mul(r31078, r31069, r31069, MPFR_RNDN);
        mpfr_div(r31079, r31078, r31070, MPFR_RNDN);
        mpfr_div(r31080, r31077, r31079, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31083, r31081, r31082, MPFR_RNDN);
        mpfr_div(r31084, r31083, r31069, MPFR_RNDN);
        ;
        mpfr_pow(r31086, r31069, r31085, MPFR_RNDN);
        mpfr_div(r31087, r31084, r31086, MPFR_RNDN);
        mpfr_div(r31088, r31087, r31086, MPFR_RNDN);
        mpfr_add(r31089, r31080, r31088, MPFR_RNDN);
        mpfr_add(r31090, r31074, r31089, MPFR_RNDN);
        mpfr_exp(r31091, r31078, MPFR_RNDN);
        mpfr_const_pi(r31092, MPFR_RNDN);
        mpfr_sqrt(r31093, r31092, MPFR_RNDN);
        mpfr_div(r31094, r31091, r31093, MPFR_RNDN);
        mpfr_mul(r31095, r31090, r31094, MPFR_RNDN);
        return mpfr_get_d(r31095, MPFR_RNDN);
}

static mpfr_t r31096, r31097, r31098, r31099, r31100, r31101, r31102, r31103, r31104, r31105, r31106, r31107, r31108, r31109, r31110, r31111, r31112, r31113, r31114, r31115, r31116, r31117, r31118, r31119, r31120, r31121, r31122, r31123, r31124;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31096, "1", 10, MPFR_RNDN);
        mpfr_init(r31097);
        mpfr_init(r31098);
        mpfr_init(r31099);
        mpfr_init(r31100);
        mpfr_init(r31101);
        mpfr_init(r31102);
        mpfr_init(r31103);
        mpfr_init_set_str(r31104, "4/3", 10, MPFR_RNDN);
        mpfr_init(r31105);
        mpfr_init(r31106);
        mpfr_init(r31107);
        mpfr_init(r31108);
        mpfr_init(r31109);
        mpfr_init_set_str(r31110, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31111, "8", 10, MPFR_RNDN);
        mpfr_init(r31112);
        mpfr_init(r31113);
        mpfr_init_set_str(r31114, "3", 10, MPFR_RNDN);
        mpfr_init(r31115);
        mpfr_init(r31116);
        mpfr_init(r31117);
        mpfr_init(r31118);
        mpfr_init(r31119);
        mpfr_init(r31120);
        mpfr_init(r31121);
        mpfr_init(r31122);
        mpfr_init(r31123);
        mpfr_init(r31124);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r31097, x, MPFR_RNDN);
        mpfr_abs(r31098, r31097, MPFR_RNDN);
        mpfr_div(r31099, r31096, r31098, MPFR_RNDN);
        mpfr_add(r31100, r31098, r31098, MPFR_RNDN);
        mpfr_div(r31101, r31099, r31100, MPFR_RNDN);
        mpfr_mul(r31102, r31099, r31101, MPFR_RNDN);
        mpfr_add(r31103, r31102, r31099, MPFR_RNDN);
        ;
        mpfr_mul(r31105, r31104, r31098, MPFR_RNDN);
        mpfr_div(r31106, r31099, r31105, MPFR_RNDN);
        mpfr_mul(r31107, r31098, r31098, MPFR_RNDN);
        mpfr_div(r31108, r31107, r31099, MPFR_RNDN);
        mpfr_div(r31109, r31106, r31108, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31112, r31110, r31111, MPFR_RNDN);
        mpfr_div(r31113, r31112, r31098, MPFR_RNDN);
        ;
        mpfr_pow(r31115, r31098, r31114, MPFR_RNDN);
        mpfr_div(r31116, r31113, r31115, MPFR_RNDN);
        mpfr_div(r31117, r31116, r31115, MPFR_RNDN);
        mpfr_add(r31118, r31109, r31117, MPFR_RNDN);
        mpfr_add(r31119, r31103, r31118, MPFR_RNDN);
        mpfr_exp(r31120, r31107, MPFR_RNDN);
        mpfr_const_pi(r31121, MPFR_RNDN);
        mpfr_sqrt(r31122, r31121, MPFR_RNDN);
        mpfr_div(r31123, r31120, r31122, MPFR_RNDN);
        mpfr_mul(r31124, r31119, r31123, MPFR_RNDN);
        return mpfr_get_d(r31124, MPFR_RNDN);
}

