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

char *name = "Jmat.Real.erf";

double f_if(float x) {
        float r28421 = 1.0f;
        float r28422 = 0.3275911f;
        float r28423 = x;
        float r28424 = fabs(r28423);
        float r28425 = r28422 * r28424;
        float r28426 = r28421 + r28425;
        float r28427 = r28421 / r28426;
        float r28428 = 0.254829592f;
        float r28429 = -0.284496736f;
        float r28430 = 1.421413741f;
        float r28431 = -1.453152027f;
        float r28432 = 1.061405429f;
        float r28433 = r28427 * r28432;
        float r28434 = r28431 + r28433;
        float r28435 = r28427 * r28434;
        float r28436 = r28430 + r28435;
        float r28437 = r28427 * r28436;
        float r28438 = r28429 + r28437;
        float r28439 = r28427 * r28438;
        float r28440 = r28428 + r28439;
        float r28441 = r28427 * r28440;
        float r28442 = r28424 * r28424;
        float r28443 = -r28442;
        float r28444 = exp(r28443);
        float r28445 = r28441 * r28444;
        float r28446 = r28421 - r28445;
        return r28446;
}

double f_id(double x) {
        double r28447 = 1.0;
        double r28448 = 0.3275911;
        double r28449 = x;
        double r28450 = fabs(r28449);
        double r28451 = r28448 * r28450;
        double r28452 = r28447 + r28451;
        double r28453 = r28447 / r28452;
        double r28454 = 0.254829592;
        double r28455 = -0.284496736;
        double r28456 = 1.421413741;
        double r28457 = -1.453152027;
        double r28458 = 1.061405429;
        double r28459 = r28453 * r28458;
        double r28460 = r28457 + r28459;
        double r28461 = r28453 * r28460;
        double r28462 = r28456 + r28461;
        double r28463 = r28453 * r28462;
        double r28464 = r28455 + r28463;
        double r28465 = r28453 * r28464;
        double r28466 = r28454 + r28465;
        double r28467 = r28453 * r28466;
        double r28468 = r28450 * r28450;
        double r28469 = -r28468;
        double r28470 = exp(r28469);
        double r28471 = r28467 * r28470;
        double r28472 = r28447 - r28471;
        return r28472;
}


double f_of(float x) {
        float r28473 = 1.453152027f;
        float r28474 = x;
        float r28475 = fabs(r28474);
        float r28476 = r28475 * r28475;
        float r28477 = exp(r28476);
        float r28478 = r28473 / r28477;
        float r28479 = 0.3275911f;
        float r28480 = r28479 * r28475;
        float r28481 = 1.0f;
        float r28482 = r28480 + r28481;
        float r28483 = 4.0f;
        float r28484 = pow(r28482, r28483);
        float r28485 = r28478 / r28484;
        float r28486 = 0.284496736f;
        float r28487 = r28486 / r28482;
        float r28488 = r28477 * r28482;
        float r28489 = r28487 / r28488;
        float r28490 = r28485 + r28489;
        float r28491 = 1.061405429f;
        float r28492 = r28491 / r28477;
        float r28493 = 5.0f;
        float r28494 = pow(r28482, r28493);
        float r28495 = r28492 / r28494;
        float r28496 = r28481 - r28495;
        float r28497 = r28490 + r28496;
        float r28498 = sqrt(r28497);
        float r28499 = 1.421413741f;
        float r28500 = r28499 / r28477;
        float r28501 = r28482 * (r28482 * r28482);
        float r28502 = r28500 / r28501;
        float r28503 = 0.254829592f;
        float r28504 = r28503 / r28482;
        float r28505 = r28504 / r28477;
        float r28506 = r28502 + r28505;
        float r28507 = sqrt(r28506);
        float r28508 = r28498 - r28507;
        float r28509 = r28475 * r28479;
        float r28510 = r28509 + r28481;
        float r28511 = r28503 / r28510;
        float r28512 = r28511 / r28477;
        float r28513 = r28510 * (r28510 * r28510);
        float r28514 = r28500 / r28513;
        float r28515 = r28512 + r28514;
        float r28516 = sqrt(r28515);
        float r28517 = r28486 / r28510;
        float r28518 = r28477 * r28510;
        float r28519 = r28517 / r28518;
        float r28520 = r28519 + r28481;
        float r28521 = pow(r28510, r28483);
        float r28522 = r28478 / r28521;
        float r28523 = pow(r28510, r28493);
        float r28524 = r28492 / r28523;
        float r28525 = r28522 - r28524;
        float r28526 = r28520 + r28525;
        float r28527 = sqrt(r28526);
        float r28528 = r28516 + r28527;
        float r28529 = r28508 * r28528;
        return r28529;
}

