#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 r27464 = 1;
        float r27465 = atan2(1.0, 0.0);
        float r27466 = sqrt(r27465);
        float r27467 = r27464 / r27466;
        float r27468 = x;
        float r27469 = fabs(r27468);
        float r27470 = r27469 * r27469;
        float r27471 = exp(r27470);
        float r27472 = r27467 * r27471;
        float r27473 = r27464 / r27469;
        float r27474 = 2;
        float r27475 = r27464 / r27474;
        float r27476 = r27473 * r27473;
        float r27477 = r27476 * r27473;
        float r27478 = r27475 * r27477;
        float r27479 = r27473 + r27478;
        float r27480 = 3;
        float r27481 = 4;
        float r27482 = r27480 / r27481;
        float r27483 = r27477 * r27473;
        float r27484 = r27483 * r27473;
        float r27485 = r27482 * r27484;
        float r27486 = r27479 + r27485;
        float r27487 = 15;
        float r27488 = 8;
        float r27489 = r27487 / r27488;
        float r27490 = r27484 * r27473;
        float r27491 = r27490 * r27473;
        float r27492 = r27489 * r27491;
        float r27493 = r27486 + r27492;
        float r27494 = r27472 * r27493;
        return r27494;
}

double f_id(double x) {
        double r27495 = 1;
        double r27496 = atan2(1.0, 0.0);
        double r27497 = sqrt(r27496);
        double r27498 = r27495 / r27497;
        double r27499 = x;
        double r27500 = fabs(r27499);
        double r27501 = r27500 * r27500;
        double r27502 = exp(r27501);
        double r27503 = r27498 * r27502;
        double r27504 = r27495 / r27500;
        double r27505 = 2;
        double r27506 = r27495 / r27505;
        double r27507 = r27504 * r27504;
        double r27508 = r27507 * r27504;
        double r27509 = r27506 * r27508;
        double r27510 = r27504 + r27509;
        double r27511 = 3;
        double r27512 = 4;
        double r27513 = r27511 / r27512;
        double r27514 = r27508 * r27504;
        double r27515 = r27514 * r27504;
        double r27516 = r27513 * r27515;
        double r27517 = r27510 + r27516;
        double r27518 = 15;
        double r27519 = 8;
        double r27520 = r27518 / r27519;
        double r27521 = r27515 * r27504;
        double r27522 = r27521 * r27504;
        double r27523 = r27520 * r27522;
        double r27524 = r27517 + r27523;
        double r27525 = r27503 * r27524;
        return r27525;
}


double f_of(float x) {
        float r27526 = x;
        float r27527 = fabs(r27526);
        float r27528 = r27527 * r27527;
        float r27529 = exp(r27528);
        float r27530 = atan2(1.0, 0.0);
        float r27531 = sqrt(r27530);
        float r27532 = 1;
        float r27533 = r27532 / r27527;
        float r27534 = r27531 / r27533;
        float r27535 = r27529 / r27534;
        float r27536 = 3;
        float r27537 = 4;
        float r27538 = r27536 / r27537;
        float r27539 = r27536 + r27532;
        float r27540 = pow(r27533, r27539);
        float r27541 = r27538 * r27540;
        float r27542 = 2;
        float r27543 = r27532 / r27542;
        float r27544 = r27543 / r27527;
        float r27545 = r27544 / r27527;
        float r27546 = r27545 + r27532;
        float r27547 = r27541 + r27546;
        float r27548 = r27535 * r27547;
        float r27549 = r27533 / r27528;
        float r27550 = -1;
        float r27551 = r27550 - r27536;
        float r27552 = pow(r27527, r27551);
        float r27553 = r27549 * r27552;
        float r27554 = 15;
        float r27555 = 8;
        float r27556 = r27554 / r27555;
        float r27557 = sqrt(r27531);
        float r27558 = r27557 * r27557;
        float r27559 = r27556 / r27558;
        float r27560 = r27559 * r27529;
        float r27561 = r27553 * r27560;
        float r27562 = r27548 + r27561;
        return r27562;
}

