#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 r28204 = 1.0f;
        float r28205 = atan2(1.0, 0.0);
        float r28206 = sqrt(r28205);
        float r28207 = r28204 / r28206;
        float r28208 = x;
        float r28209 = fabs(r28208);
        float r28210 = r28209 * r28209;
        float r28211 = exp(r28210);
        float r28212 = r28207 * r28211;
        float r28213 = r28204 / r28209;
        float r28214 = 2.0f;
        float r28215 = r28204 / r28214;
        float r28216 = r28213 * r28213;
        float r28217 = r28216 * r28213;
        float r28218 = r28215 * r28217;
        float r28219 = r28213 + r28218;
        float r28220 = 3.0f;
        float r28221 = 4.0f;
        float r28222 = r28220 / r28221;
        float r28223 = r28217 * r28213;
        float r28224 = r28223 * r28213;
        float r28225 = r28222 * r28224;
        float r28226 = r28219 + r28225;
        float r28227 = 15.0f;
        float r28228 = 8.0f;
        float r28229 = r28227 / r28228;
        float r28230 = r28224 * r28213;
        float r28231 = r28230 * r28213;
        float r28232 = r28229 * r28231;
        float r28233 = r28226 + r28232;
        float r28234 = r28212 * r28233;
        return r28234;
}

double f_id(double x) {
        double r28235 = 1.0;
        double r28236 = atan2(1.0, 0.0);
        double r28237 = sqrt(r28236);
        double r28238 = r28235 / r28237;
        double r28239 = x;
        double r28240 = fabs(r28239);
        double r28241 = r28240 * r28240;
        double r28242 = exp(r28241);
        double r28243 = r28238 * r28242;
        double r28244 = r28235 / r28240;
        double r28245 = 2.0;
        double r28246 = r28235 / r28245;
        double r28247 = r28244 * r28244;
        double r28248 = r28247 * r28244;
        double r28249 = r28246 * r28248;
        double r28250 = r28244 + r28249;
        double r28251 = 3.0;
        double r28252 = 4.0;
        double r28253 = r28251 / r28252;
        double r28254 = r28248 * r28244;
        double r28255 = r28254 * r28244;
        double r28256 = r28253 * r28255;
        double r28257 = r28250 + r28256;
        double r28258 = 15.0;
        double r28259 = 8.0;
        double r28260 = r28258 / r28259;
        double r28261 = r28255 * r28244;
        double r28262 = r28261 * r28244;
        double r28263 = r28260 * r28262;
        double r28264 = r28257 + r28263;
        double r28265 = r28243 * r28264;
        return r28265;
}


double f_of(float x) {
        float r28266 = 1.0f;
        float r28267 = 0.5f;
        float r28268 = x;
        float r28269 = fabs(r28268);
        float r28270 = r28267 / r28269;
        float r28271 = r28270 / r28269;
        float r28272 = r28266 + r28271;
        float r28273 = r28272 / r28269;
        float r28274 = -r28266;
        float r28275 = 3.0f;
        float r28276 = r28274 - r28275;
        float r28277 = pow(r28269, r28276);
        float r28278 = 4.0f;
        float r28279 = r28275 / r28278;
        float r28280 = r28279 / r28269;
        float r28281 = 15.0f;
        float r28282 = 8.0f;
        float r28283 = r28281 / r28282;
        float r28284 = r28269 * (r28269 * r28269);
        float r28285 = r28283 / r28284;
        float r28286 = r28280 + r28285;
        float r28287 = r28277 * r28286;
        float r28288 = r28273 + r28287;
        float r28289 = atan2(1.0, 0.0);
        float r28290 = sqrt(r28289);
        float r28291 = sqrt(r28290);
        float r28292 = r28291 * r28291;
        float r28293 = r28269 * r28269;
        float r28294 = exp(r28293);
        float r28295 = r28292 / r28294;
        float r28296 = r28288 / r28295;
        return r28296;
}

