#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 r27343 = 1;
        float r27344 = atan2(1.0, 0.0);
        float r27345 = sqrt(r27344);
        float r27346 = r27343 / r27345;
        float r27347 = x;
        float r27348 = fabs(r27347);
        float r27349 = r27348 * r27348;
        float r27350 = exp(r27349);
        float r27351 = r27346 * r27350;
        float r27352 = r27343 / r27348;
        float r27353 = 2;
        float r27354 = r27343 / r27353;
        float r27355 = r27352 * r27352;
        float r27356 = r27355 * r27352;
        float r27357 = r27354 * r27356;
        float r27358 = r27352 + r27357;
        float r27359 = 3;
        float r27360 = 4;
        float r27361 = r27359 / r27360;
        float r27362 = r27356 * r27352;
        float r27363 = r27362 * r27352;
        float r27364 = r27361 * r27363;
        float r27365 = r27358 + r27364;
        float r27366 = 15;
        float r27367 = 8;
        float r27368 = r27366 / r27367;
        float r27369 = r27363 * r27352;
        float r27370 = r27369 * r27352;
        float r27371 = r27368 * r27370;
        float r27372 = r27365 + r27371;
        float r27373 = r27351 * r27372;
        return r27373;
}

double f_id(double x) {
        double r27374 = 1;
        double r27375 = atan2(1.0, 0.0);
        double r27376 = sqrt(r27375);
        double r27377 = r27374 / r27376;
        double r27378 = x;
        double r27379 = fabs(r27378);
        double r27380 = r27379 * r27379;
        double r27381 = exp(r27380);
        double r27382 = r27377 * r27381;
        double r27383 = r27374 / r27379;
        double r27384 = 2;
        double r27385 = r27374 / r27384;
        double r27386 = r27383 * r27383;
        double r27387 = r27386 * r27383;
        double r27388 = r27385 * r27387;
        double r27389 = r27383 + r27388;
        double r27390 = 3;
        double r27391 = 4;
        double r27392 = r27390 / r27391;
        double r27393 = r27387 * r27383;
        double r27394 = r27393 * r27383;
        double r27395 = r27392 * r27394;
        double r27396 = r27389 + r27395;
        double r27397 = 15;
        double r27398 = 8;
        double r27399 = r27397 / r27398;
        double r27400 = r27394 * r27383;
        double r27401 = r27400 * r27383;
        double r27402 = r27399 * r27401;
        double r27403 = r27396 + r27402;
        double r27404 = r27382 * r27403;
        return r27404;
}


double f_of(float x) {
        float r27405 = x;
        float r27406 = fabs(r27405);
        float r27407 = r27406 * r27406;
        float r27408 = exp(r27407);
        float r27409 = atan2(1.0, 0.0);
        float r27410 = sqrt(r27409);
        float r27411 = 1;
        float r27412 = r27411 / r27406;
        float r27413 = r27410 / r27412;
        float r27414 = r27408 / r27413;
        float r27415 = 3;
        float r27416 = 4;
        float r27417 = r27415 / r27416;
        float r27418 = r27415 + r27411;
        float r27419 = pow(r27412, r27418);
        float r27420 = r27417 * r27419;
        float r27421 = 2;
        float r27422 = r27411 / r27421;
        float r27423 = r27422 / r27406;
        float r27424 = r27423 / r27406;
        float r27425 = r27424 + r27411;
        float r27426 = r27420 + r27425;
        float r27427 = r27414 * r27426;
        float r27428 = r27412 / r27407;
        float r27429 = -1;
        float r27430 = r27429 - r27415;
        float r27431 = pow(r27406, r27430);
        float r27432 = r27428 * r27431;
        float r27433 = 15;
        float r27434 = 8;
        float r27435 = r27433 / r27434;
        float r27436 = sqrt(r27410);
        float r27437 = r27436 * r27436;
        float r27438 = r27435 / r27437;
        float r27439 = r27438 * r27408;
        float r27440 = r27432 * r27439;
        float r27441 = r27427 + r27440;
        return r27441;
}

