#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 r27397 = 1;
        float r27398 = atan2(1.0, 0.0);
        float r27399 = sqrt(r27398);
        float r27400 = r27397 / r27399;
        float r27401 = 2;
        float r27402 = x;
        float r27403 = fabs(r27402);
        float r27404 = r27401 * r27403;
        float r27405 = 3;
        float r27406 = r27401 / r27405;
        float r27407 = r27403 * r27403;
        float r27408 = r27407 * r27403;
        float r27409 = r27406 * r27408;
        float r27410 = r27404 + r27409;
        float r27411 = 5;
        float r27412 = r27397 / r27411;
        float r27413 = r27408 * r27403;
        float r27414 = r27413 * r27403;
        float r27415 = r27412 * r27414;
        float r27416 = r27410 + r27415;
        float r27417 = 21;
        float r27418 = r27397 / r27417;
        float r27419 = r27414 * r27403;
        float r27420 = r27419 * r27403;
        float r27421 = r27418 * r27420;
        float r27422 = r27416 + r27421;
        float r27423 = r27400 * r27422;
        float r27424 = fabs(r27423);
        return r27424;
}

double f_id(double x) {
        double r27425 = 1;
        double r27426 = atan2(1.0, 0.0);
        double r27427 = sqrt(r27426);
        double r27428 = r27425 / r27427;
        double r27429 = 2;
        double r27430 = x;
        double r27431 = fabs(r27430);
        double r27432 = r27429 * r27431;
        double r27433 = 3;
        double r27434 = r27429 / r27433;
        double r27435 = r27431 * r27431;
        double r27436 = r27435 * r27431;
        double r27437 = r27434 * r27436;
        double r27438 = r27432 + r27437;
        double r27439 = 5;
        double r27440 = r27425 / r27439;
        double r27441 = r27436 * r27431;
        double r27442 = r27441 * r27431;
        double r27443 = r27440 * r27442;
        double r27444 = r27438 + r27443;
        double r27445 = 21;
        double r27446 = r27425 / r27445;
        double r27447 = r27442 * r27431;
        double r27448 = r27447 * r27431;
        double r27449 = r27446 * r27448;
        double r27450 = r27444 + r27449;
        double r27451 = r27428 * r27450;
        double r27452 = fabs(r27451);
        return r27452;
}


double f_of(float x) {
        float r27453 = 1;
        float r27454 = atan2(1.0, 0.0);
        float r27455 = sqrt(r27454);
        float r27456 = r27453 / r27455;
        float r27457 = 2;
        float r27458 = x;
        float r27459 = fabs(r27458);
        float r27460 = r27457 * r27459;
        float r27461 = 3;
        float r27462 = r27457 / r27461;
        float r27463 = r27459 * r27459;
        float r27464 = r27463 * r27459;
        float r27465 = r27462 * r27464;
        float r27466 = r27460 + r27465;
        float r27467 = 5;
        float r27468 = r27453 / r27467;
        float r27469 = r27464 * r27459;
        float r27470 = r27469 * r27459;
        float r27471 = r27468 * r27470;
        float r27472 = r27466 + r27471;
        float r27473 = 21;
        float r27474 = r27453 / r27473;
        float r27475 = r27453 + r27453;
        float r27476 = r27475 + r27453;
        float r27477 = pow(r27459, r27476);
        float r27478 = r27477 * r27459;
        float r27479 = r27478 * r27459;
        float r27480 = r27479 * r27459;
        float r27481 = r27480 * r27459;
        float r27482 = r27474 * r27481;
        float r27483 = r27472 + r27482;
        float r27484 = r27456 * r27483;
        float r27485 = fabs(r27484);
        return r27485;
}