double f_od(double x) {
        double r28297 = 1.0;
        double r28298 = 0.5;
        double r28299 = x;
        double r28300 = fabs(r28299);
        double r28301 = r28298 / r28300;
        double r28302 = r28301 / r28300;
        double r28303 = r28297 + r28302;
        double r28304 = r28303 / r28300;
        double r28305 = -r28297;
        double r28306 = 3.0;
        double r28307 = r28305 - r28306;
        double r28308 = pow(r28300, r28307);
        double r28309 = 4.0;
        double r28310 = r28306 / r28309;
        double r28311 = r28310 / r28300;
        double r28312 = 15.0;
        double r28313 = 8.0;
        double r28314 = r28312 / r28313;
        double r28315 = r28300 * (r28300 * r28300);
        double r28316 = r28314 / r28315;
        double r28317 = r28311 + r28316;
        double r28318 = r28308 * r28317;
        double r28319 = r28304 + r28318;
        double r28320 = atan2(1.0, 0.0);
        double r28321 = sqrt(r28320);
        double r28322 = sqrt(r28321);
        double r28323 = r28322 * r28322;
        double r28324 = r28300 * r28300;
        double r28325 = exp(r28324);
        double r28326 = r28323 / r28325;
        double r28327 = r28319 / r28326;
        return r28327;
}

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 r28328, r28329, r28330, r28331, r28332, r28333, r28334, r28335, r28336, r28337, r28338, r28339, r28340, r28341, r28342, r28343, r28344, r28345, r28346, r28347, r28348, r28349, r28350, r28351, r28352, r28353, r28354, r28355, r28356, r28357, r28358;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r28328, "1", 10, MPFR_RNDN);
        mpfr_init(r28329);
        mpfr_init(r28330);
        mpfr_init(r28331);
        mpfr_init(r28332);
        mpfr_init(r28333);
        mpfr_init(r28334);
        mpfr_init(r28335);
        mpfr_init(r28336);
        mpfr_init(r28337);
        mpfr_init_set_str(r28338, "2", 10, MPFR_RNDN);
        mpfr_init(r28339);
        mpfr_init(r28340);
        mpfr_init(r28341);
        mpfr_init(r28342);
        mpfr_init(r28343);
        mpfr_init_set_str(r28344, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r28345, "4", 10, MPFR_RNDN);
        mpfr_init(r28346);
        mpfr_init(r28347);
        mpfr_init(r28348);
        mpfr_init(r28349);
        mpfr_init(r28350);
        mpfr_init_set_str(r28351, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r28352, "8", 10, MPFR_RNDN);
        mpfr_init(r28353);
        mpfr_init(r28354);
        mpfr_init(r28355);
        mpfr_init(r28356);
        mpfr_init(r28357);
        mpfr_init(r28358);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r28329, MPFR_RNDN);
        mpfr_sqrt(r28330, r28329, MPFR_RNDN);
        mpfr_div(r28331, r28328, r28330, MPFR_RNDN);
        mpfr_set_d(r28332, x, MPFR_RNDN);
        mpfr_abs(r28333, r28332, MPFR_RNDN);
        mpfr_mul(r28334, r28333, r28333, MPFR_RNDN);
        mpfr_exp(r28335, r28334, MPFR_RNDN);
        mpfr_mul(r28336, r28331, r28335, MPFR_RNDN);
        mpfr_div(r28337, r28328, r28333, MPFR_RNDN);
        ;
        mpfr_div(r28339, r28328, r28338, MPFR_RNDN);
        mpfr_mul(r28340, r28337, r28337, MPFR_RNDN);
        mpfr_mul(r28341, r28340, r28337, MPFR_RNDN);
        mpfr_mul(r28342, r28339, r28341, MPFR_RNDN);
        mpfr_add(r28343, r28337, r28342, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28346, r28344, r28345, MPFR_RNDN);
        mpfr_mul(r28347, r28341, r28337, MPFR_RNDN);
        mpfr_mul(r28348, r28347, r28337, MPFR_RNDN);
        mpfr_mul(r28349, r28346, r28348, MPFR_RNDN);
        mpfr_add(r28350, r28343, r28349, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28353, r28351, r28352, MPFR_RNDN);
        mpfr_mul(r28354, r28348, r28337, MPFR_RNDN);
        mpfr_mul(r28355, r28354, r28337, MPFR_RNDN);
        mpfr_mul(r28356, r28353, r28355, MPFR_RNDN);
        mpfr_add(r28357, r28350, r28356, MPFR_RNDN);
        mpfr_mul(r28358, r28336, r28357, MPFR_RNDN);
        return mpfr_get_d(r28358, MPFR_RNDN);
}

