#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 r56508466 = 1;
        float r56508467 = atan2(1.0, 0.0);
        float r56508468 = sqrt(r56508467);
        float r56508469 = r56508466 / r56508468;
        float r56508470 = x;
        float r56508471 = fabs(r56508470);
        float r56508472 = r56508471 * r56508471;
        float r56508473 = exp(r56508472);
        float r56508474 = r56508469 * r56508473;
        float r56508475 = r56508466 / r56508471;
        float r56508476 = 2;
        float r56508477 = r56508466 / r56508476;
        float r56508478 = r56508475 * r56508475;
        float r56508479 = r56508478 * r56508475;
        float r56508480 = r56508477 * r56508479;
        float r56508481 = r56508475 + r56508480;
        float r56508482 = 3;
        float r56508483 = 4;
        float r56508484 = r56508482 / r56508483;
        float r56508485 = r56508479 * r56508475;
        float r56508486 = r56508485 * r56508475;
        float r56508487 = r56508484 * r56508486;
        float r56508488 = r56508481 + r56508487;
        float r56508489 = 15;
        float r56508490 = 8;
        float r56508491 = r56508489 / r56508490;
        float r56508492 = r56508486 * r56508475;
        float r56508493 = r56508492 * r56508475;
        float r56508494 = r56508491 * r56508493;
        float r56508495 = r56508488 + r56508494;
        float r56508496 = r56508474 * r56508495;
        return r56508496;
}

double f_id(double x) {
        double r56508497 = 1;
        double r56508498 = atan2(1.0, 0.0);
        double r56508499 = sqrt(r56508498);
        double r56508500 = r56508497 / r56508499;
        double r56508501 = x;
        double r56508502 = fabs(r56508501);
        double r56508503 = r56508502 * r56508502;
        double r56508504 = exp(r56508503);
        double r56508505 = r56508500 * r56508504;
        double r56508506 = r56508497 / r56508502;
        double r56508507 = 2;
        double r56508508 = r56508497 / r56508507;
        double r56508509 = r56508506 * r56508506;
        double r56508510 = r56508509 * r56508506;
        double r56508511 = r56508508 * r56508510;
        double r56508512 = r56508506 + r56508511;
        double r56508513 = 3;
        double r56508514 = 4;
        double r56508515 = r56508513 / r56508514;
        double r56508516 = r56508510 * r56508506;
        double r56508517 = r56508516 * r56508506;
        double r56508518 = r56508515 * r56508517;
        double r56508519 = r56508512 + r56508518;
        double r56508520 = 15;
        double r56508521 = 8;
        double r56508522 = r56508520 / r56508521;
        double r56508523 = r56508517 * r56508506;
        double r56508524 = r56508523 * r56508506;
        double r56508525 = r56508522 * r56508524;
        double r56508526 = r56508519 + r56508525;
        double r56508527 = r56508505 * r56508526;
        return r56508527;
}


double f_of(float x) {
        float r56508528 = 15/8;
        float r56508529 = x;
        float r56508530 = fabs(r56508529);
        float r56508531 = r56508528 / r56508530;
        float r56508532 = 3;
        float r56508533 = pow(r56508530, r56508532);
        float r56508534 = r56508531 / r56508533;
        float r56508535 = r56508534 / r56508533;
        float r56508536 = 1;
        float r56508537 = 2;
        float r56508538 = r56508536 / r56508537;
        float r56508539 = r56508538 / r56508530;
        float r56508540 = r56508530 * r56508530;
        float r56508541 = r56508539 / r56508540;
        float r56508542 = r56508535 + r56508541;
        float r56508543 = r56508536 / r56508530;
        float r56508544 = 3/4;
        float r56508545 = r56508537 + r56508532;
        float r56508546 = pow(r56508530, r56508545);
        float r56508547 = r56508544 / r56508546;
        float r56508548 = r56508543 + r56508547;
        float r56508549 = r56508542 + r56508548;
        float r56508550 = exp(r56508540);
        float r56508551 = atan2(1.0, 0.0);
        float r56508552 = sqrt(r56508551);
        float r56508553 = r56508550 / r56508552;
        float r56508554 = r56508549 * r56508553;
        return r56508554;
}

