#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Jmat.Real.erfi, branch x less than or equal to 0.5";

double f_if(float x) {
        float r30507 = 1;
        float r30508 = atan2(1.0, 0.0);
        float r30509 = sqrt(r30508);
        float r30510 = r30507 / r30509;
        float r30511 = 2;
        float r30512 = x;
        float r30513 = fabs(r30512);
        float r30514 = r30511 * r30513;
        float r30515 = 3;
        float r30516 = r30511 / r30515;
        float r30517 = r30513 * r30513;
        float r30518 = r30517 * r30513;
        float r30519 = r30516 * r30518;
        float r30520 = r30514 + r30519;
        float r30521 = 5;
        float r30522 = r30507 / r30521;
        float r30523 = r30518 * r30513;
        float r30524 = r30523 * r30513;
        float r30525 = r30522 * r30524;
        float r30526 = r30520 + r30525;
        float r30527 = 21;
        float r30528 = r30507 / r30527;
        float r30529 = r30524 * r30513;
        float r30530 = r30529 * r30513;
        float r30531 = r30528 * r30530;
        float r30532 = r30526 + r30531;
        float r30533 = r30510 * r30532;
        float r30534 = fabs(r30533);
        return r30534;
}

double f_id(double x) {
        double r30535 = 1;
        double r30536 = atan2(1.0, 0.0);
        double r30537 = sqrt(r30536);
        double r30538 = r30535 / r30537;
        double r30539 = 2;
        double r30540 = x;
        double r30541 = fabs(r30540);
        double r30542 = r30539 * r30541;
        double r30543 = 3;
        double r30544 = r30539 / r30543;
        double r30545 = r30541 * r30541;
        double r30546 = r30545 * r30541;
        double r30547 = r30544 * r30546;
        double r30548 = r30542 + r30547;
        double r30549 = 5;
        double r30550 = r30535 / r30549;
        double r30551 = r30546 * r30541;
        double r30552 = r30551 * r30541;
        double r30553 = r30550 * r30552;
        double r30554 = r30548 + r30553;
        double r30555 = 21;
        double r30556 = r30535 / r30555;
        double r30557 = r30552 * r30541;
        double r30558 = r30557 * r30541;
        double r30559 = r30556 * r30558;
        double r30560 = r30554 + r30559;
        double r30561 = r30538 * r30560;
        double r30562 = fabs(r30561);
        return r30562;
}


double f_of(float x) {
        float r30563 = 2/3;
        float r30564 = x;
        float r30565 = fabs(r30564);
        float r30566 = 3;
        float r30567 = pow(r30565, r30566);
        float r30568 = r30563 * r30567;
        float r30569 = 2;
        float r30570 = r30569 * r30565;
        float r30571 = 1/21;
        float r30572 = 7;
        float r30573 = pow(r30565, r30572);
        float r30574 = r30571 * r30573;
        float r30575 = 1/5;
        float r30576 = 5;
        float r30577 = pow(r30565, r30576);
        float r30578 = r30575 * r30577;
        float r30579 = r30574 + r30578;
        float r30580 = r30570 + r30579;
        float r30581 = r30568 + r30580;
        float r30582 = 1;
        float r30583 = atan2(1.0, 0.0);
        float r30584 = r30582 / r30583;
        float r30585 = sqrt(r30584);
        float r30586 = r30581 * r30585;
        float r30587 = fabs(r30586);
        return r30587;
}

