#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 r30448 = 1;
        float r30449 = atan2(1.0, 0.0);
        float r30450 = sqrt(r30449);
        float r30451 = r30448 / r30450;
        float r30452 = 2;
        float r30453 = x;
        float r30454 = fabs(r30453);
        float r30455 = r30452 * r30454;
        float r30456 = 3;
        float r30457 = r30452 / r30456;
        float r30458 = r30454 * r30454;
        float r30459 = r30458 * r30454;
        float r30460 = r30457 * r30459;
        float r30461 = r30455 + r30460;
        float r30462 = 5;
        float r30463 = r30448 / r30462;
        float r30464 = r30459 * r30454;
        float r30465 = r30464 * r30454;
        float r30466 = r30463 * r30465;
        float r30467 = r30461 + r30466;
        float r30468 = 21;
        float r30469 = r30448 / r30468;
        float r30470 = r30465 * r30454;
        float r30471 = r30470 * r30454;
        float r30472 = r30469 * r30471;
        float r30473 = r30467 + r30472;
        float r30474 = r30451 * r30473;
        float r30475 = fabs(r30474);
        return r30475;
}

double f_id(double x) {
        double r30476 = 1;
        double r30477 = atan2(1.0, 0.0);
        double r30478 = sqrt(r30477);
        double r30479 = r30476 / r30478;
        double r30480 = 2;
        double r30481 = x;
        double r30482 = fabs(r30481);
        double r30483 = r30480 * r30482;
        double r30484 = 3;
        double r30485 = r30480 / r30484;
        double r30486 = r30482 * r30482;
        double r30487 = r30486 * r30482;
        double r30488 = r30485 * r30487;
        double r30489 = r30483 + r30488;
        double r30490 = 5;
        double r30491 = r30476 / r30490;
        double r30492 = r30487 * r30482;
        double r30493 = r30492 * r30482;
        double r30494 = r30491 * r30493;
        double r30495 = r30489 + r30494;
        double r30496 = 21;
        double r30497 = r30476 / r30496;
        double r30498 = r30493 * r30482;
        double r30499 = r30498 * r30482;
        double r30500 = r30497 * r30499;
        double r30501 = r30495 + r30500;
        double r30502 = r30479 * r30501;
        double r30503 = fabs(r30502);
        return r30503;
}


double f_of(float x) {
        float r30504 = 2/3;
        float r30505 = x;
        float r30506 = fabs(r30505);
        float r30507 = 3;
        float r30508 = pow(r30506, r30507);
        float r30509 = r30504 * r30508;
        float r30510 = 2;
        float r30511 = r30510 * r30506;
        float r30512 = 1/21;
        float r30513 = 7;
        float r30514 = pow(r30506, r30513);
        float r30515 = r30512 * r30514;
        float r30516 = 1/5;
        float r30517 = 5;
        float r30518 = pow(r30506, r30517);
        float r30519 = r30516 * r30518;
        float r30520 = r30515 + r30519;
        float r30521 = r30511 + r30520;
        float r30522 = r30509 + r30521;
        float r30523 = 1;
        float r30524 = atan2(1.0, 0.0);
        float r30525 = r30523 / r30524;
        float r30526 = sqrt(r30525);
        float r30527 = r30522 * r30526;
        float r30528 = fabs(r30527);
        return r30528;
}

