#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 r27003 = 1;
        float r27004 = atan2(1.0, 0.0);
        float r27005 = sqrt(r27004);
        float r27006 = r27003 / r27005;
        float r27007 = x;
        float r27008 = fabs(r27007);
        float r27009 = r27008 * r27008;
        float r27010 = exp(r27009);
        float r27011 = r27006 * r27010;
        float r27012 = r27003 / r27008;
        float r27013 = 2;
        float r27014 = r27003 / r27013;
        float r27015 = r27012 * r27012;
        float r27016 = r27015 * r27012;
        float r27017 = r27014 * r27016;
        float r27018 = r27012 + r27017;
        float r27019 = 3;
        float r27020 = 4;
        float r27021 = r27019 / r27020;
        float r27022 = r27016 * r27012;
        float r27023 = r27022 * r27012;
        float r27024 = r27021 * r27023;
        float r27025 = r27018 + r27024;
        float r27026 = 15;
        float r27027 = 8;
        float r27028 = r27026 / r27027;
        float r27029 = r27023 * r27012;
        float r27030 = r27029 * r27012;
        float r27031 = r27028 * r27030;
        float r27032 = r27025 + r27031;
        float r27033 = r27011 * r27032;
        return r27033;
}

double f_id(double x) {
        double r27034 = 1;
        double r27035 = atan2(1.0, 0.0);
        double r27036 = sqrt(r27035);
        double r27037 = r27034 / r27036;
        double r27038 = x;
        double r27039 = fabs(r27038);
        double r27040 = r27039 * r27039;
        double r27041 = exp(r27040);
        double r27042 = r27037 * r27041;
        double r27043 = r27034 / r27039;
        double r27044 = 2;
        double r27045 = r27034 / r27044;
        double r27046 = r27043 * r27043;
        double r27047 = r27046 * r27043;
        double r27048 = r27045 * r27047;
        double r27049 = r27043 + r27048;
        double r27050 = 3;
        double r27051 = 4;
        double r27052 = r27050 / r27051;
        double r27053 = r27047 * r27043;
        double r27054 = r27053 * r27043;
        double r27055 = r27052 * r27054;
        double r27056 = r27049 + r27055;
        double r27057 = 15;
        double r27058 = 8;
        double r27059 = r27057 / r27058;
        double r27060 = r27054 * r27043;
        double r27061 = r27060 * r27043;
        double r27062 = r27059 * r27061;
        double r27063 = r27056 + r27062;
        double r27064 = r27042 * r27063;
        return r27064;
}


double f_of(float x) {
        float r27065 = 1;
        float r27066 = x;
        float r27067 = fabs(r27066);
        float r27068 = r27065 / r27067;
        float r27069 = r27067 * r27067;
        float r27070 = r27068 / r27069;
        float r27071 = r27070 / r27069;
        float r27072 = 3;
        float r27073 = 4;
        float r27074 = r27072 / r27073;
        float r27075 = 2;
        float r27076 = r27065 / r27075;
        float r27077 = fma(r27070, r27076, r27068);
        float r27078 = fma(r27071, r27074, r27077);
        float r27079 = exp(r27069);
        float r27080 = atan2(1.0, 0.0);
        float r27081 = sqrt(r27080);
        float r27082 = r27079 / r27081;
        float r27083 = -1;
        float r27084 = r27083 - r27072;
        float r27085 = r27065 + r27065;
        float r27086 = r27083 - r27085;
        float r27087 = r27084 + r27086;
        float r27088 = pow(r27067, r27087);
        float r27089 = 15;
        float r27090 = 8;
        float r27091 = r27089 / r27090;
        float r27092 = r27065 / r27081;
        float r27093 = r27091 * r27092;
        float r27094 = r27093 * r27079;
        float r27095 = r27088 * r27094;
        float r27096 = fma(r27078, r27082, r27095);
        return r27096;
}