double f_od(double x) {
        double r27563 = x;
        double r27564 = fabs(r27563);
        double r27565 = r27564 * r27564;
        double r27566 = exp(r27565);
        double r27567 = atan2(1.0, 0.0);
        double r27568 = sqrt(r27567);
        double r27569 = 1;
        double r27570 = r27569 / r27564;
        double r27571 = r27568 / r27570;
        double r27572 = r27566 / r27571;
        double r27573 = 3;
        double r27574 = 4;
        double r27575 = r27573 / r27574;
        double r27576 = r27573 + r27569;
        double r27577 = pow(r27570, r27576);
        double r27578 = r27575 * r27577;
        double r27579 = 2;
        double r27580 = r27569 / r27579;
        double r27581 = r27580 / r27564;
        double r27582 = r27581 / r27564;
        double r27583 = r27582 + r27569;
        double r27584 = r27578 + r27583;
        double r27585 = r27572 * r27584;
        double r27586 = r27570 / r27565;
        double r27587 = -1;
        double r27588 = r27587 - r27573;
        double r27589 = pow(r27564, r27588);
        double r27590 = r27586 * r27589;
        double r27591 = 15;
        double r27592 = 8;
        double r27593 = r27591 / r27592;
        double r27594 = sqrt(r27568);
        double r27595 = r27594 * r27594;
        double r27596 = r27593 / r27595;
        double r27597 = r27596 * r27566;
        double r27598 = r27590 * r27597;
        double r27599 = r27585 + r27598;
        return r27599;
}

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 r27600, r27601, r27602, r27603, r27604, r27605, r27606, r27607, r27608, r27609, r27610, r27611, r27612, r27613, r27614, r27615, r27616, r27617, r27618, r27619, r27620, r27621, r27622, r27623, r27624, r27625, r27626, r27627, r27628, r27629, r27630;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27600, "1", 10, MPFR_RNDN);
        mpfr_init(r27601);
        mpfr_init(r27602);
        mpfr_init(r27603);
        mpfr_init(r27604);
        mpfr_init(r27605);
        mpfr_init(r27606);
        mpfr_init(r27607);
        mpfr_init(r27608);
        mpfr_init(r27609);
        mpfr_init_set_str(r27610, "2", 10, MPFR_RNDN);
        mpfr_init(r27611);
        mpfr_init(r27612);
        mpfr_init(r27613);
        mpfr_init(r27614);
        mpfr_init(r27615);
        mpfr_init_set_str(r27616, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27617, "4", 10, MPFR_RNDN);
        mpfr_init(r27618);
        mpfr_init(r27619);
        mpfr_init(r27620);
        mpfr_init(r27621);
        mpfr_init(r27622);
        mpfr_init_set_str(r27623, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27624, "8", 10, MPFR_RNDN);
        mpfr_init(r27625);
        mpfr_init(r27626);
        mpfr_init(r27627);
        mpfr_init(r27628);
        mpfr_init(r27629);
        mpfr_init(r27630);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27601, MPFR_RNDN);
        mpfr_sqrt(r27602, r27601, MPFR_RNDN);
        mpfr_div(r27603, r27600, r27602, MPFR_RNDN);
        mpfr_set_d(r27604, x, MPFR_RNDN);
        mpfr_abs(r27605, r27604, MPFR_RNDN);
        mpfr_mul(r27606, r27605, r27605, MPFR_RNDN);
        mpfr_exp(r27607, r27606, MPFR_RNDN);
        mpfr_mul(r27608, r27603, r27607, MPFR_RNDN);
        mpfr_div(r27609, r27600, r27605, MPFR_RNDN);
        ;
        mpfr_div(r27611, r27600, r27610, MPFR_RNDN);
        mpfr_mul(r27612, r27609, r27609, MPFR_RNDN);
        mpfr_mul(r27613, r27612, r27609, MPFR_RNDN);
        mpfr_mul(r27614, r27611, r27613, MPFR_RNDN);
        mpfr_add(r27615, r27609, r27614, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27618, r27616, r27617, MPFR_RNDN);
        mpfr_mul(r27619, r27613, r27609, MPFR_RNDN);
        mpfr_mul(r27620, r27619, r27609, MPFR_RNDN);
        mpfr_mul(r27621, r27618, r27620, MPFR_RNDN);
        mpfr_add(r27622, r27615, r27621, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27625, r27623, r27624, MPFR_RNDN);
        mpfr_mul(r27626, r27620, r27609, MPFR_RNDN);
        mpfr_mul(r27627, r27626, r27609, MPFR_RNDN);
        mpfr_mul(r27628, r27625, r27627, MPFR_RNDN);
        mpfr_add(r27629, r27622, r27628, MPFR_RNDN);
        mpfr_mul(r27630, r27608, r27629, MPFR_RNDN);
        return mpfr_get_d(r27630, MPFR_RNDN);
}

