#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 r11353 = 1;
        float r11354 = atan2(1.0, 0.0);
        float r11355 = sqrt(r11354);
        float r11356 = r11353 / r11355;
        float r11357 = 2;
        float r11358 = x;
        float r11359 = fabs(r11358);
        float r11360 = r11357 * r11359;
        float r11361 = 3;
        float r11362 = r11357 / r11361;
        float r11363 = r11359 * r11359;
        float r11364 = r11363 * r11359;
        float r11365 = r11362 * r11364;
        float r11366 = r11360 + r11365;
        float r11367 = 5;
        float r11368 = r11353 / r11367;
        float r11369 = r11364 * r11359;
        float r11370 = r11369 * r11359;
        float r11371 = r11368 * r11370;
        float r11372 = r11366 + r11371;
        float r11373 = 21;
        float r11374 = r11353 / r11373;
        float r11375 = r11370 * r11359;
        float r11376 = r11375 * r11359;
        float r11377 = r11374 * r11376;
        float r11378 = r11372 + r11377;
        float r11379 = r11356 * r11378;
        float r11380 = fabs(r11379);
        return r11380;
}

double f_id(double x) {
        double r11381 = 1;
        double r11382 = atan2(1.0, 0.0);
        double r11383 = sqrt(r11382);
        double r11384 = r11381 / r11383;
        double r11385 = 2;
        double r11386 = x;
        double r11387 = fabs(r11386);
        double r11388 = r11385 * r11387;
        double r11389 = 3;
        double r11390 = r11385 / r11389;
        double r11391 = r11387 * r11387;
        double r11392 = r11391 * r11387;
        double r11393 = r11390 * r11392;
        double r11394 = r11388 + r11393;
        double r11395 = 5;
        double r11396 = r11381 / r11395;
        double r11397 = r11392 * r11387;
        double r11398 = r11397 * r11387;
        double r11399 = r11396 * r11398;
        double r11400 = r11394 + r11399;
        double r11401 = 21;
        double r11402 = r11381 / r11401;
        double r11403 = r11398 * r11387;
        double r11404 = r11403 * r11387;
        double r11405 = r11402 * r11404;
        double r11406 = r11400 + r11405;
        double r11407 = r11384 * r11406;
        double r11408 = fabs(r11407);
        return r11408;
}


double f_of(float x) {
        float r11409 = 1;
        float r11410 = atan2(1.0, 0.0);
        float r11411 = sqrt(r11410);
        float r11412 = r11409 / r11411;
        float r11413 = 2;
        float r11414 = x;
        float r11415 = fabs(r11414);
        float r11416 = r11413 * r11415;
        float r11417 = 3;
        float r11418 = r11413 / r11417;
        float r11419 = r11415 * r11415;
        float r11420 = r11419 * r11415;
        float r11421 = r11418 * r11420;
        float r11422 = r11416 + r11421;
        float r11423 = 5;
        float r11424 = r11409 / r11423;
        float r11425 = r11420 * r11415;
        float r11426 = r11425 * r11415;
        float r11427 = r11424 * r11426;
        float r11428 = r11422 + r11427;
        float r11429 = 21;
        float r11430 = r11409 / r11429;
        float r11431 = sqrt(r11415);
        float r11432 = r11419 * r11431;
        float r11433 = r11432 * r11431;
        float r11434 = r11433 * r11415;
        float r11435 = r11434 * r11415;
        float r11436 = r11435 * r11415;
        float r11437 = r11436 * r11415;
        float r11438 = r11430 * r11437;
        float r11439 = r11428 + r11438;
        float r11440 = r11412 * r11439;
        float r11441 = fabs(r11440);
        return r11441;
}

