#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 r30379 = 1;
        float r30380 = atan2(1.0, 0.0);
        float r30381 = sqrt(r30380);
        float r30382 = r30379 / r30381;
        float r30383 = 2;
        float r30384 = x;
        float r30385 = fabs(r30384);
        float r30386 = r30383 * r30385;
        float r30387 = 3;
        float r30388 = r30383 / r30387;
        float r30389 = r30385 * r30385;
        float r30390 = r30389 * r30385;
        float r30391 = r30388 * r30390;
        float r30392 = r30386 + r30391;
        float r30393 = 5;
        float r30394 = r30379 / r30393;
        float r30395 = r30390 * r30385;
        float r30396 = r30395 * r30385;
        float r30397 = r30394 * r30396;
        float r30398 = r30392 + r30397;
        float r30399 = 21;
        float r30400 = r30379 / r30399;
        float r30401 = r30396 * r30385;
        float r30402 = r30401 * r30385;
        float r30403 = r30400 * r30402;
        float r30404 = r30398 + r30403;
        float r30405 = r30382 * r30404;
        float r30406 = fabs(r30405);
        return r30406;
}

double f_id(double x) {
        double r30407 = 1;
        double r30408 = atan2(1.0, 0.0);
        double r30409 = sqrt(r30408);
        double r30410 = r30407 / r30409;
        double r30411 = 2;
        double r30412 = x;
        double r30413 = fabs(r30412);
        double r30414 = r30411 * r30413;
        double r30415 = 3;
        double r30416 = r30411 / r30415;
        double r30417 = r30413 * r30413;
        double r30418 = r30417 * r30413;
        double r30419 = r30416 * r30418;
        double r30420 = r30414 + r30419;
        double r30421 = 5;
        double r30422 = r30407 / r30421;
        double r30423 = r30418 * r30413;
        double r30424 = r30423 * r30413;
        double r30425 = r30422 * r30424;
        double r30426 = r30420 + r30425;
        double r30427 = 21;
        double r30428 = r30407 / r30427;
        double r30429 = r30424 * r30413;
        double r30430 = r30429 * r30413;
        double r30431 = r30428 * r30430;
        double r30432 = r30426 + r30431;
        double r30433 = r30410 * r30432;
        double r30434 = fabs(r30433);
        return r30434;
}


double f_of(float x) {
        float r30435 = 2/3;
        float r30436 = x;
        float r30437 = fabs(r30436);
        float r30438 = 3;
        float r30439 = pow(r30437, r30438);
        float r30440 = r30435 * r30439;
        float r30441 = 2;
        float r30442 = r30441 * r30437;
        float r30443 = 1/21;
        float r30444 = 7;
        float r30445 = pow(r30437, r30444);
        float r30446 = r30443 * r30445;
        float r30447 = 1/5;
        float r30448 = 5;
        float r30449 = pow(r30437, r30448);
        float r30450 = r30447 * r30449;
        float r30451 = r30446 + r30450;
        float r30452 = r30442 + r30451;
        float r30453 = r30440 + r30452;
        float r30454 = 1;
        float r30455 = atan2(1.0, 0.0);
        float r30456 = r30454 / r30455;
        float r30457 = sqrt(r30456);
        float r30458 = r30453 * r30457;
        float r30459 = fabs(r30458);
        return r30459;
}