double f_od(double x) {
        double r28530 = 1.453152027;
        double r28531 = x;
        double r28532 = fabs(r28531);
        double r28533 = r28532 * r28532;
        double r28534 = exp(r28533);
        double r28535 = r28530 / r28534;
        double r28536 = 0.3275911;
        double r28537 = r28536 * r28532;
        double r28538 = 1.0;
        double r28539 = r28537 + r28538;
        double r28540 = 4.0;
        double r28541 = pow(r28539, r28540);
        double r28542 = r28535 / r28541;
        double r28543 = 0.284496736;
        double r28544 = r28543 / r28539;
        double r28545 = r28534 * r28539;
        double r28546 = r28544 / r28545;
        double r28547 = r28542 + r28546;
        double r28548 = 1.061405429;
        double r28549 = r28548 / r28534;
        double r28550 = 5.0;
        double r28551 = pow(r28539, r28550);
        double r28552 = r28549 / r28551;
        double r28553 = r28538 - r28552;
        double r28554 = r28547 + r28553;
        double r28555 = sqrt(r28554);
        double r28556 = 1.421413741;
        double r28557 = r28556 / r28534;
        double r28558 = r28539 * (r28539 * r28539);
        double r28559 = r28557 / r28558;
        double r28560 = 0.254829592;
        double r28561 = r28560 / r28539;
        double r28562 = r28561 / r28534;
        double r28563 = r28559 + r28562;
        double r28564 = sqrt(r28563);
        double r28565 = r28555 - r28564;
        double r28566 = r28532 * r28536;
        double r28567 = r28566 + r28538;
        double r28568 = r28560 / r28567;
        double r28569 = r28568 / r28534;
        double r28570 = r28567 * (r28567 * r28567);
        double r28571 = r28557 / r28570;
        double r28572 = r28569 + r28571;
        double r28573 = sqrt(r28572);
        double r28574 = r28543 / r28567;
        double r28575 = r28534 * r28567;
        double r28576 = r28574 / r28575;
        double r28577 = r28576 + r28538;
        double r28578 = pow(r28567, r28540);
        double r28579 = r28535 / r28578;
        double r28580 = pow(r28567, r28550);
        double r28581 = r28549 / r28580;
        double r28582 = r28579 - r28581;
        double r28583 = r28577 + r28582;
        double r28584 = sqrt(r28583);
        double r28585 = r28573 + r28584;
        double r28586 = r28565 * r28585;
        return r28586;
}

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 r28587, r28588, r28589, r28590, r28591, r28592, r28593, r28594, r28595, r28596, r28597, r28598, r28599, r28600, r28601, r28602, r28603, r28604, r28605, r28606, r28607, r28608, r28609, r28610, r28611, r28612;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r28587, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r28588, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r28589);
        mpfr_init(r28590);
        mpfr_init(r28591);
        mpfr_init(r28592);
        mpfr_init(r28593);
        mpfr_init_set_str(r28594, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r28595, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r28596, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r28597, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r28598, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r28599);
        mpfr_init(r28600);
        mpfr_init(r28601);
        mpfr_init(r28602);
        mpfr_init(r28603);
        mpfr_init(r28604);
        mpfr_init(r28605);
        mpfr_init(r28606);
        mpfr_init(r28607);
        mpfr_init(r28608);
        mpfr_init(r28609);
        mpfr_init(r28610);
        mpfr_init(r28611);
        mpfr_init(r28612);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r28589, x, MPFR_RNDN);
        mpfr_abs(r28590, r28589, MPFR_RNDN);
        mpfr_mul(r28591, r28588, r28590, MPFR_RNDN);
        mpfr_add(r28592, r28587, r28591, MPFR_RNDN);
        mpfr_div(r28593, r28587, r28592, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r28599, r28593, r28598, MPFR_RNDN);
        mpfr_add(r28600, r28597, r28599, MPFR_RNDN);
        mpfr_mul(r28601, r28593, r28600, MPFR_RNDN);
        mpfr_add(r28602, r28596, r28601, MPFR_RNDN);
        mpfr_mul(r28603, r28593, r28602, MPFR_RNDN);
        mpfr_add(r28604, r28595, r28603, MPFR_RNDN);
        mpfr_mul(r28605, r28593, r28604, MPFR_RNDN);
        mpfr_add(r28606, r28594, r28605, MPFR_RNDN);
        mpfr_mul(r28607, r28593, r28606, MPFR_RNDN);
        mpfr_mul(r28608, r28590, r28590, MPFR_RNDN);
        mpfr_neg(r28609, r28608, MPFR_RNDN);
        mpfr_exp(r28610, r28609, MPFR_RNDN);
        mpfr_mul(r28611, r28607, r28610, MPFR_RNDN);
        mpfr_sub(r28612, r28587, r28611, MPFR_RNDN);
        return mpfr_get_d(r28612, MPFR_RNDN);
}