double f_od(double x) {
        double r11442 = 1;
        double r11443 = atan2(1.0, 0.0);
        double r11444 = sqrt(r11443);
        double r11445 = r11442 / r11444;
        double r11446 = 2;
        double r11447 = x;
        double r11448 = fabs(r11447);
        double r11449 = r11446 * r11448;
        double r11450 = 3;
        double r11451 = r11446 / r11450;
        double r11452 = r11448 * r11448;
        double r11453 = r11452 * r11448;
        double r11454 = r11451 * r11453;
        double r11455 = r11449 + r11454;
        double r11456 = 5;
        double r11457 = r11442 / r11456;
        double r11458 = r11453 * r11448;
        double r11459 = r11458 * r11448;
        double r11460 = r11457 * r11459;
        double r11461 = r11455 + r11460;
        double r11462 = 21;
        double r11463 = r11442 / r11462;
        double r11464 = sqrt(r11448);
        double r11465 = r11452 * r11464;
        double r11466 = r11465 * r11464;
        double r11467 = r11466 * r11448;
        double r11468 = r11467 * r11448;
        double r11469 = r11468 * r11448;
        double r11470 = r11469 * r11448;
        double r11471 = r11463 * r11470;
        double r11472 = r11461 + r11471;
        double r11473 = r11445 * r11472;
        double r11474 = fabs(r11473);
        return r11474;
}

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 r11475, r11476, r11477, r11478, r11479, r11480, r11481, r11482, r11483, r11484, r11485, r11486, r11487, r11488, r11489, r11490, r11491, r11492, r11493, r11494, r11495, r11496, r11497, r11498, r11499, r11500, r11501, r11502;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11475, "1", 10, MPFR_RNDN);
        mpfr_init(r11476);
        mpfr_init(r11477);
        mpfr_init(r11478);
        mpfr_init_set_str(r11479, "2", 10, MPFR_RNDN);
        mpfr_init(r11480);
        mpfr_init(r11481);
        mpfr_init(r11482);
        mpfr_init_set_str(r11483, "3", 10, MPFR_RNDN);
        mpfr_init(r11484);
        mpfr_init(r11485);
        mpfr_init(r11486);
        mpfr_init(r11487);
        mpfr_init(r11488);
        mpfr_init_set_str(r11489, "5", 10, MPFR_RNDN);
        mpfr_init(r11490);
        mpfr_init(r11491);
        mpfr_init(r11492);
        mpfr_init(r11493);
        mpfr_init(r11494);
        mpfr_init_set_str(r11495, "21", 10, MPFR_RNDN);
        mpfr_init(r11496);
        mpfr_init(r11497);
        mpfr_init(r11498);
        mpfr_init(r11499);
        mpfr_init(r11500);
        mpfr_init(r11501);
        mpfr_init(r11502);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r11476, MPFR_RNDN);
        mpfr_sqrt(r11477, r11476, MPFR_RNDN);
        mpfr_div(r11478, r11475, r11477, MPFR_RNDN);
        ;
        mpfr_set_d(r11480, x, MPFR_RNDN);
        mpfr_abs(r11481, r11480, MPFR_RNDN);
        mpfr_mul(r11482, r11479, r11481, MPFR_RNDN);
        ;
        mpfr_div(r11484, r11479, r11483, MPFR_RNDN);
        mpfr_mul(r11485, r11481, r11481, MPFR_RNDN);
        mpfr_mul(r11486, r11485, r11481, MPFR_RNDN);
        mpfr_mul(r11487, r11484, r11486, MPFR_RNDN);
        mpfr_add(r11488, r11482, r11487, MPFR_RNDN);
        ;
        mpfr_div(r11490, r11475, r11489, MPFR_RNDN);
        mpfr_mul(r11491, r11486, r11481, MPFR_RNDN);
        mpfr_mul(r11492, r11491, r11481, MPFR_RNDN);
        mpfr_mul(r11493, r11490, r11492, MPFR_RNDN);
        mpfr_add(r11494, r11488, r11493, MPFR_RNDN);
        ;
        mpfr_div(r11496, r11475, r11495, MPFR_RNDN);
        mpfr_mul(r11497, r11492, r11481, MPFR_RNDN);
        mpfr_mul(r11498, r11497, r11481, MPFR_RNDN);
        mpfr_mul(r11499, r11496, r11498, MPFR_RNDN);
        mpfr_add(r11500, r11494, r11499, MPFR_RNDN);
        mpfr_mul(r11501, r11478, r11500, MPFR_RNDN);
        mpfr_abs(r11502, r11501, MPFR_RNDN);
        return mpfr_get_d(r11502, MPFR_RNDN);
}