double f_od(double x) {
        double r27442 = x;
        double r27443 = fabs(r27442);
        double r27444 = r27443 * r27443;
        double r27445 = exp(r27444);
        double r27446 = atan2(1.0, 0.0);
        double r27447 = sqrt(r27446);
        double r27448 = 1;
        double r27449 = r27448 / r27443;
        double r27450 = r27447 / r27449;
        double r27451 = r27445 / r27450;
        double r27452 = 3;
        double r27453 = 4;
        double r27454 = r27452 / r27453;
        double r27455 = r27452 + r27448;
        double r27456 = pow(r27449, r27455);
        double r27457 = r27454 * r27456;
        double r27458 = 2;
        double r27459 = r27448 / r27458;
        double r27460 = r27459 / r27443;
        double r27461 = r27460 / r27443;
        double r27462 = r27461 + r27448;
        double r27463 = r27457 + r27462;
        double r27464 = r27451 * r27463;
        double r27465 = r27449 / r27444;
        double r27466 = -1;
        double r27467 = r27466 - r27452;
        double r27468 = pow(r27443, r27467);
        double r27469 = r27465 * r27468;
        double r27470 = 15;
        double r27471 = 8;
        double r27472 = r27470 / r27471;
        double r27473 = sqrt(r27447);
        double r27474 = r27473 * r27473;
        double r27475 = r27472 / r27474;
        double r27476 = r27475 * r27445;
        double r27477 = r27469 * r27476;
        double r27478 = r27464 + r27477;
        return r27478;
}

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 r27479, r27480, r27481, r27482, r27483, r27484, r27485, r27486, r27487, r27488, r27489, r27490, r27491, r27492, r27493, r27494, r27495, r27496, r27497, r27498, r27499, r27500, r27501, r27502, r27503, r27504, r27505, r27506, r27507, r27508, r27509;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27479, "1", 10, MPFR_RNDN);
        mpfr_init(r27480);
        mpfr_init(r27481);
        mpfr_init(r27482);
        mpfr_init(r27483);
        mpfr_init(r27484);
        mpfr_init(r27485);
        mpfr_init(r27486);
        mpfr_init(r27487);
        mpfr_init(r27488);
        mpfr_init_set_str(r27489, "2", 10, MPFR_RNDN);
        mpfr_init(r27490);
        mpfr_init(r27491);
        mpfr_init(r27492);
        mpfr_init(r27493);
        mpfr_init(r27494);
        mpfr_init_set_str(r27495, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27496, "4", 10, MPFR_RNDN);
        mpfr_init(r27497);
        mpfr_init(r27498);
        mpfr_init(r27499);
        mpfr_init(r27500);
        mpfr_init(r27501);
        mpfr_init_set_str(r27502, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27503, "8", 10, MPFR_RNDN);
        mpfr_init(r27504);
        mpfr_init(r27505);
        mpfr_init(r27506);
        mpfr_init(r27507);
        mpfr_init(r27508);
        mpfr_init(r27509);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27480, MPFR_RNDN);
        mpfr_sqrt(r27481, r27480, MPFR_RNDN);
        mpfr_div(r27482, r27479, r27481, MPFR_RNDN);
        mpfr_set_d(r27483, x, MPFR_RNDN);
        mpfr_abs(r27484, r27483, MPFR_RNDN);
        mpfr_mul(r27485, r27484, r27484, MPFR_RNDN);
        mpfr_exp(r27486, r27485, MPFR_RNDN);
        mpfr_mul(r27487, r27482, r27486, MPFR_RNDN);
        mpfr_div(r27488, r27479, r27484, MPFR_RNDN);
        ;
        mpfr_div(r27490, r27479, r27489, MPFR_RNDN);
        mpfr_mul(r27491, r27488, r27488, MPFR_RNDN);
        mpfr_mul(r27492, r27491, r27488, MPFR_RNDN);
        mpfr_mul(r27493, r27490, r27492, MPFR_RNDN);
        mpfr_add(r27494, r27488, r27493, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27497, r27495, r27496, MPFR_RNDN);
        mpfr_mul(r27498, r27492, r27488, MPFR_RNDN);
        mpfr_mul(r27499, r27498, r27488, MPFR_RNDN);
        mpfr_mul(r27500, r27497, r27499, MPFR_RNDN);
        mpfr_add(r27501, r27494, r27500, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27504, r27502, r27503, MPFR_RNDN);
        mpfr_mul(r27505, r27499, r27488, MPFR_RNDN);
        mpfr_mul(r27506, r27505, r27488, MPFR_RNDN);
        mpfr_mul(r27507, r27504, r27506, MPFR_RNDN);
        mpfr_add(r27508, r27501, r27507, MPFR_RNDN);
        mpfr_mul(r27509, r27487, r27508, MPFR_RNDN);
        return mpfr_get_d(r27509, MPFR_RNDN);
}