double f_od(double x) {
        double r56508555 = 15/8;
        double r56508556 = x;
        double r56508557 = fabs(r56508556);
        double r56508558 = r56508555 / r56508557;
        double r56508559 = 3;
        double r56508560 = pow(r56508557, r56508559);
        double r56508561 = r56508558 / r56508560;
        double r56508562 = r56508561 / r56508560;
        double r56508563 = 1;
        double r56508564 = 2;
        double r56508565 = r56508563 / r56508564;
        double r56508566 = r56508565 / r56508557;
        double r56508567 = r56508557 * r56508557;
        double r56508568 = r56508566 / r56508567;
        double r56508569 = r56508562 + r56508568;
        double r56508570 = r56508563 / r56508557;
        double r56508571 = 3/4;
        double r56508572 = r56508564 + r56508559;
        double r56508573 = pow(r56508557, r56508572);
        double r56508574 = r56508571 / r56508573;
        double r56508575 = r56508570 + r56508574;
        double r56508576 = r56508569 + r56508575;
        double r56508577 = exp(r56508567);
        double r56508578 = atan2(1.0, 0.0);
        double r56508579 = sqrt(r56508578);
        double r56508580 = r56508577 / r56508579;
        double r56508581 = r56508576 * r56508580;
        return r56508581;
}

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 r56508582, r56508583, r56508584, r56508585, r56508586, r56508587, r56508588, r56508589, r56508590, r56508591, r56508592, r56508593, r56508594, r56508595, r56508596, r56508597, r56508598, r56508599, r56508600, r56508601, r56508602, r56508603, r56508604, r56508605, r56508606, r56508607, r56508608, r56508609, r56508610, r56508611, r56508612;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r56508582, "1", 10, MPFR_RNDN);
        mpfr_init(r56508583);
        mpfr_init(r56508584);
        mpfr_init(r56508585);
        mpfr_init(r56508586);
        mpfr_init(r56508587);
        mpfr_init(r56508588);
        mpfr_init(r56508589);
        mpfr_init(r56508590);
        mpfr_init(r56508591);
        mpfr_init_set_str(r56508592, "2", 10, MPFR_RNDN);
        mpfr_init(r56508593);
        mpfr_init(r56508594);
        mpfr_init(r56508595);
        mpfr_init(r56508596);
        mpfr_init(r56508597);
        mpfr_init_set_str(r56508598, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508599, "4", 10, MPFR_RNDN);
        mpfr_init(r56508600);
        mpfr_init(r56508601);
        mpfr_init(r56508602);
        mpfr_init(r56508603);
        mpfr_init(r56508604);
        mpfr_init_set_str(r56508605, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508606, "8", 10, MPFR_RNDN);
        mpfr_init(r56508607);
        mpfr_init(r56508608);
        mpfr_init(r56508609);
        mpfr_init(r56508610);
        mpfr_init(r56508611);
        mpfr_init(r56508612);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r56508583, MPFR_RNDN);
        mpfr_sqrt(r56508584, r56508583, MPFR_RNDN);
        mpfr_div(r56508585, r56508582, r56508584, MPFR_RNDN);
        mpfr_set_d(r56508586, x, MPFR_RNDN);
        mpfr_abs(r56508587, r56508586, MPFR_RNDN);
        mpfr_mul(r56508588, r56508587, r56508587, MPFR_RNDN);
        mpfr_exp(r56508589, r56508588, MPFR_RNDN);
        mpfr_mul(r56508590, r56508585, r56508589, MPFR_RNDN);
        mpfr_div(r56508591, r56508582, r56508587, MPFR_RNDN);
        ;
        mpfr_div(r56508593, r56508582, r56508592, MPFR_RNDN);
        mpfr_mul(r56508594, r56508591, r56508591, MPFR_RNDN);
        mpfr_mul(r56508595, r56508594, r56508591, MPFR_RNDN);
        mpfr_mul(r56508596, r56508593, r56508595, MPFR_RNDN);
        mpfr_add(r56508597, r56508591, r56508596, MPFR_RNDN);
        ;
        ;
        mpfr_div(r56508600, r56508598, r56508599, MPFR_RNDN);
        mpfr_mul(r56508601, r56508595, r56508591, MPFR_RNDN);
        mpfr_mul(r56508602, r56508601, r56508591, MPFR_RNDN);
        mpfr_mul(r56508603, r56508600, r56508602, MPFR_RNDN);
        mpfr_add(r56508604, r56508597, r56508603, MPFR_RNDN);
        ;
        ;
        mpfr_div(r56508607, r56508605, r56508606, MPFR_RNDN);
        mpfr_mul(r56508608, r56508602, r56508591, MPFR_RNDN);
        mpfr_mul(r56508609, r56508608, r56508591, MPFR_RNDN);
        mpfr_mul(r56508610, r56508607, r56508609, MPFR_RNDN);
        mpfr_add(r56508611, r56508604, r56508610, MPFR_RNDN);
        mpfr_mul(r56508612, r56508590, r56508611, MPFR_RNDN);
        return mpfr_get_d(r56508612, MPFR_RNDN);
}