double f_od(double x) {
        double r30588 = 2/3;
        double r30589 = x;
        double r30590 = fabs(r30589);
        double r30591 = 3;
        double r30592 = pow(r30590, r30591);
        double r30593 = r30588 * r30592;
        double r30594 = 2;
        double r30595 = r30594 * r30590;
        double r30596 = 1/21;
        double r30597 = 7;
        double r30598 = pow(r30590, r30597);
        double r30599 = r30596 * r30598;
        double r30600 = 1/5;
        double r30601 = 5;
        double r30602 = pow(r30590, r30601);
        double r30603 = r30600 * r30602;
        double r30604 = r30599 + r30603;
        double r30605 = r30595 + r30604;
        double r30606 = r30593 + r30605;
        double r30607 = 1;
        double r30608 = atan2(1.0, 0.0);
        double r30609 = r30607 / r30608;
        double r30610 = sqrt(r30609);
        double r30611 = r30606 * r30610;
        double r30612 = fabs(r30611);
        return r30612;
}

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 r30613, r30614, r30615, r30616, r30617, r30618, r30619, r30620, r30621, r30622, r30623, r30624, r30625, r30626, r30627, r30628, r30629, r30630, r30631, r30632, r30633, r30634, r30635, r30636, r30637, r30638, r30639, r30640;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30613, "1", 10, MPFR_RNDN);
        mpfr_init(r30614);
        mpfr_init(r30615);
        mpfr_init(r30616);
        mpfr_init_set_str(r30617, "2", 10, MPFR_RNDN);
        mpfr_init(r30618);
        mpfr_init(r30619);
        mpfr_init(r30620);
        mpfr_init_set_str(r30621, "3", 10, MPFR_RNDN);
        mpfr_init(r30622);
        mpfr_init(r30623);
        mpfr_init(r30624);
        mpfr_init(r30625);
        mpfr_init(r30626);
        mpfr_init_set_str(r30627, "5", 10, MPFR_RNDN);
        mpfr_init(r30628);
        mpfr_init(r30629);
        mpfr_init(r30630);
        mpfr_init(r30631);
        mpfr_init(r30632);
        mpfr_init_set_str(r30633, "21", 10, MPFR_RNDN);
        mpfr_init(r30634);
        mpfr_init(r30635);
        mpfr_init(r30636);
        mpfr_init(r30637);
        mpfr_init(r30638);
        mpfr_init(r30639);
        mpfr_init(r30640);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30614, MPFR_RNDN);
        mpfr_sqrt(r30615, r30614, MPFR_RNDN);
        mpfr_div(r30616, r30613, r30615, MPFR_RNDN);
        ;
        mpfr_set_d(r30618, x, MPFR_RNDN);
        mpfr_abs(r30619, r30618, MPFR_RNDN);
        mpfr_mul(r30620, r30617, r30619, MPFR_RNDN);
        ;
        mpfr_div(r30622, r30617, r30621, MPFR_RNDN);
        mpfr_mul(r30623, r30619, r30619, MPFR_RNDN);
        mpfr_mul(r30624, r30623, r30619, MPFR_RNDN);
        mpfr_mul(r30625, r30622, r30624, MPFR_RNDN);
        mpfr_add(r30626, r30620, r30625, MPFR_RNDN);
        ;
        mpfr_div(r30628, r30613, r30627, MPFR_RNDN);
        mpfr_mul(r30629, r30624, r30619, MPFR_RNDN);
        mpfr_mul(r30630, r30629, r30619, MPFR_RNDN);
        mpfr_mul(r30631, r30628, r30630, MPFR_RNDN);
        mpfr_add(r30632, r30626, r30631, MPFR_RNDN);
        ;
        mpfr_div(r30634, r30613, r30633, MPFR_RNDN);
        mpfr_mul(r30635, r30630, r30619, MPFR_RNDN);
        mpfr_mul(r30636, r30635, r30619, MPFR_RNDN);
        mpfr_mul(r30637, r30634, r30636, MPFR_RNDN);
        mpfr_add(r30638, r30632, r30637, MPFR_RNDN);
        mpfr_mul(r30639, r30616, r30638, MPFR_RNDN);
        mpfr_abs(r30640, r30639, MPFR_RNDN);
        return mpfr_get_d(r30640, MPFR_RNDN);
}

