#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 r26359 = 1;
        float r26360 = atan2(1.0, 0.0);
        float r26361 = sqrt(r26360);
        float r26362 = r26359 / r26361;
        float r26363 = x;
        float r26364 = fabs(r26363);
        float r26365 = r26364 * r26364;
        float r26366 = exp(r26365);
        float r26367 = r26362 * r26366;
        float r26368 = r26359 / r26364;
        float r26369 = 2;
        float r26370 = r26359 / r26369;
        float r26371 = r26368 * r26368;
        float r26372 = r26371 * r26368;
        float r26373 = r26370 * r26372;
        float r26374 = r26368 + r26373;
        float r26375 = 3;
        float r26376 = 4;
        float r26377 = r26375 / r26376;
        float r26378 = r26372 * r26368;
        float r26379 = r26378 * r26368;
        float r26380 = r26377 * r26379;
        float r26381 = r26374 + r26380;
        float r26382 = 15;
        float r26383 = 8;
        float r26384 = r26382 / r26383;
        float r26385 = r26379 * r26368;
        float r26386 = r26385 * r26368;
        float r26387 = r26384 * r26386;
        float r26388 = r26381 + r26387;
        float r26389 = r26367 * r26388;
        return r26389;
}

double f_id(double x) {
        double r26390 = 1;
        double r26391 = atan2(1.0, 0.0);
        double r26392 = sqrt(r26391);
        double r26393 = r26390 / r26392;
        double r26394 = x;
        double r26395 = fabs(r26394);
        double r26396 = r26395 * r26395;
        double r26397 = exp(r26396);
        double r26398 = r26393 * r26397;
        double r26399 = r26390 / r26395;
        double r26400 = 2;
        double r26401 = r26390 / r26400;
        double r26402 = r26399 * r26399;
        double r26403 = r26402 * r26399;
        double r26404 = r26401 * r26403;
        double r26405 = r26399 + r26404;
        double r26406 = 3;
        double r26407 = 4;
        double r26408 = r26406 / r26407;
        double r26409 = r26403 * r26399;
        double r26410 = r26409 * r26399;
        double r26411 = r26408 * r26410;
        double r26412 = r26405 + r26411;
        double r26413 = 15;
        double r26414 = 8;
        double r26415 = r26413 / r26414;
        double r26416 = r26410 * r26399;
        double r26417 = r26416 * r26399;
        double r26418 = r26415 * r26417;
        double r26419 = r26412 + r26418;
        double r26420 = r26398 * r26419;
        return r26420;
}


double f_of(float x) {
        float r26421 = 15/8;
        float r26422 = x;
        float r26423 = fabs(r26422);
        float r26424 = r26423 * r26423;
        float r26425 = exp(r26424);
        float r26426 = r26421 * r26425;
        float r26427 = 7;
        float r26428 = pow(r26423, r26427);
        float r26429 = 1;
        float r26430 = atan2(1.0, 0.0);
        float r26431 = r26429 / r26430;
        float r26432 = sqrt(r26431);
        float r26433 = r26428 / r26432;
        float r26434 = r26426 / r26433;
        float r26435 = 2;
        float r26436 = r26429 / r26435;
        float r26437 = r26436 / r26423;
        float r26438 = r26437 / r26423;
        float r26439 = r26438 + r26429;
        float r26440 = 3;
        float r26441 = 4;
        float r26442 = r26440 / r26441;
        float r26443 = r26429 / r26423;
        float r26444 = r26429 + r26440;
        float r26445 = pow(r26443, r26444);
        float r26446 = r26442 * r26445;
        float r26447 = r26439 + r26446;
        float r26448 = sqrt(r26430);
        float r26449 = r26423 * r26448;
        float r26450 = r26425 / r26449;
        float r26451 = r26447 * r26450;
        float r26452 = log(r26451);
        float r26453 = exp(r26452);
        float r26454 = r26434 + r26453;
        return r26454;
}