static mpfr_t r11503, r11504, r11505, r11506, r11507, r11508, r11509, r11510, r11511, r11512, r11513, r11514, r11515, r11516, r11517, r11518, r11519, r11520, r11521, r11522, r11523, r11524, r11525, r11526, r11527, r11528, r11529, r11530, r11531, r11532, r11533, r11534, r11535;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11503, "1", 10, MPFR_RNDN);
        mpfr_init(r11504);
        mpfr_init(r11505);
        mpfr_init(r11506);
        mpfr_init_set_str(r11507, "2", 10, MPFR_RNDN);
        mpfr_init(r11508);
        mpfr_init(r11509);
        mpfr_init(r11510);
        mpfr_init_set_str(r11511, "3", 10, MPFR_RNDN);
        mpfr_init(r11512);
        mpfr_init(r11513);
        mpfr_init(r11514);
        mpfr_init(r11515);
        mpfr_init(r11516);
        mpfr_init_set_str(r11517, "5", 10, MPFR_RNDN);
        mpfr_init(r11518);
        mpfr_init(r11519);
        mpfr_init(r11520);
        mpfr_init(r11521);
        mpfr_init(r11522);
        mpfr_init_set_str(r11523, "21", 10, MPFR_RNDN);
        mpfr_init(r11524);
        mpfr_init(r11525);
        mpfr_init(r11526);
        mpfr_init(r11527);
        mpfr_init(r11528);
        mpfr_init(r11529);
        mpfr_init(r11530);
        mpfr_init(r11531);
        mpfr_init(r11532);
        mpfr_init(r11533);
        mpfr_init(r11534);
        mpfr_init(r11535);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r11504, MPFR_RNDN);
        mpfr_sqrt(r11505, r11504, MPFR_RNDN);
        mpfr_div(r11506, r11503, r11505, MPFR_RNDN);
        ;
        mpfr_set_d(r11508, x, MPFR_RNDN);
        mpfr_abs(r11509, r11508, MPFR_RNDN);
        mpfr_mul(r11510, r11507, r11509, MPFR_RNDN);
        ;
        mpfr_div(r11512, r11507, r11511, MPFR_RNDN);
        mpfr_mul(r11513, r11509, r11509, MPFR_RNDN);
        mpfr_mul(r11514, r11513, r11509, MPFR_RNDN);
        mpfr_mul(r11515, r11512, r11514, MPFR_RNDN);
        mpfr_add(r11516, r11510, r11515, MPFR_RNDN);
        ;
        mpfr_div(r11518, r11503, r11517, MPFR_RNDN);
        mpfr_mul(r11519, r11514, r11509, MPFR_RNDN);
        mpfr_mul(r11520, r11519, r11509, MPFR_RNDN);
        mpfr_mul(r11521, r11518, r11520, MPFR_RNDN);
        mpfr_add(r11522, r11516, r11521, MPFR_RNDN);
        ;
        mpfr_div(r11524, r11503, r11523, MPFR_RNDN);
        mpfr_sqrt(r11525, r11509, MPFR_RNDN);
        mpfr_mul(r11526, r11513, r11525, MPFR_RNDN);
        mpfr_mul(r11527, r11526, r11525, MPFR_RNDN);
        mpfr_mul(r11528, r11527, r11509, MPFR_RNDN);
        mpfr_mul(r11529, r11528, r11509, MPFR_RNDN);
        mpfr_mul(r11530, r11529, r11509, MPFR_RNDN);
        mpfr_mul(r11531, r11530, r11509, MPFR_RNDN);
        mpfr_mul(r11532, r11524, r11531, MPFR_RNDN);
        mpfr_add(r11533, r11522, r11532, MPFR_RNDN);
        mpfr_mul(r11534, r11506, r11533, MPFR_RNDN);
        mpfr_abs(r11535, r11534, MPFR_RNDN);
        return mpfr_get_d(r11535, MPFR_RNDN);
}