static mpfr_t r27631, r27632, r27633, r27634, r27635, r27636, r27637, r27638, r27639, r27640, r27641, r27642, r27643, r27644, r27645, r27646, r27647, r27648, r27649, r27650, r27651, r27652, r27653, r27654, r27655, r27656, r27657, r27658, r27659, r27660, r27661, r27662, r27663, r27664, r27665, r27666, r27667;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27631);
        mpfr_init(r27632);
        mpfr_init(r27633);
        mpfr_init(r27634);
        mpfr_init(r27635);
        mpfr_init(r27636);
        mpfr_init_set_str(r27637, "1", 10, MPFR_RNDN);
        mpfr_init(r27638);
        mpfr_init(r27639);
        mpfr_init(r27640);
        mpfr_init_set_str(r27641, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27642, "4", 10, MPFR_RNDN);
        mpfr_init(r27643);
        mpfr_init(r27644);
        mpfr_init(r27645);
        mpfr_init(r27646);
        mpfr_init_set_str(r27647, "2", 10, MPFR_RNDN);
        mpfr_init(r27648);
        mpfr_init(r27649);
        mpfr_init(r27650);
        mpfr_init(r27651);
        mpfr_init(r27652);
        mpfr_init(r27653);
        mpfr_init(r27654);
        mpfr_init_set_str(r27655, "-1", 10, MPFR_RNDN);
        mpfr_init(r27656);
        mpfr_init(r27657);
        mpfr_init(r27658);
        mpfr_init_set_str(r27659, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27660, "8", 10, MPFR_RNDN);
        mpfr_init(r27661);
        mpfr_init(r27662);
        mpfr_init(r27663);
        mpfr_init(r27664);
        mpfr_init(r27665);
        mpfr_init(r27666);
        mpfr_init(r27667);
}

double f_fm(double x) {
        mpfr_set_d(r27631, x, MPFR_RNDN);
        mpfr_abs(r27632, r27631, MPFR_RNDN);
        mpfr_mul(r27633, r27632, r27632, MPFR_RNDN);
        mpfr_exp(r27634, r27633, MPFR_RNDN);
        mpfr_const_pi(r27635, MPFR_RNDN);
        mpfr_sqrt(r27636, r27635, MPFR_RNDN);
        ;
        mpfr_div(r27638, r27637, r27632, MPFR_RNDN);
        mpfr_div(r27639, r27636, r27638, MPFR_RNDN);
        mpfr_div(r27640, r27634, r27639, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27643, r27641, r27642, MPFR_RNDN);
        mpfr_add(r27644, r27641, r27637, MPFR_RNDN);
        mpfr_pow(r27645, r27638, r27644, MPFR_RNDN);
        mpfr_mul(r27646, r27643, r27645, MPFR_RNDN);
        ;
        mpfr_div(r27648, r27637, r27647, MPFR_RNDN);
        mpfr_div(r27649, r27648, r27632, MPFR_RNDN);
        mpfr_div(r27650, r27649, r27632, MPFR_RNDN);
        mpfr_add(r27651, r27650, r27637, MPFR_RNDN);
        mpfr_add(r27652, r27646, r27651, MPFR_RNDN);
        mpfr_mul(r27653, r27640, r27652, MPFR_RNDN);
        mpfr_div(r27654, r27638, r27633, MPFR_RNDN);
        ;
        mpfr_sub(r27656, r27655, r27641, MPFR_RNDN);
        mpfr_pow(r27657, r27632, r27656, MPFR_RNDN);
        mpfr_mul(r27658, r27654, r27657, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27661, r27659, r27660, MPFR_RNDN);
        mpfr_sqrt(r27662, r27636, MPFR_RNDN);
        mpfr_mul(r27663, r27662, r27662, MPFR_RNDN);
        mpfr_div(r27664, r27661, r27663, MPFR_RNDN);
        mpfr_mul(r27665, r27664, r27634, MPFR_RNDN);
        mpfr_mul(r27666, r27658, r27665, MPFR_RNDN);
        mpfr_add(r27667, r27653, r27666, MPFR_RNDN);
        return mpfr_get_d(r27667, MPFR_RNDN);
}

