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

char *name = "Jmat.Real.erfi, branch x greater than or equal to 5";

double f_if(float x) {
        float r10351 = 1.0f;
        float r10352 = atan2(1.0, 0.0);
        float r10353 = sqrt(r10352);
        float r10354 = r10351 / r10353;
        float r10355 = x;
        float r10356 = fabs(r10355);
        float r10357 = r10356 * r10356;
        float r10358 = exp(r10357);
        float r10359 = r10354 * r10358;
        float r10360 = r10351 / r10356;
        float r10361 = 2.0f;
        float r10362 = r10351 / r10361;
        float r10363 = r10360 * r10360;
        float r10364 = r10363 * r10360;
        float r10365 = r10362 * r10364;
        float r10366 = r10360 + r10365;
        float r10367 = 3.0f;
        float r10368 = 4.0f;
        float r10369 = r10367 / r10368;
        float r10370 = r10364 * r10360;
        float r10371 = r10370 * r10360;
        float r10372 = r10369 * r10371;
        float r10373 = r10366 + r10372;
        float r10374 = 15.0f;
        float r10375 = 8.0f;
        float r10376 = r10374 / r10375;
        float r10377 = r10371 * r10360;
        float r10378 = r10377 * r10360;
        float r10379 = r10376 * r10378;
        float r10380 = r10373 + r10379;
        float r10381 = r10359 * r10380;
        return r10381;
}

double f_id(double x) {
        double r10382 = 1.0;
        double r10383 = atan2(1.0, 0.0);
        double r10384 = sqrt(r10383);
        double r10385 = r10382 / r10384;
        double r10386 = x;
        double r10387 = fabs(r10386);
        double r10388 = r10387 * r10387;
        double r10389 = exp(r10388);
        double r10390 = r10385 * r10389;
        double r10391 = r10382 / r10387;
        double r10392 = 2.0;
        double r10393 = r10382 / r10392;
        double r10394 = r10391 * r10391;
        double r10395 = r10394 * r10391;
        double r10396 = r10393 * r10395;
        double r10397 = r10391 + r10396;
        double r10398 = 3.0;
        double r10399 = 4.0;
        double r10400 = r10398 / r10399;
        double r10401 = r10395 * r10391;
        double r10402 = r10401 * r10391;
        double r10403 = r10400 * r10402;
        double r10404 = r10397 + r10403;
        double r10405 = 15.0;
        double r10406 = 8.0;
        double r10407 = r10405 / r10406;
        double r10408 = r10402 * r10391;
        double r10409 = r10408 * r10391;
        double r10410 = r10407 * r10409;
        double r10411 = r10404 + r10410;
        double r10412 = r10390 * r10411;
        return r10412;
}


double f_of(float x) {
        float r10413 = x;
        float r10414 = fabs(r10413);
        float r10415 = r10414 * r10414;
        float r10416 = exp(r10415);
        float r10417 = atan2(1.0, 0.0);
        float r10418 = sqrt(r10417);
        float r10419 = r10416 / r10418;
        float r10420 = 1.0f;
        float r10421 = r10420 / r10414;
        float r10422 = r10421 / r10415;
        float r10423 = r10422 / r10415;
        float r10424 = 3.0f;
        float r10425 = 4.0f;
        float r10426 = r10424 / r10425;
        float r10427 = 2.0f;
        float r10428 = r10421 / r10427;
        float r10429 = r10421 / r10414;
        float r10430 = fma(r10428, r10429, r10421);
        float r10431 = cbrt(r10430);
        float r10432 = r10431 * r10431;
        float r10433 = r10431 * r10432;
        float r10434 = fma(r10423, r10426, r10433);
        float r10435 = pow(r10414, r10424);
        float r10436 = r10421 / r10435;
        float r10437 = r10436 / r10435;
        float r10438 = 15.0f;
        float r10439 = 8.0f;
        float r10440 = r10438 / r10439;
        float r10441 = r10420 / r10418;
        float r10442 = r10440 * r10441;
        float r10443 = r10416 * r10442;
        float r10444 = r10437 * r10443;
        float r10445 = fma(r10419, r10434, r10444);
        return r10445;
}