static mpfr_t r11536, r11537, r11538, r11539, r11540, r11541, r11542, r11543, r11544, r11545, r11546, r11547, r11548, r11549, r11550, r11551, r11552, r11553, r11554, r11555, r11556, r11557, r11558, r11559, r11560, r11561, r11562, r11563, r11564, r11565, r11566, r11567, r11568;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11536, "1", 10, MPFR_RNDN);
        mpfr_init(r11537);
        mpfr_init(r11538);
        mpfr_init(r11539);
        mpfr_init_set_str(r11540, "2", 10, MPFR_RNDN);
        mpfr_init(r11541);
        mpfr_init(r11542);
        mpfr_init(r11543);
        mpfr_init_set_str(r11544, "3", 10, MPFR_RNDN);
        mpfr_init(r11545);
        mpfr_init(r11546);
        mpfr_init(r11547);
        mpfr_init(r11548);
        mpfr_init(r11549);
        mpfr_init_set_str(r11550, "5", 10, MPFR_RNDN);
        mpfr_init(r11551);
        mpfr_init(r11552);
        mpfr_init(r11553);
        mpfr_init(r11554);
        mpfr_init(r11555);
        mpfr_init_set_str(r11556, "21", 10, MPFR_RNDN);
        mpfr_init(r11557);
        mpfr_init(r11558);
        mpfr_init(r11559);
        mpfr_init(r11560);
        mpfr_init(r11561);
        mpfr_init(r11562);
        mpfr_init(r11563);
        mpfr_init(r11564);
        mpfr_init(r11565);
        mpfr_init(r11566);
        mpfr_init(r11567);
        mpfr_init(r11568);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r11537, MPFR_RNDN);
        mpfr_sqrt(r11538, r11537, MPFR_RNDN);
        mpfr_div(r11539, r11536, r11538, MPFR_RNDN);
        ;
        mpfr_set_d(r11541, x, MPFR_RNDN);
        mpfr_abs(r11542, r11541, MPFR_RNDN);
        mpfr_mul(r11543, r11540, r11542, MPFR_RNDN);
        ;
        mpfr_div(r11545, r11540, r11544, MPFR_RNDN);
        mpfr_mul(r11546, r11542, r11542, MPFR_RNDN);
        mpfr_mul(r11547, r11546, r11542, MPFR_RNDN);
        mpfr_mul(r11548, r11545, r11547, MPFR_RNDN);
        mpfr_add(r11549, r11543, r11548, MPFR_RNDN);
        ;
        mpfr_div(r11551, r11536, r11550, MPFR_RNDN);
        mpfr_mul(r11552, r11547, r11542, MPFR_RNDN);
        mpfr_mul(r11553, r11552, r11542, MPFR_RNDN);
        mpfr_mul(r11554, r11551, r11553, MPFR_RNDN);
        mpfr_add(r11555, r11549, r11554, MPFR_RNDN);
        ;
        mpfr_div(r11557, r11536, r11556, MPFR_RNDN);
        mpfr_sqrt(r11558, r11542, MPFR_RNDN);
        mpfr_mul(r11559, r11546, r11558, MPFR_RNDN);
        mpfr_mul(r11560, r11559, r11558, MPFR_RNDN);
        mpfr_mul(r11561, r11560, r11542, MPFR_RNDN);
        mpfr_mul(r11562, r11561, r11542, MPFR_RNDN);
        mpfr_mul(r11563, r11562, r11542, MPFR_RNDN);
        mpfr_mul(r11564, r11563, r11542, MPFR_RNDN);
        mpfr_mul(r11565, r11557, r11564, MPFR_RNDN);
        mpfr_add(r11566, r11555, r11565, MPFR_RNDN);
        mpfr_mul(r11567, r11539, r11566, MPFR_RNDN);
        mpfr_abs(r11568, r11567, MPFR_RNDN);
        return mpfr_get_d(r11568, MPFR_RNDN);
}