double f_od(double x) {
        double r27097 = 1;
        double r27098 = x;
        double r27099 = fabs(r27098);
        double r27100 = r27097 / r27099;
        double r27101 = r27099 * r27099;
        double r27102 = r27100 / r27101;
        double r27103 = r27102 / r27101;
        double r27104 = 3;
        double r27105 = 4;
        double r27106 = r27104 / r27105;
        double r27107 = 2;
        double r27108 = r27097 / r27107;
        double r27109 = fma(r27102, r27108, r27100);
        double r27110 = fma(r27103, r27106, r27109);
        double r27111 = exp(r27101);
        double r27112 = atan2(1.0, 0.0);
        double r27113 = sqrt(r27112);
        double r27114 = r27111 / r27113;
        double r27115 = -1;
        double r27116 = r27115 - r27104;
        double r27117 = r27097 + r27097;
        double r27118 = r27115 - r27117;
        double r27119 = r27116 + r27118;
        double r27120 = pow(r27099, r27119);
        double r27121 = 15;
        double r27122 = 8;
        double r27123 = r27121 / r27122;
        double r27124 = r27097 / r27113;
        double r27125 = r27123 * r27124;
        double r27126 = r27125 * r27111;
        double r27127 = r27120 * r27126;
        double r27128 = fma(r27110, r27114, r27127);
        return r27128;
}

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 r27129, r27130, r27131, r27132, r27133, r27134, r27135, r27136, r27137, r27138, r27139, r27140, r27141, r27142, r27143, r27144, r27145, r27146, r27147, r27148, r27149, r27150, r27151, r27152, r27153, r27154, r27155, r27156, r27157, r27158, r27159;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27129, "1", 10, MPFR_RNDN);
        mpfr_init(r27130);
        mpfr_init(r27131);
        mpfr_init(r27132);
        mpfr_init(r27133);
        mpfr_init(r27134);
        mpfr_init(r27135);
        mpfr_init(r27136);
        mpfr_init(r27137);
        mpfr_init(r27138);
        mpfr_init_set_str(r27139, "2", 10, MPFR_RNDN);
        mpfr_init(r27140);
        mpfr_init(r27141);
        mpfr_init(r27142);
        mpfr_init(r27143);
        mpfr_init(r27144);
        mpfr_init_set_str(r27145, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27146, "4", 10, MPFR_RNDN);
        mpfr_init(r27147);
        mpfr_init(r27148);
        mpfr_init(r27149);
        mpfr_init(r27150);
        mpfr_init(r27151);
        mpfr_init_set_str(r27152, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27153, "8", 10, MPFR_RNDN);
        mpfr_init(r27154);
        mpfr_init(r27155);
        mpfr_init(r27156);
        mpfr_init(r27157);
        mpfr_init(r27158);
        mpfr_init(r27159);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27130, MPFR_RNDN);
        mpfr_sqrt(r27131, r27130, MPFR_RNDN);
        mpfr_div(r27132, r27129, r27131, MPFR_RNDN);
        mpfr_set_d(r27133, x, MPFR_RNDN);
        mpfr_abs(r27134, r27133, MPFR_RNDN);
        mpfr_mul(r27135, r27134, r27134, MPFR_RNDN);
        mpfr_exp(r27136, r27135, MPFR_RNDN);
        mpfr_mul(r27137, r27132, r27136, MPFR_RNDN);
        mpfr_div(r27138, r27129, r27134, MPFR_RNDN);
        ;
        mpfr_div(r27140, r27129, r27139, MPFR_RNDN);
        mpfr_mul(r27141, r27138, r27138, MPFR_RNDN);
        mpfr_mul(r27142, r27141, r27138, MPFR_RNDN);
        mpfr_mul(r27143, r27140, r27142, MPFR_RNDN);
        mpfr_add(r27144, r27138, r27143, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27147, r27145, r27146, MPFR_RNDN);
        mpfr_mul(r27148, r27142, r27138, MPFR_RNDN);
        mpfr_mul(r27149, r27148, r27138, MPFR_RNDN);
        mpfr_mul(r27150, r27147, r27149, MPFR_RNDN);
        mpfr_add(r27151, r27144, r27150, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27154, r27152, r27153, MPFR_RNDN);
        mpfr_mul(r27155, r27149, r27138, MPFR_RNDN);
        mpfr_mul(r27156, r27155, r27138, MPFR_RNDN);
        mpfr_mul(r27157, r27154, r27156, MPFR_RNDN);
        mpfr_add(r27158, r27151, r27157, MPFR_RNDN);
        mpfr_mul(r27159, r27137, r27158, MPFR_RNDN);
        return mpfr_get_d(r27159, MPFR_RNDN);
}