double f_od(double x) {
        double r10446 = x;
        double r10447 = fabs(r10446);
        double r10448 = r10447 * r10447;
        double r10449 = exp(r10448);
        double r10450 = atan2(1.0, 0.0);
        double r10451 = sqrt(r10450);
        double r10452 = r10449 / r10451;
        double r10453 = 1.0;
        double r10454 = r10453 / r10447;
        double r10455 = r10454 / r10448;
        double r10456 = r10455 / r10448;
        double r10457 = 3.0;
        double r10458 = 4.0;
        double r10459 = r10457 / r10458;
        double r10460 = 2.0;
        double r10461 = r10454 / r10460;
        double r10462 = r10454 / r10447;
        double r10463 = fma(r10461, r10462, r10454);
        double r10464 = cbrt(r10463);
        double r10465 = r10464 * r10464;
        double r10466 = r10464 * r10465;
        double r10467 = fma(r10456, r10459, r10466);
        double r10468 = pow(r10447, r10457);
        double r10469 = r10454 / r10468;
        double r10470 = r10469 / r10468;
        double r10471 = 15.0;
        double r10472 = 8.0;
        double r10473 = r10471 / r10472;
        double r10474 = r10453 / r10451;
        double r10475 = r10473 * r10474;
        double r10476 = r10449 * r10475;
        double r10477 = r10470 * r10476;
        double r10478 = fma(r10452, r10467, r10477);
        return r10478;
}

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 r10479, r10480, r10481, r10482, r10483, r10484, r10485, r10486, r10487, r10488, r10489, r10490, r10491, r10492, r10493, r10494, r10495, r10496, r10497, r10498, r10499, r10500, r10501, r10502, r10503, r10504, r10505, r10506, r10507, r10508, r10509;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10479, "1", 10, MPFR_RNDN);
        mpfr_init(r10480);
        mpfr_init(r10481);
        mpfr_init(r10482);
        mpfr_init(r10483);
        mpfr_init(r10484);
        mpfr_init(r10485);
        mpfr_init(r10486);
        mpfr_init(r10487);
        mpfr_init(r10488);
        mpfr_init_set_str(r10489, "2", 10, MPFR_RNDN);
        mpfr_init(r10490);
        mpfr_init(r10491);
        mpfr_init(r10492);
        mpfr_init(r10493);
        mpfr_init(r10494);
        mpfr_init_set_str(r10495, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r10496, "4", 10, MPFR_RNDN);
        mpfr_init(r10497);
        mpfr_init(r10498);
        mpfr_init(r10499);
        mpfr_init(r10500);
        mpfr_init(r10501);
        mpfr_init_set_str(r10502, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r10503, "8", 10, MPFR_RNDN);
        mpfr_init(r10504);
        mpfr_init(r10505);
        mpfr_init(r10506);
        mpfr_init(r10507);
        mpfr_init(r10508);
        mpfr_init(r10509);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r10480, MPFR_RNDN);
        mpfr_sqrt(r10481, r10480, MPFR_RNDN);
        mpfr_div(r10482, r10479, r10481, MPFR_RNDN);
        mpfr_set_d(r10483, x, MPFR_RNDN);
        mpfr_abs(r10484, r10483, MPFR_RNDN);
        mpfr_mul(r10485, r10484, r10484, MPFR_RNDN);
        mpfr_exp(r10486, r10485, MPFR_RNDN);
        mpfr_mul(r10487, r10482, r10486, MPFR_RNDN);
        mpfr_div(r10488, r10479, r10484, MPFR_RNDN);
        ;
        mpfr_div(r10490, r10479, r10489, MPFR_RNDN);
        mpfr_mul(r10491, r10488, r10488, MPFR_RNDN);
        mpfr_mul(r10492, r10491, r10488, MPFR_RNDN);
        mpfr_mul(r10493, r10490, r10492, MPFR_RNDN);
        mpfr_add(r10494, r10488, r10493, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10497, r10495, r10496, MPFR_RNDN);
        mpfr_mul(r10498, r10492, r10488, MPFR_RNDN);
        mpfr_mul(r10499, r10498, r10488, MPFR_RNDN);
        mpfr_mul(r10500, r10497, r10499, MPFR_RNDN);
        mpfr_add(r10501, r10494, r10500, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10504, r10502, r10503, MPFR_RNDN);
        mpfr_mul(r10505, r10499, r10488, MPFR_RNDN);
        mpfr_mul(r10506, r10505, r10488, MPFR_RNDN);
        mpfr_mul(r10507, r10504, r10506, MPFR_RNDN);
        mpfr_add(r10508, r10501, r10507, MPFR_RNDN);
        mpfr_mul(r10509, r10487, r10508, MPFR_RNDN);
        return mpfr_get_d(r10509, MPFR_RNDN);
}