static mpfr_t r30641, r30642, r30643, r30644, r30645, r30646, r30647, r30648, r30649, r30650, r30651, r30652, r30653, r30654, r30655, r30656, r30657, r30658, r30659, r30660, r30661, r30662, r30663, r30664, r30665;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30641, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30642);
        mpfr_init(r30643);
        mpfr_init_set_str(r30644, "3", 10, MPFR_RNDN);
        mpfr_init(r30645);
        mpfr_init(r30646);
        mpfr_init_set_str(r30647, "2", 10, MPFR_RNDN);
        mpfr_init(r30648);
        mpfr_init_set_str(r30649, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30650, "7", 10, MPFR_RNDN);
        mpfr_init(r30651);
        mpfr_init(r30652);
        mpfr_init_set_str(r30653, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30654, "5", 10, MPFR_RNDN);
        mpfr_init(r30655);
        mpfr_init(r30656);
        mpfr_init(r30657);
        mpfr_init(r30658);
        mpfr_init(r30659);
        mpfr_init_set_str(r30660, "1", 10, MPFR_RNDN);
        mpfr_init(r30661);
        mpfr_init(r30662);
        mpfr_init(r30663);
        mpfr_init(r30664);
        mpfr_init(r30665);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r30642, x, MPFR_RNDN);
        mpfr_abs(r30643, r30642, MPFR_RNDN);
        ;
        mpfr_pow(r30645, r30643, r30644, MPFR_RNDN);
        mpfr_mul(r30646, r30641, r30645, MPFR_RNDN);
        ;
        mpfr_mul(r30648, r30647, r30643, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30651, r30643, r30650, MPFR_RNDN);
        mpfr_mul(r30652, r30649, r30651, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30655, r30643, r30654, MPFR_RNDN);
        mpfr_mul(r30656, r30653, r30655, MPFR_RNDN);
        mpfr_add(r30657, r30652, r30656, MPFR_RNDN);
        mpfr_add(r30658, r30648, r30657, MPFR_RNDN);
        mpfr_add(r30659, r30646, r30658, MPFR_RNDN);
        ;
        mpfr_const_pi(r30661, MPFR_RNDN);
        mpfr_div(r30662, r30660, r30661, MPFR_RNDN);
        mpfr_sqrt(r30663, r30662, MPFR_RNDN);
        mpfr_mul(r30664, r30659, r30663, MPFR_RNDN);
        mpfr_abs(r30665, r30664, MPFR_RNDN);
        return mpfr_get_d(r30665, MPFR_RNDN);
}

static mpfr_t r30666, r30667, r30668, r30669, r30670, r30671, r30672, r30673, r30674, r30675, r30676, r30677, r30678, r30679, r30680, r30681, r30682, r30683, r30684, r30685, r30686, r30687, r30688, r30689, r30690;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30666, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30667);
        mpfr_init(r30668);
        mpfr_init_set_str(r30669, "3", 10, MPFR_RNDN);
        mpfr_init(r30670);
        mpfr_init(r30671);
        mpfr_init_set_str(r30672, "2", 10, MPFR_RNDN);
        mpfr_init(r30673);
        mpfr_init_set_str(r30674, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30675, "7", 10, MPFR_RNDN);
        mpfr_init(r30676);
        mpfr_init(r30677);
        mpfr_init_set_str(r30678, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30679, "5", 10, MPFR_RNDN);
        mpfr_init(r30680);
        mpfr_init(r30681);
        mpfr_init(r30682);
        mpfr_init(r30683);
        mpfr_init(r30684);
        mpfr_init_set_str(r30685, "1", 10, MPFR_RNDN);
        mpfr_init(r30686);
        mpfr_init(r30687);
        mpfr_init(r30688);
        mpfr_init(r30689);
        mpfr_init(r30690);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r30667, x, MPFR_RNDN);
        mpfr_abs(r30668, r30667, MPFR_RNDN);
        ;
        mpfr_pow(r30670, r30668, r30669, MPFR_RNDN);
        mpfr_mul(r30671, r30666, r30670, MPFR_RNDN);
        ;
        mpfr_mul(r30673, r30672, r30668, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30676, r30668, r30675, MPFR_RNDN);
        mpfr_mul(r30677, r30674, r30676, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30680, r30668, r30679, MPFR_RNDN);
        mpfr_mul(r30681, r30678, r30680, MPFR_RNDN);
        mpfr_add(r30682, r30677, r30681, MPFR_RNDN);
        mpfr_add(r30683, r30673, r30682, MPFR_RNDN);
        mpfr_add(r30684, r30671, r30683, MPFR_RNDN);
        ;
        mpfr_const_pi(r30686, MPFR_RNDN);
        mpfr_div(r30687, r30685, r30686, MPFR_RNDN);
        mpfr_sqrt(r30688, r30687, MPFR_RNDN);
        mpfr_mul(r30689, r30684, r30688, MPFR_RNDN);
        mpfr_abs(r30690, r30689, MPFR_RNDN);
        return mpfr_get_d(r30690, MPFR_RNDN);
}

