#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 r30299 = 1;
        float r30300 = atan2(1.0, 0.0);
        float r30301 = sqrt(r30300);
        float r30302 = r30299 / r30301;
        float r30303 = x;
        float r30304 = fabs(r30303);
        float r30305 = r30304 * r30304;
        float r30306 = exp(r30305);
        float r30307 = r30302 * r30306;
        float r30308 = r30299 / r30304;
        float r30309 = 2;
        float r30310 = r30299 / r30309;
        float r30311 = r30308 * r30308;
        float r30312 = r30311 * r30308;
        float r30313 = r30310 * r30312;
        float r30314 = r30308 + r30313;
        float r30315 = 3;
        float r30316 = 4;
        float r30317 = r30315 / r30316;
        float r30318 = r30312 * r30308;
        float r30319 = r30318 * r30308;
        float r30320 = r30317 * r30319;
        float r30321 = r30314 + r30320;
        float r30322 = 15;
        float r30323 = 8;
        float r30324 = r30322 / r30323;
        float r30325 = r30319 * r30308;
        float r30326 = r30325 * r30308;
        float r30327 = r30324 * r30326;
        float r30328 = r30321 + r30327;
        float r30329 = r30307 * r30328;
        return r30329;
}

double f_id(double x) {
        double r30330 = 1;
        double r30331 = atan2(1.0, 0.0);
        double r30332 = sqrt(r30331);
        double r30333 = r30330 / r30332;
        double r30334 = x;
        double r30335 = fabs(r30334);
        double r30336 = r30335 * r30335;
        double r30337 = exp(r30336);
        double r30338 = r30333 * r30337;
        double r30339 = r30330 / r30335;
        double r30340 = 2;
        double r30341 = r30330 / r30340;
        double r30342 = r30339 * r30339;
        double r30343 = r30342 * r30339;
        double r30344 = r30341 * r30343;
        double r30345 = r30339 + r30344;
        double r30346 = 3;
        double r30347 = 4;
        double r30348 = r30346 / r30347;
        double r30349 = r30343 * r30339;
        double r30350 = r30349 * r30339;
        double r30351 = r30348 * r30350;
        double r30352 = r30345 + r30351;
        double r30353 = 15;
        double r30354 = 8;
        double r30355 = r30353 / r30354;
        double r30356 = r30350 * r30339;
        double r30357 = r30356 * r30339;
        double r30358 = r30355 * r30357;
        double r30359 = r30352 + r30358;
        double r30360 = r30338 * r30359;
        return r30360;
}


double f_of(float x) {
        float r30361 = 1;
        float r30362 = x;
        float r30363 = fabs(r30362);
        float r30364 = r30361 / r30363;
        float r30365 = r30363 + r30363;
        float r30366 = r30364 / r30365;
        float r30367 = r30364 * r30366;
        float r30368 = r30367 + r30364;
        float r30369 = 4/3;
        float r30370 = r30369 * r30363;
        float r30371 = r30364 / r30370;
        float r30372 = r30363 * r30363;
        float r30373 = r30372 / r30364;
        float r30374 = r30371 / r30373;
        float r30375 = 15;
        float r30376 = 8;
        float r30377 = r30375 / r30376;
        float r30378 = r30377 / r30363;
        float r30379 = 3;
        float r30380 = pow(r30363, r30379);
        float r30381 = r30378 / r30380;
        float r30382 = r30381 / r30380;
        float r30383 = r30374 + r30382;
        float r30384 = r30368 + r30383;
        float r30385 = exp(r30372);
        float r30386 = atan2(1.0, 0.0);
        float r30387 = sqrt(r30386);
        float r30388 = r30385 / r30387;
        float r30389 = r30384 * r30388;
        return r30389;
}