static mpfr_t r28613, r28614, r28615, r28616, r28617, r28618, r28619, r28620, r28621, r28622, r28623, r28624, r28625, r28626, r28627, r28628, r28629, r28630, r28631, r28632, r28633, r28634, r28635, r28636, r28637, r28638, r28639, r28640, r28641, r28642, r28643, r28644, r28645, r28646, r28647, r28648, r28649, r28650, r28651, r28652, r28653, r28654, r28655, r28656, r28657, r28658, r28659, r28660, r28661, r28662, r28663, r28664, r28665, r28666, r28667, r28668, r28669;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r28613, "1.453152027", 10, MPFR_RNDN);
        mpfr_init(r28614);
        mpfr_init(r28615);
        mpfr_init(r28616);
        mpfr_init(r28617);
        mpfr_init(r28618);
        mpfr_init_set_str(r28619, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r28620);
        mpfr_init_set_str(r28621, "1", 10, MPFR_RNDN);
        mpfr_init(r28622);
        mpfr_init_set_str(r28623, "4", 10, MPFR_RNDN);
        mpfr_init(r28624);
        mpfr_init(r28625);
        mpfr_init_set_str(r28626, "0.284496736", 10, MPFR_RNDN);
        mpfr_init(r28627);
        mpfr_init(r28628);
        mpfr_init(r28629);
        mpfr_init(r28630);
        mpfr_init_set_str(r28631, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r28632);
        mpfr_init_set_str(r28633, "5", 10, MPFR_RNDN);
        mpfr_init(r28634);
        mpfr_init(r28635);
        mpfr_init(r28636);
        mpfr_init(r28637);
        mpfr_init(r28638);
        mpfr_init_set_str(r28639, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r28640);
        mpfr_init(r28641);
        mpfr_init(r28642);
        mpfr_init_set_str(r28643, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r28644);
        mpfr_init(r28645);
        mpfr_init(r28646);
        mpfr_init(r28647);
        mpfr_init(r28648);
        mpfr_init(r28649);
        mpfr_init(r28650);
        mpfr_init(r28651);
        mpfr_init(r28652);
        mpfr_init(r28653);
        mpfr_init(r28654);
        mpfr_init(r28655);
        mpfr_init(r28656);
        mpfr_init(r28657);
        mpfr_init(r28658);
        mpfr_init(r28659);
        mpfr_init(r28660);
        mpfr_init(r28661);
        mpfr_init(r28662);
        mpfr_init(r28663);
        mpfr_init(r28664);
        mpfr_init(r28665);
        mpfr_init(r28666);
        mpfr_init(r28667);
        mpfr_init(r28668);
        mpfr_init(r28669);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r28614, x, MPFR_RNDN);
        mpfr_abs(r28615, r28614, MPFR_RNDN);
        mpfr_sqr(r28616, r28615, MPFR_RNDN);
        mpfr_exp(r28617, r28616, MPFR_RNDN);
        mpfr_div(r28618, r28613, r28617, MPFR_RNDN);
        ;
        mpfr_mul(r28620, r28619, r28615, MPFR_RNDN);
        ;
        mpfr_add(r28622, r28620, r28621, MPFR_RNDN);
        ;
        mpfr_pow(r28624, r28622, r28623, MPFR_RNDN);
        mpfr_div(r28625, r28618, r28624, MPFR_RNDN);
        ;
        mpfr_div(r28627, r28626, r28622, MPFR_RNDN);
        mpfr_mul(r28628, r28617, r28622, MPFR_RNDN);
        mpfr_div(r28629, r28627, r28628, MPFR_RNDN);
        mpfr_add(r28630, r28625, r28629, MPFR_RNDN);
        ;
        mpfr_div(r28632, r28631, r28617, MPFR_RNDN);
        ;
        mpfr_pow(r28634, r28622, r28633, MPFR_RNDN);
        mpfr_div(r28635, r28632, r28634, MPFR_RNDN);
        mpfr_sub(r28636, r28621, r28635, MPFR_RNDN);
        mpfr_add(r28637, r28630, r28636, MPFR_RNDN);
        mpfr_sqrt(r28638, r28637, MPFR_RNDN);
        ;
        mpfr_div(r28640, r28639, r28617, MPFR_RNDN);
        mpfr_mul(r28641, r28622, r28622, MPFR_RNDN); mpfr_mul(r28641, r28641, r28622, MPFR_RNDN);
        mpfr_div(r28642, r28640, r28641, MPFR_RNDN);
        ;
        mpfr_div(r28644, r28643, r28622, MPFR_RNDN);
        mpfr_div(r28645, r28644, r28617, MPFR_RNDN);
        mpfr_add(r28646, r28642, r28645, MPFR_RNDN);
        mpfr_sqrt(r28647, r28646, MPFR_RNDN);
        mpfr_sub(r28648, r28638, r28647, MPFR_RNDN);
        mpfr_mul(r28649, r28615, r28619, MPFR_RNDN);
        mpfr_add(r28650, r28649, r28621, MPFR_RNDN);
        mpfr_div(r28651, r28643, r28650, MPFR_RNDN);
        mpfr_div(r28652, r28651, r28617, MPFR_RNDN);
        mpfr_mul(r28653, r28650, r28650, MPFR_RNDN); mpfr_mul(r28653, r28653, r28650, MPFR_RNDN);
        mpfr_div(r28654, r28640, r28653, MPFR_RNDN);
        mpfr_add(r28655, r28652, r28654, MPFR_RNDN);
        mpfr_sqrt(r28656, r28655, MPFR_RNDN);
        mpfr_div(r28657, r28626, r28650, MPFR_RNDN);
        mpfr_mul(r28658, r28617, r28650, MPFR_RNDN);
        mpfr_div(r28659, r28657, r28658, MPFR_RNDN);
        mpfr_add(r28660, r28659, r28621, MPFR_RNDN);
        mpfr_pow(r28661, r28650, r28623, MPFR_RNDN);
        mpfr_div(r28662, r28618, r28661, MPFR_RNDN);
        mpfr_pow(r28663, r28650, r28633, MPFR_RNDN);
        mpfr_div(r28664, r28632, r28663, MPFR_RNDN);
        mpfr_sub(r28665, r28662, r28664, MPFR_RNDN);
        mpfr_add(r28666, r28660, r28665, MPFR_RNDN);
        mpfr_sqrt(r28667, r28666, MPFR_RNDN);
        mpfr_add(r28668, r28656, r28667, MPFR_RNDN);
        mpfr_mul(r28669, r28648, r28668, MPFR_RNDN);
        return mpfr_get_d(r28669, MPFR_RNDN);
}

