#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 r26958 = 1;
        float r26959 = atan2(1.0, 0.0);
        float r26960 = sqrt(r26959);
        float r26961 = r26958 / r26960;
        float r26962 = x;
        float r26963 = fabs(r26962);
        float r26964 = r26963 * r26963;
        float r26965 = exp(r26964);
        float r26966 = r26961 * r26965;
        float r26967 = r26958 / r26963;
        float r26968 = 2;
        float r26969 = r26958 / r26968;
        float r26970 = r26967 * r26967;
        float r26971 = r26970 * r26967;
        float r26972 = r26969 * r26971;
        float r26973 = r26967 + r26972;
        float r26974 = 3;
        float r26975 = 4;
        float r26976 = r26974 / r26975;
        float r26977 = r26971 * r26967;
        float r26978 = r26977 * r26967;
        float r26979 = r26976 * r26978;
        float r26980 = r26973 + r26979;
        float r26981 = 15;
        float r26982 = 8;
        float r26983 = r26981 / r26982;
        float r26984 = r26978 * r26967;
        float r26985 = r26984 * r26967;
        float r26986 = r26983 * r26985;
        float r26987 = r26980 + r26986;
        float r26988 = r26966 * r26987;
        return r26988;
}

double f_id(double x) {
        double r26989 = 1;
        double r26990 = atan2(1.0, 0.0);
        double r26991 = sqrt(r26990);
        double r26992 = r26989 / r26991;
        double r26993 = x;
        double r26994 = fabs(r26993);
        double r26995 = r26994 * r26994;
        double r26996 = exp(r26995);
        double r26997 = r26992 * r26996;
        double r26998 = r26989 / r26994;
        double r26999 = 2;
        double r27000 = r26989 / r26999;
        double r27001 = r26998 * r26998;
        double r27002 = r27001 * r26998;
        double r27003 = r27000 * r27002;
        double r27004 = r26998 + r27003;
        double r27005 = 3;
        double r27006 = 4;
        double r27007 = r27005 / r27006;
        double r27008 = r27002 * r26998;
        double r27009 = r27008 * r26998;
        double r27010 = r27007 * r27009;
        double r27011 = r27004 + r27010;
        double r27012 = 15;
        double r27013 = 8;
        double r27014 = r27012 / r27013;
        double r27015 = r27009 * r26998;
        double r27016 = r27015 * r26998;
        double r27017 = r27014 * r27016;
        double r27018 = r27011 + r27017;
        double r27019 = r26997 * r27018;
        return r27019;
}


double f_of(float x) {
        float r27020 = x;
        float r27021 = fabs(r27020);
        float r27022 = r27021 * r27021;
        float r27023 = exp(r27022);
        float r27024 = atan2(1.0, 0.0);
        float r27025 = sqrt(r27024);
        float r27026 = r27023 / r27025;
        float r27027 = 1;
        float r27028 = r27027 / r27021;
        float r27029 = 3;
        float r27030 = 4;
        float r27031 = r27029 / r27030;
        float r27032 = r27028 * r27031;
        float r27033 = r27028 / r27021;
        float r27034 = r27032 * r27033;
        float r27035 = 2;
        float r27036 = r27028 / r27035;
        float r27037 = fma(r27033, r27036, r27028);
        float r27038 = fma(r27034, r27033, r27037);
        float r27039 = -1;
        float r27040 = r27039 - r27029;
        float r27041 = pow(r27021, r27040);
        float r27042 = -r27029;
        float r27043 = pow(r27021, r27042);
        float r27044 = r27041 * r27043;
        float r27045 = r27027 / r27025;
        float r27046 = 15;
        float r27047 = 8;
        float r27048 = r27046 / r27047;
        float r27049 = r27045 * r27048;
        float r27050 = r27023 * r27049;
        float r27051 = r27044 * r27050;
        float r27052 = fma(r27026, r27038, r27051);
        return r27052;
}