double f_od(double x) {
        double r30390 = 1;
        double r30391 = x;
        double r30392 = fabs(r30391);
        double r30393 = r30390 / r30392;
        double r30394 = r30392 + r30392;
        double r30395 = r30393 / r30394;
        double r30396 = r30393 * r30395;
        double r30397 = r30396 + r30393;
        double r30398 = 4/3;
        double r30399 = r30398 * r30392;
        double r30400 = r30393 / r30399;
        double r30401 = r30392 * r30392;
        double r30402 = r30401 / r30393;
        double r30403 = r30400 / r30402;
        double r30404 = 15;
        double r30405 = 8;
        double r30406 = r30404 / r30405;
        double r30407 = r30406 / r30392;
        double r30408 = 3;
        double r30409 = pow(r30392, r30408);
        double r30410 = r30407 / r30409;
        double r30411 = r30410 / r30409;
        double r30412 = r30403 + r30411;
        double r30413 = r30397 + r30412;
        double r30414 = exp(r30401);
        double r30415 = atan2(1.0, 0.0);
        double r30416 = sqrt(r30415);
        double r30417 = r30414 / r30416;
        double r30418 = r30413 * r30417;
        return r30418;
}

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 r30419, r30420, r30421, r30422, r30423, r30424, r30425, r30426, r30427, r30428, r30429, r30430, r30431, r30432, r30433, r30434, r30435, r30436, r30437, r30438, r30439, r30440, r30441, r30442, r30443, r30444, r30445, r30446, r30447, r30448, r30449;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30419, "1", 10, MPFR_RNDN);
        mpfr_init(r30420);
        mpfr_init(r30421);
        mpfr_init(r30422);
        mpfr_init(r30423);
        mpfr_init(r30424);
        mpfr_init(r30425);
        mpfr_init(r30426);
        mpfr_init(r30427);
        mpfr_init(r30428);
        mpfr_init_set_str(r30429, "2", 10, MPFR_RNDN);
        mpfr_init(r30430);
        mpfr_init(r30431);
        mpfr_init(r30432);
        mpfr_init(r30433);
        mpfr_init(r30434);
        mpfr_init_set_str(r30435, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r30436, "4", 10, MPFR_RNDN);
        mpfr_init(r30437);
        mpfr_init(r30438);
        mpfr_init(r30439);
        mpfr_init(r30440);
        mpfr_init(r30441);
        mpfr_init_set_str(r30442, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30443, "8", 10, MPFR_RNDN);
        mpfr_init(r30444);
        mpfr_init(r30445);
        mpfr_init(r30446);
        mpfr_init(r30447);
        mpfr_init(r30448);
        mpfr_init(r30449);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30420, MPFR_RNDN);
        mpfr_sqrt(r30421, r30420, MPFR_RNDN);
        mpfr_div(r30422, r30419, r30421, MPFR_RNDN);
        mpfr_set_d(r30423, x, MPFR_RNDN);
        mpfr_abs(r30424, r30423, MPFR_RNDN);
        mpfr_mul(r30425, r30424, r30424, MPFR_RNDN);
        mpfr_exp(r30426, r30425, MPFR_RNDN);
        mpfr_mul(r30427, r30422, r30426, MPFR_RNDN);
        mpfr_div(r30428, r30419, r30424, MPFR_RNDN);
        ;
        mpfr_div(r30430, r30419, r30429, MPFR_RNDN);
        mpfr_mul(r30431, r30428, r30428, MPFR_RNDN);
        mpfr_mul(r30432, r30431, r30428, MPFR_RNDN);
        mpfr_mul(r30433, r30430, r30432, MPFR_RNDN);
        mpfr_add(r30434, r30428, r30433, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30437, r30435, r30436, MPFR_RNDN);
        mpfr_mul(r30438, r30432, r30428, MPFR_RNDN);
        mpfr_mul(r30439, r30438, r30428, MPFR_RNDN);
        mpfr_mul(r30440, r30437, r30439, MPFR_RNDN);
        mpfr_add(r30441, r30434, r30440, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30444, r30442, r30443, MPFR_RNDN);
        mpfr_mul(r30445, r30439, r30428, MPFR_RNDN);
        mpfr_mul(r30446, r30445, r30428, MPFR_RNDN);
        mpfr_mul(r30447, r30444, r30446, MPFR_RNDN);
        mpfr_add(r30448, r30441, r30447, MPFR_RNDN);
        mpfr_mul(r30449, r30427, r30448, MPFR_RNDN);
        return mpfr_get_d(r30449, MPFR_RNDN);
}

static mpfr_t r30450, r30451, r30452, r30453, r30454, r30455, r30456, r30457, r30458, r30459, r30460, r30461, r30462, r30463, r30464, r30465, r30466, r30467, r30468, r30469, r30470, r30471, r30472, r30473, r30474, r30475, r30476, r30477, r30478;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30450, "1", 10, MPFR_RNDN);
        mpfr_init(r30451);
        mpfr_init(r30452);
        mpfr_init(r30453);
        mpfr_init(r30454);
        mpfr_init(r30455);
        mpfr_init(r30456);
        mpfr_init(r30457);
        mpfr_init_set_str(r30458, "4/3", 10, MPFR_RNDN);
        mpfr_init(r30459);
        mpfr_init(r30460);
        mpfr_init(r30461);
        mpfr_init(r30462);
        mpfr_init(r30463);
        mpfr_init_set_str(r30464, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30465, "8", 10, MPFR_RNDN);
        mpfr_init(r30466);
        mpfr_init(r30467);
        mpfr_init_set_str(r30468, "3", 10, MPFR_RNDN);
        mpfr_init(r30469);
        mpfr_init(r30470);
        mpfr_init(r30471);
        mpfr_init(r30472);
        mpfr_init(r30473);
        mpfr_init(r30474);
        mpfr_init(r30475);
        mpfr_init(r30476);
        mpfr_init(r30477);
        mpfr_init(r30478);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r30451, x, MPFR_RNDN);
        mpfr_abs(r30452, r30451, MPFR_RNDN);
        mpfr_div(r30453, r30450, r30452, MPFR_RNDN);
        mpfr_add(r30454, r30452, r30452, MPFR_RNDN);
        mpfr_div(r30455, r30453, r30454, MPFR_RNDN);
        mpfr_mul(r30456, r30453, r30455, MPFR_RNDN);
        mpfr_add(r30457, r30456, r30453, MPFR_RNDN);
        ;
        mpfr_mul(r30459, r30458, r30452, MPFR_RNDN);
        mpfr_div(r30460, r30453, r30459, MPFR_RNDN);
        mpfr_mul(r30461, r30452, r30452, MPFR_RNDN);
        mpfr_div(r30462, r30461, r30453, MPFR_RNDN);
        mpfr_div(r30463, r30460, r30462, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30466, r30464, r30465, MPFR_RNDN);
        mpfr_div(r30467, r30466, r30452, MPFR_RNDN);
        ;
        mpfr_pow(r30469, r30452, r30468, MPFR_RNDN);
        mpfr_div(r30470, r30467, r30469, MPFR_RNDN);
        mpfr_div(r30471, r30470, r30469, MPFR_RNDN);
        mpfr_add(r30472, r30463, r30471, MPFR_RNDN);
        mpfr_add(r30473, r30457, r30472, MPFR_RNDN);
        mpfr_exp(r30474, r30461, MPFR_RNDN);
        mpfr_const_pi(r30475, MPFR_RNDN);
        mpfr_sqrt(r30476, r30475, MPFR_RNDN);
        mpfr_div(r30477, r30474, r30476, MPFR_RNDN);
        mpfr_mul(r30478, r30473, r30477, MPFR_RNDN);
        return mpfr_get_d(r30478, MPFR_RNDN);
}