double f_od(double x) {
        double r30460 = 2/3;
        double r30461 = x;
        double r30462 = fabs(r30461);
        double r30463 = 3;
        double r30464 = pow(r30462, r30463);
        double r30465 = r30460 * r30464;
        double r30466 = 2;
        double r30467 = r30466 * r30462;
        double r30468 = 1/21;
        double r30469 = 7;
        double r30470 = pow(r30462, r30469);
        double r30471 = r30468 * r30470;
        double r30472 = 1/5;
        double r30473 = 5;
        double r30474 = pow(r30462, r30473);
        double r30475 = r30472 * r30474;
        double r30476 = r30471 + r30475;
        double r30477 = r30467 + r30476;
        double r30478 = r30465 + r30477;
        double r30479 = 1;
        double r30480 = atan2(1.0, 0.0);
        double r30481 = r30479 / r30480;
        double r30482 = sqrt(r30481);
        double r30483 = r30478 * r30482;
        double r30484 = fabs(r30483);
        return r30484;
}

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 r30485, r30486, r30487, r30488, r30489, r30490, r30491, r30492, r30493, r30494, r30495, r30496, r30497, r30498, r30499, r30500, r30501, r30502, r30503, r30504, r30505, r30506, r30507, r30508, r30509, r30510, r30511, r30512;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30485, "1", 10, MPFR_RNDN);
        mpfr_init(r30486);
        mpfr_init(r30487);
        mpfr_init(r30488);
        mpfr_init_set_str(r30489, "2", 10, MPFR_RNDN);
        mpfr_init(r30490);
        mpfr_init(r30491);
        mpfr_init(r30492);
        mpfr_init_set_str(r30493, "3", 10, MPFR_RNDN);
        mpfr_init(r30494);
        mpfr_init(r30495);
        mpfr_init(r30496);
        mpfr_init(r30497);
        mpfr_init(r30498);
        mpfr_init_set_str(r30499, "5", 10, MPFR_RNDN);
        mpfr_init(r30500);
        mpfr_init(r30501);
        mpfr_init(r30502);
        mpfr_init(r30503);
        mpfr_init(r30504);
        mpfr_init_set_str(r30505, "21", 10, MPFR_RNDN);
        mpfr_init(r30506);
        mpfr_init(r30507);
        mpfr_init(r30508);
        mpfr_init(r30509);
        mpfr_init(r30510);
        mpfr_init(r30511);
        mpfr_init(r30512);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30486, MPFR_RNDN);
        mpfr_sqrt(r30487, r30486, MPFR_RNDN);
        mpfr_div(r30488, r30485, r30487, MPFR_RNDN);
        ;
        mpfr_set_d(r30490, x, MPFR_RNDN);
        mpfr_abs(r30491, r30490, MPFR_RNDN);
        mpfr_mul(r30492, r30489, r30491, MPFR_RNDN);
        ;
        mpfr_div(r30494, r30489, r30493, MPFR_RNDN);
        mpfr_mul(r30495, r30491, r30491, MPFR_RNDN);
        mpfr_mul(r30496, r30495, r30491, MPFR_RNDN);
        mpfr_mul(r30497, r30494, r30496, MPFR_RNDN);
        mpfr_add(r30498, r30492, r30497, MPFR_RNDN);
        ;
        mpfr_div(r30500, r30485, r30499, MPFR_RNDN);
        mpfr_mul(r30501, r30496, r30491, MPFR_RNDN);
        mpfr_mul(r30502, r30501, r30491, MPFR_RNDN);
        mpfr_mul(r30503, r30500, r30502, MPFR_RNDN);
        mpfr_add(r30504, r30498, r30503, MPFR_RNDN);
        ;
        mpfr_div(r30506, r30485, r30505, MPFR_RNDN);
        mpfr_mul(r30507, r30502, r30491, MPFR_RNDN);
        mpfr_mul(r30508, r30507, r30491, MPFR_RNDN);
        mpfr_mul(r30509, r30506, r30508, MPFR_RNDN);
        mpfr_add(r30510, r30504, r30509, MPFR_RNDN);
        mpfr_mul(r30511, r30488, r30510, MPFR_RNDN);
        mpfr_abs(r30512, r30511, MPFR_RNDN);
        return mpfr_get_d(r30512, MPFR_RNDN);
}