double f_od(double x) {
        double r27486 = 1;
        double r27487 = atan2(1.0, 0.0);
        double r27488 = sqrt(r27487);
        double r27489 = r27486 / r27488;
        double r27490 = 2;
        double r27491 = x;
        double r27492 = fabs(r27491);
        double r27493 = r27490 * r27492;
        double r27494 = 3;
        double r27495 = r27490 / r27494;
        double r27496 = r27492 * r27492;
        double r27497 = r27496 * r27492;
        double r27498 = r27495 * r27497;
        double r27499 = r27493 + r27498;
        double r27500 = 5;
        double r27501 = r27486 / r27500;
        double r27502 = r27497 * r27492;
        double r27503 = r27502 * r27492;
        double r27504 = r27501 * r27503;
        double r27505 = r27499 + r27504;
        double r27506 = 21;
        double r27507 = r27486 / r27506;
        double r27508 = r27486 + r27486;
        double r27509 = r27508 + r27486;
        double r27510 = pow(r27492, r27509);
        double r27511 = r27510 * r27492;
        double r27512 = r27511 * r27492;
        double r27513 = r27512 * r27492;
        double r27514 = r27513 * r27492;
        double r27515 = r27507 * r27514;
        double r27516 = r27505 + r27515;
        double r27517 = r27489 * r27516;
        double r27518 = fabs(r27517);
        return r27518;
}

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 r27519, r27520, r27521, r27522, r27523, r27524, r27525, r27526, r27527, r27528, r27529, r27530, r27531, r27532, r27533, r27534, r27535, r27536, r27537, r27538, r27539, r27540, r27541, r27542, r27543, r27544, r27545, r27546;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27519, "1", 10, MPFR_RNDN);
        mpfr_init(r27520);
        mpfr_init(r27521);
        mpfr_init(r27522);
        mpfr_init_set_str(r27523, "2", 10, MPFR_RNDN);
        mpfr_init(r27524);
        mpfr_init(r27525);
        mpfr_init(r27526);
        mpfr_init_set_str(r27527, "3", 10, MPFR_RNDN);
        mpfr_init(r27528);
        mpfr_init(r27529);
        mpfr_init(r27530);
        mpfr_init(r27531);
        mpfr_init(r27532);
        mpfr_init_set_str(r27533, "5", 10, MPFR_RNDN);
        mpfr_init(r27534);
        mpfr_init(r27535);
        mpfr_init(r27536);
        mpfr_init(r27537);
        mpfr_init(r27538);
        mpfr_init_set_str(r27539, "21", 10, MPFR_RNDN);
        mpfr_init(r27540);
        mpfr_init(r27541);
        mpfr_init(r27542);
        mpfr_init(r27543);
        mpfr_init(r27544);
        mpfr_init(r27545);
        mpfr_init(r27546);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27520, MPFR_RNDN);
        mpfr_sqrt(r27521, r27520, MPFR_RNDN);
        mpfr_div(r27522, r27519, r27521, MPFR_RNDN);
        ;
        mpfr_set_d(r27524, x, MPFR_RNDN);
        mpfr_abs(r27525, r27524, MPFR_RNDN);
        mpfr_mul(r27526, r27523, r27525, MPFR_RNDN);
        ;
        mpfr_div(r27528, r27523, r27527, MPFR_RNDN);
        mpfr_mul(r27529, r27525, r27525, MPFR_RNDN);
        mpfr_mul(r27530, r27529, r27525, MPFR_RNDN);
        mpfr_mul(r27531, r27528, r27530, MPFR_RNDN);
        mpfr_add(r27532, r27526, r27531, MPFR_RNDN);
        ;
        mpfr_div(r27534, r27519, r27533, MPFR_RNDN);
        mpfr_mul(r27535, r27530, r27525, MPFR_RNDN);
        mpfr_mul(r27536, r27535, r27525, MPFR_RNDN);
        mpfr_mul(r27537, r27534, r27536, MPFR_RNDN);
        mpfr_add(r27538, r27532, r27537, MPFR_RNDN);
        ;
        mpfr_div(r27540, r27519, r27539, MPFR_RNDN);
        mpfr_mul(r27541, r27536, r27525, MPFR_RNDN);
        mpfr_mul(r27542, r27541, r27525, MPFR_RNDN);
        mpfr_mul(r27543, r27540, r27542, MPFR_RNDN);
        mpfr_add(r27544, r27538, r27543, MPFR_RNDN);
        mpfr_mul(r27545, r27522, r27544, MPFR_RNDN);
        mpfr_abs(r27546, r27545, MPFR_RNDN);
        return mpfr_get_d(r27546, MPFR_RNDN);
}