static mpfr_t r27160, r27161, r27162, r27163, r27164, r27165, r27166, r27167, r27168, r27169, r27170, r27171, r27172, r27173, r27174, r27175, r27176, r27177, r27178, r27179, r27180, r27181, r27182, r27183, r27184, r27185, r27186, r27187, r27188, r27189, r27190, r27191;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27160, "1", 10, MPFR_RNDN);
        mpfr_init(r27161);
        mpfr_init(r27162);
        mpfr_init(r27163);
        mpfr_init(r27164);
        mpfr_init(r27165);
        mpfr_init(r27166);
        mpfr_init_set_str(r27167, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27168, "4", 10, MPFR_RNDN);
        mpfr_init(r27169);
        mpfr_init_set_str(r27170, "2", 10, MPFR_RNDN);
        mpfr_init(r27171);
        mpfr_init(r27172);
        mpfr_init(r27173);
        mpfr_init(r27174);
        mpfr_init(r27175);
        mpfr_init(r27176);
        mpfr_init(r27177);
        mpfr_init_set_str(r27178, "-1", 10, MPFR_RNDN);
        mpfr_init(r27179);
        mpfr_init(r27180);
        mpfr_init(r27181);
        mpfr_init(r27182);
        mpfr_init(r27183);
        mpfr_init_set_str(r27184, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27185, "8", 10, MPFR_RNDN);
        mpfr_init(r27186);
        mpfr_init(r27187);
        mpfr_init(r27188);
        mpfr_init(r27189);
        mpfr_init(r27190);
        mpfr_init(r27191);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r27161, x, MPFR_RNDN);
        mpfr_abs(r27162, r27161, MPFR_RNDN);
        mpfr_div(r27163, r27160, r27162, MPFR_RNDN);
        mpfr_mul(r27164, r27162, r27162, MPFR_RNDN);
        mpfr_div(r27165, r27163, r27164, MPFR_RNDN);
        mpfr_div(r27166, r27165, r27164, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27169, r27167, r27168, MPFR_RNDN);
        ;
        mpfr_div(r27171, r27160, r27170, MPFR_RNDN);
        mpfr_fma(r27172, r27165, r27171, r27163, MPFR_RNDN);
        mpfr_fma(r27173, r27166, r27169, r27172, MPFR_RNDN);
        mpfr_exp(r27174, r27164, MPFR_RNDN);
        mpfr_const_pi(r27175, MPFR_RNDN);
        mpfr_sqrt(r27176, r27175, MPFR_RNDN);
        mpfr_div(r27177, r27174, r27176, MPFR_RNDN);
        ;
        mpfr_sub(r27179, r27178, r27167, MPFR_RNDN);
        mpfr_add(r27180, r27160, r27160, MPFR_RNDN);
        mpfr_sub(r27181, r27178, r27180, MPFR_RNDN);
        mpfr_add(r27182, r27179, r27181, MPFR_RNDN);
        mpfr_pow(r27183, r27162, r27182, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27186, r27184, r27185, MPFR_RNDN);
        mpfr_div(r27187, r27160, r27176, MPFR_RNDN);
        mpfr_mul(r27188, r27186, r27187, MPFR_RNDN);
        mpfr_mul(r27189, r27188, r27174, MPFR_RNDN);
        mpfr_mul(r27190, r27183, r27189, MPFR_RNDN);
        mpfr_fma(r27191, r27173, r27177, r27190, MPFR_RNDN);
        return mpfr_get_d(r27191, MPFR_RNDN);
}