static mpfr_t r10510, r10511, r10512, r10513, r10514, r10515, r10516, r10517, r10518, r10519, r10520, r10521, r10522, r10523, r10524, r10525, r10526, r10527, r10528, r10529, r10530, r10531, r10532, r10533, r10534, r10535, r10536, r10537, r10538, r10539, r10540, r10541, r10542;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10510);
        mpfr_init(r10511);
        mpfr_init(r10512);
        mpfr_init(r10513);
        mpfr_init(r10514);
        mpfr_init(r10515);
        mpfr_init(r10516);
        mpfr_init_set_str(r10517, "1", 10, MPFR_RNDN);
        mpfr_init(r10518);
        mpfr_init(r10519);
        mpfr_init(r10520);
        mpfr_init_set_str(r10521, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r10522, "4", 10, MPFR_RNDN);
        mpfr_init(r10523);
        mpfr_init_set_str(r10524, "2", 10, MPFR_RNDN);
        mpfr_init(r10525);
        mpfr_init(r10526);
        mpfr_init(r10527);
        mpfr_init(r10528);
        mpfr_init(r10529);
        mpfr_init(r10530);
        mpfr_init(r10531);
        mpfr_init(r10532);
        mpfr_init(r10533);
        mpfr_init(r10534);
        mpfr_init_set_str(r10535, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r10536, "8", 10, MPFR_RNDN);
        mpfr_init(r10537);
        mpfr_init(r10538);
        mpfr_init(r10539);
        mpfr_init(r10540);
        mpfr_init(r10541);
        mpfr_init(r10542);
}

double f_fm(double x) {
        mpfr_set_d(r10510, x, MPFR_RNDN);
        mpfr_abs(r10511, r10510, MPFR_RNDN);
        mpfr_mul(r10512, r10511, r10511, MPFR_RNDN);
        mpfr_exp(r10513, r10512, MPFR_RNDN);
        mpfr_const_pi(r10514, MPFR_RNDN);
        mpfr_sqrt(r10515, r10514, MPFR_RNDN);
        mpfr_div(r10516, r10513, r10515, MPFR_RNDN);
        ;
        mpfr_div(r10518, r10517, r10511, MPFR_RNDN);
        mpfr_div(r10519, r10518, r10512, MPFR_RNDN);
        mpfr_div(r10520, r10519, r10512, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10523, r10521, r10522, MPFR_RNDN);
        ;
        mpfr_div(r10525, r10518, r10524, MPFR_RNDN);
        mpfr_div(r10526, r10518, r10511, MPFR_RNDN);
        mpfr_fma(r10527, r10525, r10526, r10518, MPFR_RNDN);
        mpfr_cbrt(r10528, r10527, MPFR_RNDN);
        mpfr_mul(r10529, r10528, r10528, MPFR_RNDN);
        mpfr_mul(r10530, r10528, r10529, MPFR_RNDN);
        mpfr_fma(r10531, r10520, r10523, r10530, MPFR_RNDN);
        mpfr_pow(r10532, r10511, r10521, MPFR_RNDN);
        mpfr_div(r10533, r10518, r10532, MPFR_RNDN);
        mpfr_div(r10534, r10533, r10532, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10537, r10535, r10536, MPFR_RNDN);
        mpfr_div(r10538, r10517, r10515, MPFR_RNDN);
        mpfr_mul(r10539, r10537, r10538, MPFR_RNDN);
        mpfr_mul(r10540, r10513, r10539, MPFR_RNDN);
        mpfr_mul(r10541, r10534, r10540, MPFR_RNDN);
        mpfr_fma(r10542, r10516, r10531, r10541, MPFR_RNDN);
        return mpfr_get_d(r10542, MPFR_RNDN);
}