static mpfr_t r27547, r27548, r27549, r27550, r27551, r27552, r27553, r27554, r27555, r27556, r27557, r27558, r27559, r27560, r27561, r27562, r27563, r27564, r27565, r27566, r27567, r27568, r27569, r27570, r27571, r27572, r27573, r27574, r27575, r27576, r27577, r27578, r27579;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27547, "1", 10, MPFR_RNDN);
        mpfr_init(r27548);
        mpfr_init(r27549);
        mpfr_init(r27550);
        mpfr_init_set_str(r27551, "2", 10, MPFR_RNDN);
        mpfr_init(r27552);
        mpfr_init(r27553);
        mpfr_init(r27554);
        mpfr_init_set_str(r27555, "3", 10, MPFR_RNDN);
        mpfr_init(r27556);
        mpfr_init(r27557);
        mpfr_init(r27558);
        mpfr_init(r27559);
        mpfr_init(r27560);
        mpfr_init_set_str(r27561, "5", 10, MPFR_RNDN);
        mpfr_init(r27562);
        mpfr_init(r27563);
        mpfr_init(r27564);
        mpfr_init(r27565);
        mpfr_init(r27566);
        mpfr_init_set_str(r27567, "21", 10, MPFR_RNDN);
        mpfr_init(r27568);
        mpfr_init(r27569);
        mpfr_init(r27570);
        mpfr_init(r27571);
        mpfr_init(r27572);
        mpfr_init(r27573);
        mpfr_init(r27574);
        mpfr_init(r27575);
        mpfr_init(r27576);
        mpfr_init(r27577);
        mpfr_init(r27578);
        mpfr_init(r27579);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r27548, MPFR_RNDN);
        mpfr_sqrt(r27549, r27548, MPFR_RNDN);
        mpfr_div(r27550, r27547, r27549, MPFR_RNDN);
        ;
        mpfr_set_d(r27552, x, MPFR_RNDN);
        mpfr_abs(r27553, r27552, MPFR_RNDN);
        mpfr_mul(r27554, r27551, r27553, MPFR_RNDN);
        ;
        mpfr_div(r27556, r27551, r27555, MPFR_RNDN);
        mpfr_mul(r27557, r27553, r27553, MPFR_RNDN);
        mpfr_mul(r27558, r27557, r27553, MPFR_RNDN);
        mpfr_mul(r27559, r27556, r27558, MPFR_RNDN);
        mpfr_add(r27560, r27554, r27559, MPFR_RNDN);
        ;
        mpfr_div(r27562, r27547, r27561, MPFR_RNDN);
        mpfr_mul(r27563, r27558, r27553, MPFR_RNDN);
        mpfr_mul(r27564, r27563, r27553, MPFR_RNDN);
        mpfr_mul(r27565, r27562, r27564, MPFR_RNDN);
        mpfr_add(r27566, r27560, r27565, MPFR_RNDN);
        ;
        mpfr_div(r27568, r27547, r27567, MPFR_RNDN);
        mpfr_add(r27569, r27547, r27547, MPFR_RNDN);
        mpfr_add(r27570, r27569, r27547, MPFR_RNDN);
        mpfr_pow(r27571, r27553, r27570, MPFR_RNDN);
        mpfr_mul(r27572, r27571, r27553, MPFR_RNDN);
        mpfr_mul(r27573, r27572, r27553, MPFR_RNDN);
        mpfr_mul(r27574, r27573, r27553, MPFR_RNDN);
        mpfr_mul(r27575, r27574, r27553, MPFR_RNDN);
        mpfr_mul(r27576, r27568, r27575, MPFR_RNDN);
        mpfr_add(r27577, r27566, r27576, MPFR_RNDN);
        mpfr_mul(r27578, r27550, r27577, MPFR_RNDN);
        mpfr_abs(r27579, r27578, MPFR_RNDN);
        return mpfr_get_d(r27579, MPFR_RNDN);
}