double f_od(double x) {
        double r27053 = x;
        double r27054 = fabs(r27053);
        double r27055 = r27054 * r27054;
        double r27056 = exp(r27055);
        double r27057 = atan2(1.0, 0.0);
        double r27058 = sqrt(r27057);
        double r27059 = r27056 / r27058;
        double r27060 = 1;
        double r27061 = r27060 / r27054;
        double r27062 = 3;
        double r27063 = 4;
        double r27064 = r27062 / r27063;
        double r27065 = r27061 * r27064;
        double r27066 = r27061 / r27054;
        double r27067 = r27065 * r27066;
        double r27068 = 2;
        double r27069 = r27061 / r27068;
        double r27070 = fma(r27066, r27069, r27061);
        double r27071 = fma(r27067, r27066, r27070);
        double r27072 = -1;
        double r27073 = r27072 - r27062;
        double r27074 = pow(r27054, r27073);
        double r27075 = -r27062;
        double r27076 = pow(r27054, r27075);
        double r27077 = r27074 * r27076;
        double r27078 = r27060 / r27058;
        double r27079 = 15;
        double r27080 = 8;
        double r27081 = r27079 / r27080;
        double r27082 = r27078 * r27081;
        double r27083 = r27056 * r27082;
        double r27084 = r27077 * r27083;
        double r27085 = fma(r27059, r27071, r27084);
        return r27085;
}

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 r27086, r27087, r27088, r27089, r27090, r27091, r27092, r27093, r27094, r27095, r27096, r27097, r27098, r27099, r27100, r27101, r27102, r27103, r27104, r27105, r27106, r27107, r27108, r27109, r27110, r27111, r27112, r27113, r27114, r27115, r27116;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27086, "1", 10, MPFR_RNDN);
        mpfr_init(r27087);
        mpfr_init(r27088);
        mpfr_init(r27089);
        mpfr_init(r27090);
        mpfr_init(r27091);
        mpfr_init(r27092);
        mpfr_init(r27093);
        mpfr_init(r27094);
        mpfr_init(r27095);
        mpfr_init_set_str(r27096, "2", 10, MPFR_RNDN);
        mpfr_init(r27097);
        mpfr_init(r27098);
        mpfr_init(r27099);
        mpfr_init(r27100);
        mpfr_init(r27101);
        mpfr_init_set_str(r27102, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27103, "4", 10, MPFR_RNDN);
        mpfr_init(r27104);
        mpfr_init(r27105);
        mpfr_init(r27106);
        mpfr_init(r27107);
        mpfr_init(r27108);
        mpfr_init_set_str(r27109, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27110, "8", 10, MPFR_RNDN);
        mpfr_init(r27111);
        mpfr_init(r27112);
        mpfr_init(r27113);
        mpfr_init(r27114);
        mpfr_init(r27115);
        mpfr_init(r27116);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27087, MPFR_RNDN);
        mpfr_sqrt(r27088, r27087, MPFR_RNDN);
        mpfr_div(r27089, r27086, r27088, MPFR_RNDN);
        mpfr_set_d(r27090, x, MPFR_RNDN);
        mpfr_abs(r27091, r27090, MPFR_RNDN);
        mpfr_mul(r27092, r27091, r27091, MPFR_RNDN);
        mpfr_exp(r27093, r27092, MPFR_RNDN);
        mpfr_mul(r27094, r27089, r27093, MPFR_RNDN);
        mpfr_div(r27095, r27086, r27091, MPFR_RNDN);
        ;
        mpfr_div(r27097, r27086, r27096, MPFR_RNDN);
        mpfr_mul(r27098, r27095, r27095, MPFR_RNDN);
        mpfr_mul(r27099, r27098, r27095, MPFR_RNDN);
        mpfr_mul(r27100, r27097, r27099, MPFR_RNDN);
        mpfr_add(r27101, r27095, r27100, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27104, r27102, r27103, MPFR_RNDN);
        mpfr_mul(r27105, r27099, r27095, MPFR_RNDN);
        mpfr_mul(r27106, r27105, r27095, MPFR_RNDN);
        mpfr_mul(r27107, r27104, r27106, MPFR_RNDN);
        mpfr_add(r27108, r27101, r27107, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27111, r27109, r27110, MPFR_RNDN);
        mpfr_mul(r27112, r27106, r27095, MPFR_RNDN);
        mpfr_mul(r27113, r27112, r27095, MPFR_RNDN);
        mpfr_mul(r27114, r27111, r27113, MPFR_RNDN);
        mpfr_add(r27115, r27108, r27114, MPFR_RNDN);
        mpfr_mul(r27116, r27094, r27115, MPFR_RNDN);
        return mpfr_get_d(r27116, MPFR_RNDN);
}