static mpfr_t r28359, r28360, r28361, r28362, r28363, r28364, r28365, r28366, r28367, r28368, r28369, r28370, r28371, r28372, r28373, r28374, r28375, r28376, r28377, r28378, r28379, r28380, r28381, r28382, r28383, r28384, r28385, r28386, r28387, r28388, r28389;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r28359, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r28360, "1/2", 10, MPFR_RNDN);
        mpfr_init(r28361);
        mpfr_init(r28362);
        mpfr_init(r28363);
        mpfr_init(r28364);
        mpfr_init(r28365);
        mpfr_init(r28366);
        mpfr_init(r28367);
        mpfr_init_set_str(r28368, "3", 10, MPFR_RNDN);
        mpfr_init(r28369);
        mpfr_init(r28370);
        mpfr_init_set_str(r28371, "4", 10, MPFR_RNDN);
        mpfr_init(r28372);
        mpfr_init(r28373);
        mpfr_init_set_str(r28374, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r28375, "8", 10, MPFR_RNDN);
        mpfr_init(r28376);
        mpfr_init(r28377);
        mpfr_init(r28378);
        mpfr_init(r28379);
        mpfr_init(r28380);
        mpfr_init(r28381);
        mpfr_init(r28382);
        mpfr_init(r28383);
        mpfr_init(r28384);
        mpfr_init(r28385);
        mpfr_init(r28386);
        mpfr_init(r28387);
        mpfr_init(r28388);
        mpfr_init(r28389);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r28361, x, MPFR_RNDN);
        mpfr_abs(r28362, r28361, MPFR_RNDN);
        mpfr_div(r28363, r28360, r28362, MPFR_RNDN);
        mpfr_div(r28364, r28363, r28362, MPFR_RNDN);
        mpfr_add(r28365, r28359, r28364, MPFR_RNDN);
        mpfr_div(r28366, r28365, r28362, MPFR_RNDN);
        mpfr_neg(r28367, r28359, MPFR_RNDN);
        ;
        mpfr_sub(r28369, r28367, r28368, MPFR_RNDN);
        mpfr_pow(r28370, r28362, r28369, MPFR_RNDN);
        ;
        mpfr_div(r28372, r28368, r28371, MPFR_RNDN);
        mpfr_div(r28373, r28372, r28362, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28376, r28374, r28375, MPFR_RNDN);
        mpfr_mul(r28377, r28362, r28362, MPFR_RNDN); mpfr_mul(r28377, r28377, r28362, MPFR_RNDN);
        mpfr_div(r28378, r28376, r28377, MPFR_RNDN);
        mpfr_add(r28379, r28373, r28378, MPFR_RNDN);
        mpfr_mul(r28380, r28370, r28379, MPFR_RNDN);
        mpfr_add(r28381, r28366, r28380, MPFR_RNDN);
        mpfr_const_pi(r28382, MPFR_RNDN);
        mpfr_sqrt(r28383, r28382, MPFR_RNDN);
        mpfr_sqrt(r28384, r28383, MPFR_RNDN);
        mpfr_sqr(r28385, r28384, MPFR_RNDN);
        mpfr_sqr(r28386, r28362, MPFR_RNDN);
        mpfr_exp(r28387, r28386, MPFR_RNDN);
        mpfr_div(r28388, r28385, r28387, MPFR_RNDN);
        mpfr_div(r28389, r28381, r28388, MPFR_RNDN);
        return mpfr_get_d(r28389, MPFR_RNDN);
}