static mpfr_t r27668, r27669, r27670, r27671, r27672, r27673, r27674, r27675, r27676, r27677, r27678, r27679, r27680, r27681, r27682, r27683, r27684, r27685, r27686, r27687, r27688, r27689, r27690, r27691, r27692, r27693, r27694, r27695, r27696, r27697, r27698, r27699, r27700, r27701, r27702, r27703, r27704;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27668);
        mpfr_init(r27669);
        mpfr_init(r27670);
        mpfr_init(r27671);
        mpfr_init(r27672);
        mpfr_init(r27673);
        mpfr_init_set_str(r27674, "1", 10, MPFR_RNDN);
        mpfr_init(r27675);
        mpfr_init(r27676);
        mpfr_init(r27677);
        mpfr_init_set_str(r27678, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27679, "4", 10, MPFR_RNDN);
        mpfr_init(r27680);
        mpfr_init(r27681);
        mpfr_init(r27682);
        mpfr_init(r27683);
        mpfr_init_set_str(r27684, "2", 10, MPFR_RNDN);
        mpfr_init(r27685);
        mpfr_init(r27686);
        mpfr_init(r27687);
        mpfr_init(r27688);
        mpfr_init(r27689);
        mpfr_init(r27690);
        mpfr_init(r27691);
        mpfr_init_set_str(r27692, "-1", 10, MPFR_RNDN);
        mpfr_init(r27693);
        mpfr_init(r27694);
        mpfr_init(r27695);
        mpfr_init_set_str(r27696, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27697, "8", 10, MPFR_RNDN);
        mpfr_init(r27698);
        mpfr_init(r27699);
        mpfr_init(r27700);
        mpfr_init(r27701);
        mpfr_init(r27702);
        mpfr_init(r27703);
        mpfr_init(r27704);
}

double f_dm(double x) {
        mpfr_set_d(r27668, x, MPFR_RNDN);
        mpfr_abs(r27669, r27668, MPFR_RNDN);
        mpfr_mul(r27670, r27669, r27669, MPFR_RNDN);
        mpfr_exp(r27671, r27670, MPFR_RNDN);
        mpfr_const_pi(r27672, MPFR_RNDN);
        mpfr_sqrt(r27673, r27672, MPFR_RNDN);
        ;
        mpfr_div(r27675, r27674, r27669, MPFR_RNDN);
        mpfr_div(r27676, r27673, r27675, MPFR_RNDN);
        mpfr_div(r27677, r27671, r27676, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27680, r27678, r27679, MPFR_RNDN);
        mpfr_add(r27681, r27678, r27674, MPFR_RNDN);
        mpfr_pow(r27682, r27675, r27681, MPFR_RNDN);
        mpfr_mul(r27683, r27680, r27682, MPFR_RNDN);
        ;
        mpfr_div(r27685, r27674, r27684, MPFR_RNDN);
        mpfr_div(r27686, r27685, r27669, MPFR_RNDN);
        mpfr_div(r27687, r27686, r27669, MPFR_RNDN);
        mpfr_add(r27688, r27687, r27674, MPFR_RNDN);
        mpfr_add(r27689, r27683, r27688, MPFR_RNDN);
        mpfr_mul(r27690, r27677, r27689, MPFR_RNDN);
        mpfr_div(r27691, r27675, r27670, MPFR_RNDN);
        ;
        mpfr_sub(r27693, r27692, r27678, MPFR_RNDN);
        mpfr_pow(r27694, r27669, r27693, MPFR_RNDN);
        mpfr_mul(r27695, r27691, r27694, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27698, r27696, r27697, MPFR_RNDN);
        mpfr_sqrt(r27699, r27673, MPFR_RNDN);
        mpfr_mul(r27700, r27699, r27699, MPFR_RNDN);
        mpfr_div(r27701, r27698, r27700, MPFR_RNDN);
        mpfr_mul(r27702, r27701, r27671, MPFR_RNDN);
        mpfr_mul(r27703, r27695, r27702, MPFR_RNDN);
        mpfr_add(r27704, r27690, r27703, MPFR_RNDN);
        return mpfr_get_d(r27704, MPFR_RNDN);
}