static mpfr_t r27580, r27581, r27582, r27583, r27584, r27585, r27586, r27587, r27588, r27589, r27590, r27591, r27592, r27593, r27594, r27595, r27596, r27597, r27598, r27599, r27600, r27601, r27602, r27603, r27604, r27605, r27606, r27607, r27608, r27609, r27610, r27611, r27612;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27580, "1", 10, MPFR_RNDN);
        mpfr_init(r27581);
        mpfr_init(r27582);
        mpfr_init(r27583);
        mpfr_init_set_str(r27584, "2", 10, MPFR_RNDN);
        mpfr_init(r27585);
        mpfr_init(r27586);
        mpfr_init(r27587);
        mpfr_init_set_str(r27588, "3", 10, MPFR_RNDN);
        mpfr_init(r27589);
        mpfr_init(r27590);
        mpfr_init(r27591);
        mpfr_init(r27592);
        mpfr_init(r27593);
        mpfr_init_set_str(r27594, "5", 10, MPFR_RNDN);
        mpfr_init(r27595);
        mpfr_init(r27596);
        mpfr_init(r27597);
        mpfr_init(r27598);
        mpfr_init(r27599);
        mpfr_init_set_str(r27600, "21", 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(r27610);
        mpfr_init(r27611);
        mpfr_init(r27612);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r27581, MPFR_RNDN);
        mpfr_sqrt(r27582, r27581, MPFR_RNDN);
        mpfr_div(r27583, r27580, r27582, MPFR_RNDN);
        ;
        mpfr_set_d(r27585, x, MPFR_RNDN);
        mpfr_abs(r27586, r27585, MPFR_RNDN);
        mpfr_mul(r27587, r27584, r27586, MPFR_RNDN);
        ;
        mpfr_div(r27589, r27584, r27588, MPFR_RNDN);
        mpfr_mul(r27590, r27586, r27586, MPFR_RNDN);
        mpfr_mul(r27591, r27590, r27586, MPFR_RNDN);
        mpfr_mul(r27592, r27589, r27591, MPFR_RNDN);
        mpfr_add(r27593, r27587, r27592, MPFR_RNDN);
        ;
        mpfr_div(r27595, r27580, r27594, MPFR_RNDN);
        mpfr_mul(r27596, r27591, r27586, MPFR_RNDN);
        mpfr_mul(r27597, r27596, r27586, MPFR_RNDN);
        mpfr_mul(r27598, r27595, r27597, MPFR_RNDN);
        mpfr_add(r27599, r27593, r27598, MPFR_RNDN);
        ;
        mpfr_div(r27601, r27580, r27600, MPFR_RNDN);
        mpfr_add(r27602, r27580, r27580, MPFR_RNDN);
        mpfr_add(r27603, r27602, r27580, MPFR_RNDN);
        mpfr_pow(r27604, r27586, r27603, MPFR_RNDN);
        mpfr_mul(r27605, r27604, r27586, MPFR_RNDN);
        mpfr_mul(r27606, r27605, r27586, MPFR_RNDN);
        mpfr_mul(r27607, r27606, r27586, MPFR_RNDN);
        mpfr_mul(r27608, r27607, r27586, MPFR_RNDN);
        mpfr_mul(r27609, r27601, r27608, MPFR_RNDN);
        mpfr_add(r27610, r27599, r27609, MPFR_RNDN);
        mpfr_mul(r27611, r27583, r27610, MPFR_RNDN);
        mpfr_abs(r27612, r27611, MPFR_RNDN);
        return mpfr_get_d(r27612, MPFR_RNDN);
}