static mpfr_t r28390, r28391, r28392, r28393, r28394, r28395, r28396, r28397, r28398, r28399, r28400, r28401, r28402, r28403, r28404, r28405, r28406, r28407, r28408, r28409, r28410, r28411, r28412, r28413, r28414, r28415, r28416, r28417, r28418, r28419, r28420;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r28390, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r28391, "1/2", 10, MPFR_RNDN);
        mpfr_init(r28392);
        mpfr_init(r28393);
        mpfr_init(r28394);
        mpfr_init(r28395);
        mpfr_init(r28396);
        mpfr_init(r28397);
        mpfr_init(r28398);
        mpfr_init_set_str(r28399, "3", 10, MPFR_RNDN);
        mpfr_init(r28400);
        mpfr_init(r28401);
        mpfr_init_set_str(r28402, "4", 10, MPFR_RNDN);
        mpfr_init(r28403);
        mpfr_init(r28404);
        mpfr_init_set_str(r28405, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r28406, "8", 10, MPFR_RNDN);
        mpfr_init(r28407);
        mpfr_init(r28408);
        mpfr_init(r28409);
        mpfr_init(r28410);
        mpfr_init(r28411);
        mpfr_init(r28412);
        mpfr_init(r28413);
        mpfr_init(r28414);
        mpfr_init(r28415);
        mpfr_init(r28416);
        mpfr_init(r28417);
        mpfr_init(r28418);
        mpfr_init(r28419);
        mpfr_init(r28420);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r28392, x, MPFR_RNDN);
        mpfr_abs(r28393, r28392, MPFR_RNDN);
        mpfr_div(r28394, r28391, r28393, MPFR_RNDN);
        mpfr_div(r28395, r28394, r28393, MPFR_RNDN);
        mpfr_add(r28396, r28390, r28395, MPFR_RNDN);
        mpfr_div(r28397, r28396, r28393, MPFR_RNDN);
        mpfr_neg(r28398, r28390, MPFR_RNDN);
        ;
        mpfr_sub(r28400, r28398, r28399, MPFR_RNDN);
        mpfr_pow(r28401, r28393, r28400, MPFR_RNDN);
        ;
        mpfr_div(r28403, r28399, r28402, MPFR_RNDN);
        mpfr_div(r28404, r28403, r28393, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28407, r28405, r28406, MPFR_RNDN);
        mpfr_mul(r28408, r28393, r28393, MPFR_RNDN); mpfr_mul(r28408, r28408, r28393, MPFR_RNDN);
        mpfr_div(r28409, r28407, r28408, MPFR_RNDN);
        mpfr_add(r28410, r28404, r28409, MPFR_RNDN);
        mpfr_mul(r28411, r28401, r28410, MPFR_RNDN);
        mpfr_add(r28412, r28397, r28411, MPFR_RNDN);
        mpfr_const_pi(r28413, MPFR_RNDN);
        mpfr_sqrt(r28414, r28413, MPFR_RNDN);
        mpfr_sqrt(r28415, r28414, MPFR_RNDN);
        mpfr_sqr(r28416, r28415, MPFR_RNDN);
        mpfr_sqr(r28417, r28393, MPFR_RNDN);
        mpfr_exp(r28418, r28417, MPFR_RNDN);
        mpfr_div(r28419, r28416, r28418, MPFR_RNDN);
        mpfr_div(r28420, r28412, r28419, MPFR_RNDN);
        return mpfr_get_d(r28420, MPFR_RNDN);
}