double f_od(double x) {
        double r26455 = 15/8;
        double r26456 = x;
        double r26457 = fabs(r26456);
        double r26458 = r26457 * r26457;
        double r26459 = exp(r26458);
        double r26460 = r26455 * r26459;
        double r26461 = 7;
        double r26462 = pow(r26457, r26461);
        double r26463 = 1;
        double r26464 = atan2(1.0, 0.0);
        double r26465 = r26463 / r26464;
        double r26466 = sqrt(r26465);
        double r26467 = r26462 / r26466;
        double r26468 = r26460 / r26467;
        double r26469 = 2;
        double r26470 = r26463 / r26469;
        double r26471 = r26470 / r26457;
        double r26472 = r26471 / r26457;
        double r26473 = r26472 + r26463;
        double r26474 = 3;
        double r26475 = 4;
        double r26476 = r26474 / r26475;
        double r26477 = r26463 / r26457;
        double r26478 = r26463 + r26474;
        double r26479 = pow(r26477, r26478);
        double r26480 = r26476 * r26479;
        double r26481 = r26473 + r26480;
        double r26482 = sqrt(r26464);
        double r26483 = r26457 * r26482;
        double r26484 = r26459 / r26483;
        double r26485 = r26481 * r26484;
        double r26486 = log(r26485);
        double r26487 = exp(r26486);
        double r26488 = r26468 + r26487;
        return r26488;
}

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 r26489, r26490, r26491, r26492, r26493, r26494, r26495, r26496, r26497, r26498, r26499, r26500, r26501, r26502, r26503, r26504, r26505, r26506, r26507, r26508, r26509, r26510, r26511, r26512, r26513, r26514, r26515, r26516, r26517, r26518, r26519;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26489, "1", 10, MPFR_RNDN);
        mpfr_init(r26490);
        mpfr_init(r26491);
        mpfr_init(r26492);
        mpfr_init(r26493);
        mpfr_init(r26494);
        mpfr_init(r26495);
        mpfr_init(r26496);
        mpfr_init(r26497);
        mpfr_init(r26498);
        mpfr_init_set_str(r26499, "2", 10, MPFR_RNDN);
        mpfr_init(r26500);
        mpfr_init(r26501);
        mpfr_init(r26502);
        mpfr_init(r26503);
        mpfr_init(r26504);
        mpfr_init_set_str(r26505, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r26506, "4", 10, MPFR_RNDN);
        mpfr_init(r26507);
        mpfr_init(r26508);
        mpfr_init(r26509);
        mpfr_init(r26510);
        mpfr_init(r26511);
        mpfr_init_set_str(r26512, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r26513, "8", 10, MPFR_RNDN);
        mpfr_init(r26514);
        mpfr_init(r26515);
        mpfr_init(r26516);
        mpfr_init(r26517);
        mpfr_init(r26518);
        mpfr_init(r26519);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r26490, MPFR_RNDN);
        mpfr_sqrt(r26491, r26490, MPFR_RNDN);
        mpfr_div(r26492, r26489, r26491, MPFR_RNDN);
        mpfr_set_d(r26493, x, MPFR_RNDN);
        mpfr_abs(r26494, r26493, MPFR_RNDN);
        mpfr_mul(r26495, r26494, r26494, MPFR_RNDN);
        mpfr_exp(r26496, r26495, MPFR_RNDN);
        mpfr_mul(r26497, r26492, r26496, MPFR_RNDN);
        mpfr_div(r26498, r26489, r26494, MPFR_RNDN);
        ;
        mpfr_div(r26500, r26489, r26499, MPFR_RNDN);
        mpfr_mul(r26501, r26498, r26498, MPFR_RNDN);
        mpfr_mul(r26502, r26501, r26498, MPFR_RNDN);
        mpfr_mul(r26503, r26500, r26502, MPFR_RNDN);
        mpfr_add(r26504, r26498, r26503, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26507, r26505, r26506, MPFR_RNDN);
        mpfr_mul(r26508, r26502, r26498, MPFR_RNDN);
        mpfr_mul(r26509, r26508, r26498, MPFR_RNDN);
        mpfr_mul(r26510, r26507, r26509, MPFR_RNDN);
        mpfr_add(r26511, r26504, r26510, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26514, r26512, r26513, MPFR_RNDN);
        mpfr_mul(r26515, r26509, r26498, MPFR_RNDN);
        mpfr_mul(r26516, r26515, r26498, MPFR_RNDN);
        mpfr_mul(r26517, r26514, r26516, MPFR_RNDN);
        mpfr_add(r26518, r26511, r26517, MPFR_RNDN);
        mpfr_mul(r26519, r26497, r26518, MPFR_RNDN);
        return mpfr_get_d(r26519, MPFR_RNDN);
}