static mpfr_t r27192, r27193, r27194, r27195, r27196, r27197, r27198, r27199, r27200, r27201, r27202, r27203, r27204, r27205, r27206, r27207, r27208, r27209, r27210, r27211, r27212, r27213, r27214, r27215, r27216, r27217, r27218, r27219, r27220, r27221, r27222, r27223;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27192, "1", 10, MPFR_RNDN);
        mpfr_init(r27193);
        mpfr_init(r27194);
        mpfr_init(r27195);
        mpfr_init(r27196);
        mpfr_init(r27197);
        mpfr_init(r27198);
        mpfr_init_set_str(r27199, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27200, "4", 10, MPFR_RNDN);
        mpfr_init(r27201);
        mpfr_init_set_str(r27202, "2", 10, MPFR_RNDN);
        mpfr_init(r27203);
        mpfr_init(r27204);
        mpfr_init(r27205);
        mpfr_init(r27206);
        mpfr_init(r27207);
        mpfr_init(r27208);
        mpfr_init(r27209);
        mpfr_init_set_str(r27210, "-1", 10, MPFR_RNDN);
        mpfr_init(r27211);
        mpfr_init(r27212);
        mpfr_init(r27213);
        mpfr_init(r27214);
        mpfr_init(r27215);
        mpfr_init_set_str(r27216, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27217, "8", 10, MPFR_RNDN);
        mpfr_init(r27218);
        mpfr_init(r27219);
        mpfr_init(r27220);
        mpfr_init(r27221);
        mpfr_init(r27222);
        mpfr_init(r27223);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r27193, x, MPFR_RNDN);
        mpfr_abs(r27194, r27193, MPFR_RNDN);
        mpfr_div(r27195, r27192, r27194, MPFR_RNDN);
        mpfr_mul(r27196, r27194, r27194, MPFR_RNDN);
        mpfr_div(r27197, r27195, r27196, MPFR_RNDN);
        mpfr_div(r27198, r27197, r27196, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27201, r27199, r27200, MPFR_RNDN);
        ;
        mpfr_div(r27203, r27192, r27202, MPFR_RNDN);
        mpfr_fma(r27204, r27197, r27203, r27195, MPFR_RNDN);
        mpfr_fma(r27205, r27198, r27201, r27204, MPFR_RNDN);
        mpfr_exp(r27206, r27196, MPFR_RNDN);
        mpfr_const_pi(r27207, MPFR_RNDN);
        mpfr_sqrt(r27208, r27207, MPFR_RNDN);
        mpfr_div(r27209, r27206, r27208, MPFR_RNDN);
        ;
        mpfr_sub(r27211, r27210, r27199, MPFR_RNDN);
        mpfr_add(r27212, r27192, r27192, MPFR_RNDN);
        mpfr_sub(r27213, r27210, r27212, MPFR_RNDN);
        mpfr_add(r27214, r27211, r27213, MPFR_RNDN);
        mpfr_pow(r27215, r27194, r27214, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27218, r27216, r27217, MPFR_RNDN);
        mpfr_div(r27219, r27192, r27208, MPFR_RNDN);
        mpfr_mul(r27220, r27218, r27219, MPFR_RNDN);
        mpfr_mul(r27221, r27220, r27206, MPFR_RNDN);
        mpfr_mul(r27222, r27215, r27221, MPFR_RNDN);
        mpfr_fma(r27223, r27205, r27209, r27222, MPFR_RNDN);
        return mpfr_get_d(r27223, MPFR_RNDN);
}