static mpfr_t r28670, r28671, r28672, r28673, r28674, r28675, r28676, r28677, r28678, r28679, r28680, r28681, r28682, r28683, r28684, r28685, r28686, r28687, r28688, r28689, r28690, r28691, r28692, r28693, r28694, r28695, r28696, r28697, r28698, r28699, r28700, r28701, r28702, r28703, r28704, r28705, r28706, r28707, r28708, r28709, r28710, r28711, r28712, r28713, r28714, r28715, r28716, r28717, r28718, r28719, r28720, r28721, r28722, r28723, r28724, r28725, r28726;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r28670, "1.453152027", 10, MPFR_RNDN);
        mpfr_init(r28671);
        mpfr_init(r28672);
        mpfr_init(r28673);
        mpfr_init(r28674);
        mpfr_init(r28675);
        mpfr_init_set_str(r28676, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r28677);
        mpfr_init_set_str(r28678, "1", 10, MPFR_RNDN);
        mpfr_init(r28679);
        mpfr_init_set_str(r28680, "4", 10, MPFR_RNDN);
        mpfr_init(r28681);
        mpfr_init(r28682);
        mpfr_init_set_str(r28683, "0.284496736", 10, MPFR_RNDN);
        mpfr_init(r28684);
        mpfr_init(r28685);
        mpfr_init(r28686);
        mpfr_init(r28687);
        mpfr_init_set_str(r28688, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r28689);
        mpfr_init_set_str(r28690, "5", 10, MPFR_RNDN);
        mpfr_init(r28691);
        mpfr_init(r28692);
        mpfr_init(r28693);
        mpfr_init(r28694);
        mpfr_init(r28695);
        mpfr_init_set_str(r28696, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r28697);
        mpfr_init(r28698);
        mpfr_init(r28699);
        mpfr_init_set_str(r28700, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r28701);
        mpfr_init(r28702);
        mpfr_init(r28703);
        mpfr_init(r28704);
        mpfr_init(r28705);
        mpfr_init(r28706);
        mpfr_init(r28707);
        mpfr_init(r28708);
        mpfr_init(r28709);
        mpfr_init(r28710);
        mpfr_init(r28711);
        mpfr_init(r28712);
        mpfr_init(r28713);
        mpfr_init(r28714);
        mpfr_init(r28715);
        mpfr_init(r28716);
        mpfr_init(r28717);
        mpfr_init(r28718);
        mpfr_init(r28719);
        mpfr_init(r28720);
        mpfr_init(r28721);
        mpfr_init(r28722);
        mpfr_init(r28723);
        mpfr_init(r28724);
        mpfr_init(r28725);
        mpfr_init(r28726);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r28671, x, MPFR_RNDN);
        mpfr_abs(r28672, r28671, MPFR_RNDN);
        mpfr_sqr(r28673, r28672, MPFR_RNDN);
        mpfr_exp(r28674, r28673, MPFR_RNDN);
        mpfr_div(r28675, r28670, r28674, MPFR_RNDN);
        ;
        mpfr_mul(r28677, r28676, r28672, MPFR_RNDN);
        ;
        mpfr_add(r28679, r28677, r28678, MPFR_RNDN);
        ;
        mpfr_pow(r28681, r28679, r28680, MPFR_RNDN);
        mpfr_div(r28682, r28675, r28681, MPFR_RNDN);
        ;
        mpfr_div(r28684, r28683, r28679, MPFR_RNDN);
        mpfr_mul(r28685, r28674, r28679, MPFR_RNDN);
        mpfr_div(r28686, r28684, r28685, MPFR_RNDN);
        mpfr_add(r28687, r28682, r28686, MPFR_RNDN);
        ;
        mpfr_div(r28689, r28688, r28674, MPFR_RNDN);
        ;
        mpfr_pow(r28691, r28679, r28690, MPFR_RNDN);
        mpfr_div(r28692, r28689, r28691, MPFR_RNDN);
        mpfr_sub(r28693, r28678, r28692, MPFR_RNDN);
        mpfr_add(r28694, r28687, r28693, MPFR_RNDN);
        mpfr_sqrt(r28695, r28694, MPFR_RNDN);
        ;
        mpfr_div(r28697, r28696, r28674, MPFR_RNDN);
        mpfr_mul(r28698, r28679, r28679, MPFR_RNDN); mpfr_mul(r28698, r28698, r28679, MPFR_RNDN);
        mpfr_div(r28699, r28697, r28698, MPFR_RNDN);
        ;
        mpfr_div(r28701, r28700, r28679, MPFR_RNDN);
        mpfr_div(r28702, r28701, r28674, MPFR_RNDN);
        mpfr_add(r28703, r28699, r28702, MPFR_RNDN);
        mpfr_sqrt(r28704, r28703, MPFR_RNDN);
        mpfr_sub(r28705, r28695, r28704, MPFR_RNDN);
        mpfr_mul(r28706, r28672, r28676, MPFR_RNDN);
        mpfr_add(r28707, r28706, r28678, MPFR_RNDN);
        mpfr_div(r28708, r28700, r28707, MPFR_RNDN);
        mpfr_div(r28709, r28708, r28674, MPFR_RNDN);
        mpfr_mul(r28710, r28707, r28707, MPFR_RNDN); mpfr_mul(r28710, r28710, r28707, MPFR_RNDN);
        mpfr_div(r28711, r28697, r28710, MPFR_RNDN);
        mpfr_add(r28712, r28709, r28711, MPFR_RNDN);
        mpfr_sqrt(r28713, r28712, MPFR_RNDN);
        mpfr_div(r28714, r28683, r28707, MPFR_RNDN);
        mpfr_mul(r28715, r28674, r28707, MPFR_RNDN);
        mpfr_div(r28716, r28714, r28715, MPFR_RNDN);
        mpfr_add(r28717, r28716, r28678, MPFR_RNDN);
        mpfr_pow(r28718, r28707, r28680, MPFR_RNDN);
        mpfr_div(r28719, r28675, r28718, MPFR_RNDN);
        mpfr_pow(r28720, r28707, r28690, MPFR_RNDN);
        mpfr_div(r28721, r28689, r28720, MPFR_RNDN);
        mpfr_sub(r28722, r28719, r28721, MPFR_RNDN);
        mpfr_add(r28723, r28717, r28722, MPFR_RNDN);
        mpfr_sqrt(r28724, r28723, MPFR_RNDN);
        mpfr_add(r28725, r28713, r28724, MPFR_RNDN);
        mpfr_mul(r28726, r28705, r28725, MPFR_RNDN);
        return mpfr_get_d(r28726, MPFR_RNDN);
}