static mpfr_t r30513, r30514, r30515, r30516, r30517, r30518, r30519, r30520, r30521, r30522, r30523, r30524, r30525, r30526, r30527, r30528, r30529, r30530, r30531, r30532, r30533, r30534, r30535, r30536, r30537;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30513, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30514);
        mpfr_init(r30515);
        mpfr_init_set_str(r30516, "3", 10, MPFR_RNDN);
        mpfr_init(r30517);
        mpfr_init(r30518);
        mpfr_init_set_str(r30519, "2", 10, MPFR_RNDN);
        mpfr_init(r30520);
        mpfr_init_set_str(r30521, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30522, "7", 10, MPFR_RNDN);
        mpfr_init(r30523);
        mpfr_init(r30524);
        mpfr_init_set_str(r30525, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30526, "5", 10, MPFR_RNDN);
        mpfr_init(r30527);
        mpfr_init(r30528);
        mpfr_init(r30529);
        mpfr_init(r30530);
        mpfr_init(r30531);
        mpfr_init_set_str(r30532, "1", 10, MPFR_RNDN);
        mpfr_init(r30533);
        mpfr_init(r30534);
        mpfr_init(r30535);
        mpfr_init(r30536);
        mpfr_init(r30537);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r30514, x, MPFR_RNDN);
        mpfr_abs(r30515, r30514, MPFR_RNDN);
        ;
        mpfr_pow(r30517, r30515, r30516, MPFR_RNDN);
        mpfr_mul(r30518, r30513, r30517, MPFR_RNDN);
        ;
        mpfr_mul(r30520, r30519, r30515, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30523, r30515, r30522, MPFR_RNDN);
        mpfr_mul(r30524, r30521, r30523, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30527, r30515, r30526, MPFR_RNDN);
        mpfr_mul(r30528, r30525, r30527, MPFR_RNDN);
        mpfr_add(r30529, r30524, r30528, MPFR_RNDN);
        mpfr_add(r30530, r30520, r30529, MPFR_RNDN);
        mpfr_add(r30531, r30518, r30530, MPFR_RNDN);
        ;
        mpfr_const_pi(r30533, MPFR_RNDN);
        mpfr_div(r30534, r30532, r30533, MPFR_RNDN);
        mpfr_sqrt(r30535, r30534, MPFR_RNDN);
        mpfr_mul(r30536, r30531, r30535, MPFR_RNDN);
        mpfr_abs(r30537, r30536, MPFR_RNDN);
        return mpfr_get_d(r30537, MPFR_RNDN);
}

static mpfr_t r30538, r30539, r30540, r30541, r30542, r30543, r30544, r30545, r30546, r30547, r30548, r30549, r30550, r30551, r30552, r30553, r30554, r30555, r30556, r30557, r30558, r30559, r30560, r30561, r30562;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30538, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30539);
        mpfr_init(r30540);
        mpfr_init_set_str(r30541, "3", 10, MPFR_RNDN);
        mpfr_init(r30542);
        mpfr_init(r30543);
        mpfr_init_set_str(r30544, "2", 10, MPFR_RNDN);
        mpfr_init(r30545);
        mpfr_init_set_str(r30546, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30547, "7", 10, MPFR_RNDN);
        mpfr_init(r30548);
        mpfr_init(r30549);
        mpfr_init_set_str(r30550, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30551, "5", 10, MPFR_RNDN);
        mpfr_init(r30552);
        mpfr_init(r30553);
        mpfr_init(r30554);
        mpfr_init(r30555);
        mpfr_init(r30556);
        mpfr_init_set_str(r30557, "1", 10, MPFR_RNDN);
        mpfr_init(r30558);
        mpfr_init(r30559);
        mpfr_init(r30560);
        mpfr_init(r30561);
        mpfr_init(r30562);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r30539, x, MPFR_RNDN);
        mpfr_abs(r30540, r30539, MPFR_RNDN);
        ;
        mpfr_pow(r30542, r30540, r30541, MPFR_RNDN);
        mpfr_mul(r30543, r30538, r30542, MPFR_RNDN);
        ;
        mpfr_mul(r30545, r30544, r30540, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30548, r30540, r30547, MPFR_RNDN);
        mpfr_mul(r30549, r30546, r30548, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30552, r30540, r30551, MPFR_RNDN);
        mpfr_mul(r30553, r30550, r30552, MPFR_RNDN);
        mpfr_add(r30554, r30549, r30553, MPFR_RNDN);
        mpfr_add(r30555, r30545, r30554, MPFR_RNDN);
        mpfr_add(r30556, r30543, r30555, MPFR_RNDN);
        ;
        mpfr_const_pi(r30558, MPFR_RNDN);
        mpfr_div(r30559, r30557, r30558, MPFR_RNDN);
        mpfr_sqrt(r30560, r30559, MPFR_RNDN);
        mpfr_mul(r30561, r30556, r30560, MPFR_RNDN);
        mpfr_abs(r30562, r30561, MPFR_RNDN);
        return mpfr_get_d(r30562, MPFR_RNDN);
}