double f_od(double x) {
        double r30529 = 2/3;
        double r30530 = x;
        double r30531 = fabs(r30530);
        double r30532 = 3;
        double r30533 = pow(r30531, r30532);
        double r30534 = r30529 * r30533;
        double r30535 = 2;
        double r30536 = r30535 * r30531;
        double r30537 = 1/21;
        double r30538 = 7;
        double r30539 = pow(r30531, r30538);
        double r30540 = r30537 * r30539;
        double r30541 = 1/5;
        double r30542 = 5;
        double r30543 = pow(r30531, r30542);
        double r30544 = r30541 * r30543;
        double r30545 = r30540 + r30544;
        double r30546 = r30536 + r30545;
        double r30547 = r30534 + r30546;
        double r30548 = 1;
        double r30549 = atan2(1.0, 0.0);
        double r30550 = r30548 / r30549;
        double r30551 = sqrt(r30550);
        double r30552 = r30547 * r30551;
        double r30553 = fabs(r30552);
        return r30553;
}

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 r30554, r30555, r30556, r30557, r30558, r30559, r30560, r30561, r30562, r30563, r30564, r30565, r30566, r30567, r30568, r30569, r30570, r30571, r30572, r30573, r30574, r30575, r30576, r30577, r30578, r30579, r30580, r30581;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30554, "1", 10, MPFR_RNDN);
        mpfr_init(r30555);
        mpfr_init(r30556);
        mpfr_init(r30557);
        mpfr_init_set_str(r30558, "2", 10, MPFR_RNDN);
        mpfr_init(r30559);
        mpfr_init(r30560);
        mpfr_init(r30561);
        mpfr_init_set_str(r30562, "3", 10, MPFR_RNDN);
        mpfr_init(r30563);
        mpfr_init(r30564);
        mpfr_init(r30565);
        mpfr_init(r30566);
        mpfr_init(r30567);
        mpfr_init_set_str(r30568, "5", 10, MPFR_RNDN);
        mpfr_init(r30569);
        mpfr_init(r30570);
        mpfr_init(r30571);
        mpfr_init(r30572);
        mpfr_init(r30573);
        mpfr_init_set_str(r30574, "21", 10, MPFR_RNDN);
        mpfr_init(r30575);
        mpfr_init(r30576);
        mpfr_init(r30577);
        mpfr_init(r30578);
        mpfr_init(r30579);
        mpfr_init(r30580);
        mpfr_init(r30581);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30555, MPFR_RNDN);
        mpfr_sqrt(r30556, r30555, MPFR_RNDN);
        mpfr_div(r30557, r30554, r30556, MPFR_RNDN);
        ;
        mpfr_set_d(r30559, x, MPFR_RNDN);
        mpfr_abs(r30560, r30559, MPFR_RNDN);
        mpfr_mul(r30561, r30558, r30560, MPFR_RNDN);
        ;
        mpfr_div(r30563, r30558, r30562, MPFR_RNDN);
        mpfr_mul(r30564, r30560, r30560, MPFR_RNDN);
        mpfr_mul(r30565, r30564, r30560, MPFR_RNDN);
        mpfr_mul(r30566, r30563, r30565, MPFR_RNDN);
        mpfr_add(r30567, r30561, r30566, MPFR_RNDN);
        ;
        mpfr_div(r30569, r30554, r30568, MPFR_RNDN);
        mpfr_mul(r30570, r30565, r30560, MPFR_RNDN);
        mpfr_mul(r30571, r30570, r30560, MPFR_RNDN);
        mpfr_mul(r30572, r30569, r30571, MPFR_RNDN);
        mpfr_add(r30573, r30567, r30572, MPFR_RNDN);
        ;
        mpfr_div(r30575, r30554, r30574, MPFR_RNDN);
        mpfr_mul(r30576, r30571, r30560, MPFR_RNDN);
        mpfr_mul(r30577, r30576, r30560, MPFR_RNDN);
        mpfr_mul(r30578, r30575, r30577, MPFR_RNDN);
        mpfr_add(r30579, r30573, r30578, MPFR_RNDN);
        mpfr_mul(r30580, r30557, r30579, MPFR_RNDN);
        mpfr_abs(r30581, r30580, MPFR_RNDN);
        return mpfr_get_d(r30581, MPFR_RNDN);
}