static mpfr_t r56508613, r56508614, r56508615, r56508616, r56508617, r56508618, r56508619, r56508620, r56508621, r56508622, r56508623, r56508624, r56508625, r56508626, r56508627, r56508628, r56508629, r56508630, r56508631, r56508632, r56508633, r56508634, r56508635, r56508636, r56508637, r56508638, r56508639;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r56508613, "15/8", 10, MPFR_RNDN);
        mpfr_init(r56508614);
        mpfr_init(r56508615);
        mpfr_init(r56508616);
        mpfr_init_set_str(r56508617, "3", 10, MPFR_RNDN);
        mpfr_init(r56508618);
        mpfr_init(r56508619);
        mpfr_init(r56508620);
        mpfr_init_set_str(r56508621, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508622, "2", 10, MPFR_RNDN);
        mpfr_init(r56508623);
        mpfr_init(r56508624);
        mpfr_init(r56508625);
        mpfr_init(r56508626);
        mpfr_init(r56508627);
        mpfr_init(r56508628);
        mpfr_init_set_str(r56508629, "3/4", 10, MPFR_RNDN);
        mpfr_init(r56508630);
        mpfr_init(r56508631);
        mpfr_init(r56508632);
        mpfr_init(r56508633);
        mpfr_init(r56508634);
        mpfr_init(r56508635);
        mpfr_init(r56508636);
        mpfr_init(r56508637);
        mpfr_init(r56508638);
        mpfr_init(r56508639);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r56508614, x, MPFR_RNDN);
        mpfr_abs(r56508615, r56508614, MPFR_RNDN);
        mpfr_div(r56508616, r56508613, r56508615, MPFR_RNDN);
        ;
        mpfr_pow(r56508618, r56508615, r56508617, MPFR_RNDN);
        mpfr_div(r56508619, r56508616, r56508618, MPFR_RNDN);
        mpfr_div(r56508620, r56508619, r56508618, MPFR_RNDN);
        ;
        ;
        mpfr_div(r56508623, r56508621, r56508622, MPFR_RNDN);
        mpfr_div(r56508624, r56508623, r56508615, MPFR_RNDN);
        mpfr_mul(r56508625, r56508615, r56508615, MPFR_RNDN);
        mpfr_div(r56508626, r56508624, r56508625, MPFR_RNDN);
        mpfr_add(r56508627, r56508620, r56508626, MPFR_RNDN);
        mpfr_div(r56508628, r56508621, r56508615, MPFR_RNDN);
        ;
        mpfr_add(r56508630, r56508622, r56508617, MPFR_RNDN);
        mpfr_pow(r56508631, r56508615, r56508630, MPFR_RNDN);
        mpfr_div(r56508632, r56508629, r56508631, MPFR_RNDN);
        mpfr_add(r56508633, r56508628, r56508632, MPFR_RNDN);
        mpfr_add(r56508634, r56508627, r56508633, MPFR_RNDN);
        mpfr_exp(r56508635, r56508625, MPFR_RNDN);
        mpfr_const_pi(r56508636, MPFR_RNDN);
        mpfr_sqrt(r56508637, r56508636, MPFR_RNDN);
        mpfr_div(r56508638, r56508635, r56508637, MPFR_RNDN);
        mpfr_mul(r56508639, r56508634, r56508638, MPFR_RNDN);
        return mpfr_get_d(r56508639, MPFR_RNDN);
}