static mpfr_t r26520, r26521, r26522, r26523, r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533, r26534, r26535, r26536, r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544, r26545, r26546, r26547, r26548, r26549, r26550, r26551, r26552, r26553;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26520, "15/8", 10, MPFR_RNDN);
        mpfr_init(r26521);
        mpfr_init(r26522);
        mpfr_init(r26523);
        mpfr_init(r26524);
        mpfr_init(r26525);
        mpfr_init_set_str(r26526, "7", 10, MPFR_RNDN);
        mpfr_init(r26527);
        mpfr_init_set_str(r26528, "1", 10, MPFR_RNDN);
        mpfr_init(r26529);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init(r26533);
        mpfr_init_set_str(r26534, "2", 10, MPFR_RNDN);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init(r26537);
        mpfr_init(r26538);
        mpfr_init_set_str(r26539, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r26540, "4", 10, MPFR_RNDN);
        mpfr_init(r26541);
        mpfr_init(r26542);
        mpfr_init(r26543);
        mpfr_init(r26544);
        mpfr_init(r26545);
        mpfr_init(r26546);
        mpfr_init(r26547);
        mpfr_init(r26548);
        mpfr_init(r26549);
        mpfr_init(r26550);
        mpfr_init(r26551);
        mpfr_init(r26552);
        mpfr_init(r26553);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r26521, x, MPFR_RNDN);
        mpfr_abs(r26522, r26521, MPFR_RNDN);
        mpfr_mul(r26523, r26522, r26522, MPFR_RNDN);
        mpfr_exp(r26524, r26523, MPFR_RNDN);
        mpfr_mul(r26525, r26520, r26524, MPFR_RNDN);
        ;
        mpfr_pow(r26527, r26522, r26526, MPFR_RNDN);
        ;
        mpfr_const_pi(r26529, MPFR_RNDN);
        mpfr_div(r26530, r26528, r26529, MPFR_RNDN);
        mpfr_sqrt(r26531, r26530, MPFR_RNDN);
        mpfr_div(r26532, r26527, r26531, MPFR_RNDN);
        mpfr_div(r26533, r26525, r26532, MPFR_RNDN);
        ;
        mpfr_div(r26535, r26528, r26534, MPFR_RNDN);
        mpfr_div(r26536, r26535, r26522, MPFR_RNDN);
        mpfr_div(r26537, r26536, r26522, MPFR_RNDN);
        mpfr_add(r26538, r26537, r26528, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26541, r26539, r26540, MPFR_RNDN);
        mpfr_div(r26542, r26528, r26522, MPFR_RNDN);
        mpfr_add(r26543, r26528, r26539, MPFR_RNDN);
        mpfr_pow(r26544, r26542, r26543, MPFR_RNDN);
        mpfr_mul(r26545, r26541, r26544, MPFR_RNDN);
        mpfr_add(r26546, r26538, r26545, MPFR_RNDN);
        mpfr_sqrt(r26547, r26529, MPFR_RNDN);
        mpfr_mul(r26548, r26522, r26547, MPFR_RNDN);
        mpfr_div(r26549, r26524, r26548, MPFR_RNDN);
        mpfr_mul(r26550, r26546, r26549, MPFR_RNDN);
        mpfr_log(r26551, r26550, MPFR_RNDN);
        mpfr_exp(r26552, r26551, MPFR_RNDN);
        mpfr_add(r26553, r26533, r26552, MPFR_RNDN);
        return mpfr_get_d(r26553, MPFR_RNDN);
}