static mpfr_t r30582, r30583, r30584, r30585, r30586, r30587, r30588, r30589, r30590, r30591, r30592, r30593, r30594, r30595, r30596, r30597, r30598, r30599, r30600, r30601, r30602, r30603, r30604, r30605, r30606;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30582, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30583);
        mpfr_init(r30584);
        mpfr_init_set_str(r30585, "3", 10, MPFR_RNDN);
        mpfr_init(r30586);
        mpfr_init(r30587);
        mpfr_init_set_str(r30588, "2", 10, MPFR_RNDN);
        mpfr_init(r30589);
        mpfr_init_set_str(r30590, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30591, "7", 10, MPFR_RNDN);
        mpfr_init(r30592);
        mpfr_init(r30593);
        mpfr_init_set_str(r30594, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30595, "5", 10, MPFR_RNDN);
        mpfr_init(r30596);
        mpfr_init(r30597);
        mpfr_init(r30598);
        mpfr_init(r30599);
        mpfr_init(r30600);
        mpfr_init_set_str(r30601, "1", 10, MPFR_RNDN);
        mpfr_init(r30602);
        mpfr_init(r30603);
        mpfr_init(r30604);
        mpfr_init(r30605);
        mpfr_init(r30606);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r30583, x, MPFR_RNDN);
        mpfr_abs(r30584, r30583, MPFR_RNDN);
        ;
        mpfr_pow(r30586, r30584, r30585, MPFR_RNDN);
        mpfr_mul(r30587, r30582, r30586, MPFR_RNDN);
        ;
        mpfr_mul(r30589, r30588, r30584, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30592, r30584, r30591, MPFR_RNDN);
        mpfr_mul(r30593, r30590, r30592, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30596, r30584, r30595, MPFR_RNDN);
        mpfr_mul(r30597, r30594, r30596, MPFR_RNDN);
        mpfr_add(r30598, r30593, r30597, MPFR_RNDN);
        mpfr_add(r30599, r30589, r30598, MPFR_RNDN);
        mpfr_add(r30600, r30587, r30599, MPFR_RNDN);
        ;
        mpfr_const_pi(r30602, MPFR_RNDN);
        mpfr_div(r30603, r30601, r30602, MPFR_RNDN);
        mpfr_sqrt(r30604, r30603, MPFR_RNDN);
        mpfr_mul(r30605, r30600, r30604, MPFR_RNDN);
        mpfr_abs(r30606, r30605, MPFR_RNDN);
        return mpfr_get_d(r30606, MPFR_RNDN);
}

static mpfr_t r30607, r30608, r30609, r30610, r30611, r30612, r30613, r30614, r30615, r30616, r30617, r30618, r30619, r30620, r30621, r30622, r30623, r30624, r30625, r30626, r30627, r30628, r30629, r30630, r30631;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30607, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30608);
        mpfr_init(r30609);
        mpfr_init_set_str(r30610, "3", 10, MPFR_RNDN);
        mpfr_init(r30611);
        mpfr_init(r30612);
        mpfr_init_set_str(r30613, "2", 10, MPFR_RNDN);
        mpfr_init(r30614);
        mpfr_init_set_str(r30615, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30616, "7", 10, MPFR_RNDN);
        mpfr_init(r30617);
        mpfr_init(r30618);
        mpfr_init_set_str(r30619, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30620, "5", 10, MPFR_RNDN);
        mpfr_init(r30621);
        mpfr_init(r30622);
        mpfr_init(r30623);
        mpfr_init(r30624);
        mpfr_init(r30625);
        mpfr_init_set_str(r30626, "1", 10, MPFR_RNDN);
        mpfr_init(r30627);
        mpfr_init(r30628);
        mpfr_init(r30629);
        mpfr_init(r30630);
        mpfr_init(r30631);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r30608, x, MPFR_RNDN);
        mpfr_abs(r30609, r30608, MPFR_RNDN);
        ;
        mpfr_pow(r30611, r30609, r30610, MPFR_RNDN);
        mpfr_mul(r30612, r30607, r30611, MPFR_RNDN);
        ;
        mpfr_mul(r30614, r30613, r30609, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30617, r30609, r30616, MPFR_RNDN);
        mpfr_mul(r30618, r30615, r30617, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30621, r30609, r30620, MPFR_RNDN);
        mpfr_mul(r30622, r30619, r30621, MPFR_RNDN);
        mpfr_add(r30623, r30618, r30622, MPFR_RNDN);
        mpfr_add(r30624, r30614, r30623, MPFR_RNDN);
        mpfr_add(r30625, r30612, r30624, MPFR_RNDN);
        ;
        mpfr_const_pi(r30627, MPFR_RNDN);
        mpfr_div(r30628, r30626, r30627, MPFR_RNDN);
        mpfr_sqrt(r30629, r30628, MPFR_RNDN);
        mpfr_mul(r30630, r30625, r30629, MPFR_RNDN);
        mpfr_abs(r30631, r30630, MPFR_RNDN);
        return mpfr_get_d(r30631, MPFR_RNDN);
}