static mpfr_t r27117, r27118, r27119, r27120, r27121, r27122, r27123, r27124, r27125, r27126, r27127, r27128, r27129, r27130, r27131, r27132, r27133, r27134, r27135, r27136, r27137, r27138, r27139, r27140, r27141, r27142, r27143, r27144, r27145, r27146, r27147, r27148, r27149;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27117);
        mpfr_init(r27118);
        mpfr_init(r27119);
        mpfr_init(r27120);
        mpfr_init(r27121);
        mpfr_init(r27122);
        mpfr_init(r27123);
        mpfr_init_set_str(r27124, "1", 10, MPFR_RNDN);
        mpfr_init(r27125);
        mpfr_init_set_str(r27126, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27127, "4", 10, MPFR_RNDN);
        mpfr_init(r27128);
        mpfr_init(r27129);
        mpfr_init(r27130);
        mpfr_init(r27131);
        mpfr_init_set_str(r27132, "2", 10, MPFR_RNDN);
        mpfr_init(r27133);
        mpfr_init(r27134);
        mpfr_init(r27135);
        mpfr_init_set_str(r27136, "-1", 10, MPFR_RNDN);
        mpfr_init(r27137);
        mpfr_init(r27138);
        mpfr_init(r27139);
        mpfr_init(r27140);
        mpfr_init(r27141);
        mpfr_init(r27142);
        mpfr_init_set_str(r27143, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27144, "8", 10, MPFR_RNDN);
        mpfr_init(r27145);
        mpfr_init(r27146);
        mpfr_init(r27147);
        mpfr_init(r27148);
        mpfr_init(r27149);
}

double f_fm(double x) {
        mpfr_set_d(r27117, x, MPFR_RNDN);
        mpfr_abs(r27118, r27117, MPFR_RNDN);
        mpfr_mul(r27119, r27118, r27118, MPFR_RNDN);
        mpfr_exp(r27120, r27119, MPFR_RNDN);
        mpfr_const_pi(r27121, MPFR_RNDN);
        mpfr_sqrt(r27122, r27121, MPFR_RNDN);
        mpfr_div(r27123, r27120, r27122, MPFR_RNDN);
        ;
        mpfr_div(r27125, r27124, r27118, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27128, r27126, r27127, MPFR_RNDN);
        mpfr_mul(r27129, r27125, r27128, MPFR_RNDN);
        mpfr_div(r27130, r27125, r27118, MPFR_RNDN);
        mpfr_mul(r27131, r27129, r27130, MPFR_RNDN);
        ;
        mpfr_div(r27133, r27125, r27132, MPFR_RNDN);
        mpfr_fma(r27134, r27130, r27133, r27125, MPFR_RNDN);
        mpfr_fma(r27135, r27131, r27130, r27134, MPFR_RNDN);
        ;
        mpfr_sub(r27137, r27136, r27126, MPFR_RNDN);
        mpfr_pow(r27138, r27118, r27137, MPFR_RNDN);
        mpfr_neg(r27139, r27126, MPFR_RNDN);
        mpfr_pow(r27140, r27118, r27139, MPFR_RNDN);
        mpfr_mul(r27141, r27138, r27140, MPFR_RNDN);
        mpfr_div(r27142, r27124, r27122, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27145, r27143, r27144, MPFR_RNDN);
        mpfr_mul(r27146, r27142, r27145, MPFR_RNDN);
        mpfr_mul(r27147, r27120, r27146, MPFR_RNDN);
        mpfr_mul(r27148, r27141, r27147, MPFR_RNDN);
        mpfr_fma(r27149, r27123, r27135, r27148, MPFR_RNDN);
        return mpfr_get_d(r27149, MPFR_RNDN);
}