static mpfr_t r27510, r27511, r27512, r27513, r27514, r27515, r27516, r27517, r27518, r27519, r27520, r27521, r27522, r27523, r27524, r27525, r27526, r27527, r27528, r27529, r27530, r27531, r27532, r27533, r27534, r27535, r27536, r27537, r27538, r27539, r27540, r27541, r27542, r27543, r27544, r27545, r27546;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27510);
        mpfr_init(r27511);
        mpfr_init(r27512);
        mpfr_init(r27513);
        mpfr_init(r27514);
        mpfr_init(r27515);
        mpfr_init_set_str(r27516, "1", 10, MPFR_RNDN);
        mpfr_init(r27517);
        mpfr_init(r27518);
        mpfr_init(r27519);
        mpfr_init_set_str(r27520, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27521, "4", 10, MPFR_RNDN);
        mpfr_init(r27522);
        mpfr_init(r27523);
        mpfr_init(r27524);
        mpfr_init(r27525);
        mpfr_init_set_str(r27526, "2", 10, MPFR_RNDN);
        mpfr_init(r27527);
        mpfr_init(r27528);
        mpfr_init(r27529);
        mpfr_init(r27530);
        mpfr_init(r27531);
        mpfr_init(r27532);
        mpfr_init(r27533);
        mpfr_init_set_str(r27534, "-1", 10, MPFR_RNDN);
        mpfr_init(r27535);
        mpfr_init(r27536);
        mpfr_init(r27537);
        mpfr_init_set_str(r27538, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27539, "8", 10, MPFR_RNDN);
        mpfr_init(r27540);
        mpfr_init(r27541);
        mpfr_init(r27542);
        mpfr_init(r27543);
        mpfr_init(r27544);
        mpfr_init(r27545);
        mpfr_init(r27546);
}

double f_fm(double x) {
        mpfr_set_d(r27510, x, MPFR_RNDN);
        mpfr_abs(r27511, r27510, MPFR_RNDN);
        mpfr_mul(r27512, r27511, r27511, MPFR_RNDN);
        mpfr_exp(r27513, r27512, MPFR_RNDN);
        mpfr_const_pi(r27514, MPFR_RNDN);
        mpfr_sqrt(r27515, r27514, MPFR_RNDN);
        ;
        mpfr_div(r27517, r27516, r27511, MPFR_RNDN);
        mpfr_div(r27518, r27515, r27517, MPFR_RNDN);
        mpfr_div(r27519, r27513, r27518, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27522, r27520, r27521, MPFR_RNDN);
        mpfr_add(r27523, r27520, r27516, MPFR_RNDN);
        mpfr_pow(r27524, r27517, r27523, MPFR_RNDN);
        mpfr_mul(r27525, r27522, r27524, MPFR_RNDN);
        ;
        mpfr_div(r27527, r27516, r27526, MPFR_RNDN);
        mpfr_div(r27528, r27527, r27511, MPFR_RNDN);
        mpfr_div(r27529, r27528, r27511, MPFR_RNDN);
        mpfr_add(r27530, r27529, r27516, MPFR_RNDN);
        mpfr_add(r27531, r27525, r27530, MPFR_RNDN);
        mpfr_mul(r27532, r27519, r27531, MPFR_RNDN);
        mpfr_div(r27533, r27517, r27512, MPFR_RNDN);
        ;
        mpfr_sub(r27535, r27534, r27520, MPFR_RNDN);
        mpfr_pow(r27536, r27511, r27535, MPFR_RNDN);
        mpfr_mul(r27537, r27533, r27536, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27540, r27538, r27539, MPFR_RNDN);
        mpfr_sqrt(r27541, r27515, MPFR_RNDN);
        mpfr_mul(r27542, r27541, r27541, MPFR_RNDN);
        mpfr_div(r27543, r27540, r27542, MPFR_RNDN);
        mpfr_mul(r27544, r27543, r27513, MPFR_RNDN);
        mpfr_mul(r27545, r27537, r27544, MPFR_RNDN);
        mpfr_add(r27546, r27532, r27545, MPFR_RNDN);
        return mpfr_get_d(r27546, MPFR_RNDN);
}