static mpfr_t r30479, r30480, r30481, r30482, r30483, r30484, r30485, r30486, r30487, r30488, r30489, r30490, r30491, r30492, r30493, r30494, r30495, r30496, r30497, r30498, r30499, r30500, r30501, r30502, r30503, r30504, r30505, r30506, r30507;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30479, "1", 10, MPFR_RNDN);
        mpfr_init(r30480);
        mpfr_init(r30481);
        mpfr_init(r30482);
        mpfr_init(r30483);
        mpfr_init(r30484);
        mpfr_init(r30485);
        mpfr_init(r30486);
        mpfr_init_set_str(r30487, "4/3", 10, MPFR_RNDN);
        mpfr_init(r30488);
        mpfr_init(r30489);
        mpfr_init(r30490);
        mpfr_init(r30491);
        mpfr_init(r30492);
        mpfr_init_set_str(r30493, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r30494, "8", 10, MPFR_RNDN);
        mpfr_init(r30495);
        mpfr_init(r30496);
        mpfr_init_set_str(r30497, "3", 10, MPFR_RNDN);
        mpfr_init(r30498);
        mpfr_init(r30499);
        mpfr_init(r30500);
        mpfr_init(r30501);
        mpfr_init(r30502);
        mpfr_init(r30503);
        mpfr_init(r30504);
        mpfr_init(r30505);
        mpfr_init(r30506);
        mpfr_init(r30507);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r30480, x, MPFR_RNDN);
        mpfr_abs(r30481, r30480, MPFR_RNDN);
        mpfr_div(r30482, r30479, r30481, MPFR_RNDN);
        mpfr_add(r30483, r30481, r30481, MPFR_RNDN);
        mpfr_div(r30484, r30482, r30483, MPFR_RNDN);
        mpfr_mul(r30485, r30482, r30484, MPFR_RNDN);
        mpfr_add(r30486, r30485, r30482, MPFR_RNDN);
        ;
        mpfr_mul(r30488, r30487, r30481, MPFR_RNDN);
        mpfr_div(r30489, r30482, r30488, MPFR_RNDN);
        mpfr_mul(r30490, r30481, r30481, MPFR_RNDN);
        mpfr_div(r30491, r30490, r30482, MPFR_RNDN);
        mpfr_div(r30492, r30489, r30491, MPFR_RNDN);
        ;
        ;
        mpfr_div(r30495, r30493, r30494, MPFR_RNDN);
        mpfr_div(r30496, r30495, r30481, MPFR_RNDN);
        ;
        mpfr_pow(r30498, r30481, r30497, MPFR_RNDN);
        mpfr_div(r30499, r30496, r30498, MPFR_RNDN);
        mpfr_div(r30500, r30499, r30498, MPFR_RNDN);
        mpfr_add(r30501, r30492, r30500, MPFR_RNDN);
        mpfr_add(r30502, r30486, r30501, MPFR_RNDN);
        mpfr_exp(r30503, r30490, MPFR_RNDN);
        mpfr_const_pi(r30504, MPFR_RNDN);
        mpfr_sqrt(r30505, r30504, MPFR_RNDN);
        mpfr_div(r30506, r30503, r30505, MPFR_RNDN);
        mpfr_mul(r30507, r30502, r30506, MPFR_RNDN);
        return mpfr_get_d(r30507, MPFR_RNDN);
}