static mpfr_t r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561, r26562, r26563, r26564, r26565, r26566, r26567, r26568, r26569, r26570, r26571, r26572, r26573, r26574, r26575, r26576, r26577, r26578, r26579, r26580, r26581, r26582, r26583, r26584, r26585, r26586, r26587;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26554, "15/8", 10, MPFR_RNDN);
        mpfr_init(r26555);
        mpfr_init(r26556);
        mpfr_init(r26557);
        mpfr_init(r26558);
        mpfr_init(r26559);
        mpfr_init_set_str(r26560, "7", 10, MPFR_RNDN);
        mpfr_init(r26561);
        mpfr_init_set_str(r26562, "1", 10, MPFR_RNDN);
        mpfr_init(r26563);
        mpfr_init(r26564);
        mpfr_init(r26565);
        mpfr_init(r26566);
        mpfr_init(r26567);
        mpfr_init_set_str(r26568, "2", 10, MPFR_RNDN);
        mpfr_init(r26569);
        mpfr_init(r26570);
        mpfr_init(r26571);
        mpfr_init(r26572);
        mpfr_init_set_str(r26573, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r26574, "4", 10, MPFR_RNDN);
        mpfr_init(r26575);
        mpfr_init(r26576);
        mpfr_init(r26577);
        mpfr_init(r26578);
        mpfr_init(r26579);
        mpfr_init(r26580);
        mpfr_init(r26581);
        mpfr_init(r26582);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init(r26586);
        mpfr_init(r26587);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r26555, x, MPFR_RNDN);
        mpfr_abs(r26556, r26555, MPFR_RNDN);
        mpfr_mul(r26557, r26556, r26556, MPFR_RNDN);
        mpfr_exp(r26558, r26557, MPFR_RNDN);
        mpfr_mul(r26559, r26554, r26558, MPFR_RNDN);
        ;
        mpfr_pow(r26561, r26556, r26560, MPFR_RNDN);
        ;
        mpfr_const_pi(r26563, MPFR_RNDN);
        mpfr_div(r26564, r26562, r26563, MPFR_RNDN);
        mpfr_sqrt(r26565, r26564, MPFR_RNDN);
        mpfr_div(r26566, r26561, r26565, MPFR_RNDN);
        mpfr_div(r26567, r26559, r26566, MPFR_RNDN);
        ;
        mpfr_div(r26569, r26562, r26568, MPFR_RNDN);
        mpfr_div(r26570, r26569, r26556, MPFR_RNDN);
        mpfr_div(r26571, r26570, r26556, MPFR_RNDN);
        mpfr_add(r26572, r26571, r26562, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26575, r26573, r26574, MPFR_RNDN);
        mpfr_div(r26576, r26562, r26556, MPFR_RNDN);
        mpfr_add(r26577, r26562, r26573, MPFR_RNDN);
        mpfr_pow(r26578, r26576, r26577, MPFR_RNDN);
        mpfr_mul(r26579, r26575, r26578, MPFR_RNDN);
        mpfr_add(r26580, r26572, r26579, MPFR_RNDN);
        mpfr_sqrt(r26581, r26563, MPFR_RNDN);
        mpfr_mul(r26582, r26556, r26581, MPFR_RNDN);
        mpfr_div(r26583, r26558, r26582, MPFR_RNDN);
        mpfr_mul(r26584, r26580, r26583, MPFR_RNDN);
        mpfr_log(r26585, r26584, MPFR_RNDN);
        mpfr_exp(r26586, r26585, MPFR_RNDN);
        mpfr_add(r26587, r26567, r26586, MPFR_RNDN);
        return mpfr_get_d(r26587, MPFR_RNDN);
}