static mpfr_t r27150, r27151, r27152, r27153, r27154, r27155, r27156, r27157, r27158, r27159, r27160, r27161, r27162, r27163, r27164, r27165, r27166, r27167, r27168, r27169, r27170, r27171, r27172, r27173, r27174, r27175, r27176, r27177, r27178, r27179, r27180, r27181, r27182;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27150);
        mpfr_init(r27151);
        mpfr_init(r27152);
        mpfr_init(r27153);
        mpfr_init(r27154);
        mpfr_init(r27155);
        mpfr_init(r27156);
        mpfr_init_set_str(r27157, "1", 10, MPFR_RNDN);
        mpfr_init(r27158);
        mpfr_init_set_str(r27159, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27160, "4", 10, MPFR_RNDN);
        mpfr_init(r27161);
        mpfr_init(r27162);
        mpfr_init(r27163);
        mpfr_init(r27164);
        mpfr_init_set_str(r27165, "2", 10, MPFR_RNDN);
        mpfr_init(r27166);
        mpfr_init(r27167);
        mpfr_init(r27168);
        mpfr_init_set_str(r27169, "-1", 10, MPFR_RNDN);
        mpfr_init(r27170);
        mpfr_init(r27171);
        mpfr_init(r27172);
        mpfr_init(r27173);
        mpfr_init(r27174);
        mpfr_init(r27175);
        mpfr_init_set_str(r27176, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27177, "8", 10, MPFR_RNDN);
        mpfr_init(r27178);
        mpfr_init(r27179);
        mpfr_init(r27180);
        mpfr_init(r27181);
        mpfr_init(r27182);
}

double f_dm(double x) {
        mpfr_set_d(r27150, x, MPFR_RNDN);
        mpfr_abs(r27151, r27150, MPFR_RNDN);
        mpfr_mul(r27152, r27151, r27151, MPFR_RNDN);
        mpfr_exp(r27153, r27152, MPFR_RNDN);
        mpfr_const_pi(r27154, MPFR_RNDN);
        mpfr_sqrt(r27155, r27154, MPFR_RNDN);
        mpfr_div(r27156, r27153, r27155, MPFR_RNDN);
        ;
        mpfr_div(r27158, r27157, r27151, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27161, r27159, r27160, MPFR_RNDN);
        mpfr_mul(r27162, r27158, r27161, MPFR_RNDN);
        mpfr_div(r27163, r27158, r27151, MPFR_RNDN);
        mpfr_mul(r27164, r27162, r27163, MPFR_RNDN);
        ;
        mpfr_div(r27166, r27158, r27165, MPFR_RNDN);
        mpfr_fma(r27167, r27163, r27166, r27158, MPFR_RNDN);
        mpfr_fma(r27168, r27164, r27163, r27167, MPFR_RNDN);
        ;
        mpfr_sub(r27170, r27169, r27159, MPFR_RNDN);
        mpfr_pow(r27171, r27151, r27170, MPFR_RNDN);
        mpfr_neg(r27172, r27159, MPFR_RNDN);
        mpfr_pow(r27173, r27151, r27172, MPFR_RNDN);
        mpfr_mul(r27174, r27171, r27173, MPFR_RNDN);
        mpfr_div(r27175, r27157, r27155, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27178, r27176, r27177, MPFR_RNDN);
        mpfr_mul(r27179, r27175, r27178, MPFR_RNDN);
        mpfr_mul(r27180, r27153, r27179, MPFR_RNDN);
        mpfr_mul(r27181, r27174, r27180, MPFR_RNDN);
        mpfr_fma(r27182, r27156, r27168, r27181, MPFR_RNDN);
        return mpfr_get_d(r27182, MPFR_RNDN);
}