static mpfr_t r56508640, r56508641, r56508642, r56508643, r56508644, r56508645, r56508646, r56508647, r56508648, r56508649, r56508650, r56508651, r56508652, r56508653, r56508654, r56508655, r56508656, r56508657, r56508658, r56508659, r56508660, r56508661, r56508662, r56508663, r56508664, r56508665, r56508666;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r56508640, "15/8", 10, MPFR_RNDN);
        mpfr_init(r56508641);
        mpfr_init(r56508642);
        mpfr_init(r56508643);
        mpfr_init_set_str(r56508644, "3", 10, MPFR_RNDN);
        mpfr_init(r56508645);
        mpfr_init(r56508646);
        mpfr_init(r56508647);
        mpfr_init_set_str(r56508648, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r56508649, "2", 10, MPFR_RNDN);
        mpfr_init(r56508650);
        mpfr_init(r56508651);
        mpfr_init(r56508652);
        mpfr_init(r56508653);
        mpfr_init(r56508654);
        mpfr_init(r56508655);
        mpfr_init_set_str(r56508656, "3/4", 10, MPFR_RNDN);
        mpfr_init(r56508657);
        mpfr_init(r56508658);
        mpfr_init(r56508659);
        mpfr_init(r56508660);
        mpfr_init(r56508661);
        mpfr_init(r56508662);
        mpfr_init(r56508663);
        mpfr_init(r56508664);
        mpfr_init(r56508665);
        mpfr_init(r56508666);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r56508641, x, MPFR_RNDN);
        mpfr_abs(r56508642, r56508641, MPFR_RNDN);
        mpfr_div(r56508643, r56508640, r56508642, MPFR_RNDN);
        ;
        mpfr_pow(r56508645, r56508642, r56508644, MPFR_RNDN);
        mpfr_div(r56508646, r56508643, r56508645, MPFR_RNDN);
        mpfr_div(r56508647, r56508646, r56508645, MPFR_RNDN);
        ;
        ;
        mpfr_div(r56508650, r56508648, r56508649, MPFR_RNDN);
        mpfr_div(r56508651, r56508650, r56508642, MPFR_RNDN);
        mpfr_mul(r56508652, r56508642, r56508642, MPFR_RNDN);
        mpfr_div(r56508653, r56508651, r56508652, MPFR_RNDN);
        mpfr_add(r56508654, r56508647, r56508653, MPFR_RNDN);
        mpfr_div(r56508655, r56508648, r56508642, MPFR_RNDN);
        ;
        mpfr_add(r56508657, r56508649, r56508644, MPFR_RNDN);
        mpfr_pow(r56508658, r56508642, r56508657, MPFR_RNDN);
        mpfr_div(r56508659, r56508656, r56508658, MPFR_RNDN);
        mpfr_add(r56508660, r56508655, r56508659, MPFR_RNDN);
        mpfr_add(r56508661, r56508654, r56508660, MPFR_RNDN);
        mpfr_exp(r56508662, r56508652, MPFR_RNDN);
        mpfr_const_pi(r56508663, MPFR_RNDN);
        mpfr_sqrt(r56508664, r56508663, MPFR_RNDN);
        mpfr_div(r56508665, r56508662, r56508664, MPFR_RNDN);
        mpfr_mul(r56508666, r56508661, r56508665, MPFR_RNDN);
        return mpfr_get_d(r56508666, MPFR_RNDN);
}