static mpfr_t r10543, r10544, r10545, r10546, r10547, r10548, r10549, r10550, r10551, r10552, r10553, r10554, r10555, r10556, r10557, r10558, r10559, r10560, r10561, r10562, r10563, r10564, r10565, r10566, r10567, r10568, r10569, r10570, r10571, r10572, r10573, r10574, r10575;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10543);
        mpfr_init(r10544);
        mpfr_init(r10545);
        mpfr_init(r10546);
        mpfr_init(r10547);
        mpfr_init(r10548);
        mpfr_init(r10549);
        mpfr_init_set_str(r10550, "1", 10, MPFR_RNDN);
        mpfr_init(r10551);
        mpfr_init(r10552);
        mpfr_init(r10553);
        mpfr_init_set_str(r10554, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r10555, "4", 10, MPFR_RNDN);
        mpfr_init(r10556);
        mpfr_init_set_str(r10557, "2", 10, MPFR_RNDN);
        mpfr_init(r10558);
        mpfr_init(r10559);
        mpfr_init(r10560);
        mpfr_init(r10561);
        mpfr_init(r10562);
        mpfr_init(r10563);
        mpfr_init(r10564);
        mpfr_init(r10565);
        mpfr_init(r10566);
        mpfr_init(r10567);
        mpfr_init_set_str(r10568, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r10569, "8", 10, MPFR_RNDN);
        mpfr_init(r10570);
        mpfr_init(r10571);
        mpfr_init(r10572);
        mpfr_init(r10573);
        mpfr_init(r10574);
        mpfr_init(r10575);
}

double f_dm(double x) {
        mpfr_set_d(r10543, x, MPFR_RNDN);
        mpfr_abs(r10544, r10543, MPFR_RNDN);
        mpfr_mul(r10545, r10544, r10544, MPFR_RNDN);
        mpfr_exp(r10546, r10545, MPFR_RNDN);
        mpfr_const_pi(r10547, MPFR_RNDN);
        mpfr_sqrt(r10548, r10547, MPFR_RNDN);
        mpfr_div(r10549, r10546, r10548, MPFR_RNDN);
        ;
        mpfr_div(r10551, r10550, r10544, MPFR_RNDN);
        mpfr_div(r10552, r10551, r10545, MPFR_RNDN);
        mpfr_div(r10553, r10552, r10545, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10556, r10554, r10555, MPFR_RNDN);
        ;
        mpfr_div(r10558, r10551, r10557, MPFR_RNDN);
        mpfr_div(r10559, r10551, r10544, MPFR_RNDN);
        mpfr_fma(r10560, r10558, r10559, r10551, MPFR_RNDN);
        mpfr_cbrt(r10561, r10560, MPFR_RNDN);
        mpfr_mul(r10562, r10561, r10561, MPFR_RNDN);
        mpfr_mul(r10563, r10561, r10562, MPFR_RNDN);
        mpfr_fma(r10564, r10553, r10556, r10563, MPFR_RNDN);
        mpfr_pow(r10565, r10544, r10554, MPFR_RNDN);
        mpfr_div(r10566, r10551, r10565, MPFR_RNDN);
        mpfr_div(r10567, r10566, r10565, MPFR_RNDN);
        ;
        ;
        mpfr_div(r10570, r10568, r10569, MPFR_RNDN);
        mpfr_div(r10571, r10550, r10548, MPFR_RNDN);
        mpfr_mul(r10572, r10570, r10571, MPFR_RNDN);
        mpfr_mul(r10573, r10546, r10572, MPFR_RNDN);
        mpfr_mul(r10574, r10567, r10573, MPFR_RNDN);
        mpfr_fma(r10575, r10549, r10564, r10574, MPFR_RNDN);
        return mpfr_get_d(r10575, MPFR_RNDN);
}