static mpfr_t r27547, r27548, r27549, r27550, r27551, r27552, r27553, r27554, r27555, r27556, r27557, r27558, r27559, r27560, r27561, r27562, r27563, r27564, r27565, r27566, r27567, r27568, r27569, r27570, r27571, r27572, r27573, r27574, r27575, r27576, r27577, r27578, r27579, r27580, r27581, r27582, r27583;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27547);
        mpfr_init(r27548);
        mpfr_init(r27549);
        mpfr_init(r27550);
        mpfr_init(r27551);
        mpfr_init(r27552);
        mpfr_init_set_str(r27553, "1", 10, MPFR_RNDN);
        mpfr_init(r27554);
        mpfr_init(r27555);
        mpfr_init(r27556);
        mpfr_init_set_str(r27557, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27558, "4", 10, MPFR_RNDN);
        mpfr_init(r27559);
        mpfr_init(r27560);
        mpfr_init(r27561);
        mpfr_init(r27562);
        mpfr_init_set_str(r27563, "2", 10, MPFR_RNDN);
        mpfr_init(r27564);
        mpfr_init(r27565);
        mpfr_init(r27566);
        mpfr_init(r27567);
        mpfr_init(r27568);
        mpfr_init(r27569);
        mpfr_init(r27570);
        mpfr_init_set_str(r27571, "-1", 10, MPFR_RNDN);
        mpfr_init(r27572);
        mpfr_init(r27573);
        mpfr_init(r27574);
        mpfr_init_set_str(r27575, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27576, "8", 10, MPFR_RNDN);
        mpfr_init(r27577);
        mpfr_init(r27578);
        mpfr_init(r27579);
        mpfr_init(r27580);
        mpfr_init(r27581);
        mpfr_init(r27582);
        mpfr_init(r27583);
}

double f_dm(double x) {
        mpfr_set_d(r27547, x, MPFR_RNDN);
        mpfr_abs(r27548, r27547, MPFR_RNDN);
        mpfr_mul(r27549, r27548, r27548, MPFR_RNDN);
        mpfr_exp(r27550, r27549, MPFR_RNDN);
        mpfr_const_pi(r27551, MPFR_RNDN);
        mpfr_sqrt(r27552, r27551, MPFR_RNDN);
        ;
        mpfr_div(r27554, r27553, r27548, MPFR_RNDN);
        mpfr_div(r27555, r27552, r27554, MPFR_RNDN);
        mpfr_div(r27556, r27550, r27555, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27559, r27557, r27558, MPFR_RNDN);
        mpfr_add(r27560, r27557, r27553, MPFR_RNDN);
        mpfr_pow(r27561, r27554, r27560, MPFR_RNDN);
        mpfr_mul(r27562, r27559, r27561, MPFR_RNDN);
        ;
        mpfr_div(r27564, r27553, r27563, MPFR_RNDN);
        mpfr_div(r27565, r27564, r27548, MPFR_RNDN);
        mpfr_div(r27566, r27565, r27548, MPFR_RNDN);
        mpfr_add(r27567, r27566, r27553, MPFR_RNDN);
        mpfr_add(r27568, r27562, r27567, MPFR_RNDN);
        mpfr_mul(r27569, r27556, r27568, MPFR_RNDN);
        mpfr_div(r27570, r27554, r27549, MPFR_RNDN);
        ;
        mpfr_sub(r27572, r27571, r27557, MPFR_RNDN);
        mpfr_pow(r27573, r27548, r27572, MPFR_RNDN);
        mpfr_mul(r27574, r27570, r27573, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27577, r27575, r27576, MPFR_RNDN);
        mpfr_sqrt(r27578, r27552, MPFR_RNDN);
        mpfr_mul(r27579, r27578, r27578, MPFR_RNDN);
        mpfr_div(r27580, r27577, r27579, MPFR_RNDN);
        mpfr_mul(r27581, r27580, r27550, MPFR_RNDN);
        mpfr_mul(r27582, r27574, r27581, MPFR_RNDN);
        mpfr_add(r27583, r27569, r27582, MPFR_RNDN);
        return mpfr_get_d(r27583, MPFR_RNDN);
}

