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

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


double f_of(float x) {
        float r30359 = 2/3;
        float r30360 = x;
        float r30361 = fabs(r30360);
        float r30362 = 3;
        float r30363 = pow(r30361, r30362);
        float r30364 = r30359 * r30363;
        float r30365 = 2;
        float r30366 = r30365 * r30361;
        float r30367 = 1/21;
        float r30368 = 7;
        float r30369 = pow(r30361, r30368);
        float r30370 = r30367 * r30369;
        float r30371 = 1/5;
        float r30372 = 5;
        float r30373 = pow(r30361, r30372);
        float r30374 = r30371 * r30373;
        float r30375 = r30370 + r30374;
        float r30376 = r30366 + r30375;
        float r30377 = r30364 + r30376;
        float r30378 = 1;
        float r30379 = atan2(1.0, 0.0);
        float r30380 = r30378 / r30379;
        float r30381 = sqrt(r30380);
        float r30382 = r30377 * r30381;
        float r30383 = fabs(r30382);
        return r30383;
}

double f_od(double x) {
        double r30384 = 2/3;
        double r30385 = x;
        double r30386 = fabs(r30385);
        double r30387 = 3;
        double r30388 = pow(r30386, r30387);
        double r30389 = r30384 * r30388;
        double r30390 = 2;
        double r30391 = r30390 * r30386;
        double r30392 = 1/21;
        double r30393 = 7;
        double r30394 = pow(r30386, r30393);
        double r30395 = r30392 * r30394;
        double r30396 = 1/5;
        double r30397 = 5;
        double r30398 = pow(r30386, r30397);
        double r30399 = r30396 * r30398;
        double r30400 = r30395 + r30399;
        double r30401 = r30391 + r30400;
        double r30402 = r30389 + r30401;
        double r30403 = 1;
        double r30404 = atan2(1.0, 0.0);
        double r30405 = r30403 / r30404;
        double r30406 = sqrt(r30405);
        double r30407 = r30402 * r30406;
        double r30408 = fabs(r30407);
        return r30408;
}

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 r30409, r30410, r30411, r30412, r30413, r30414, r30415, r30416, r30417, r30418, r30419, r30420, r30421, r30422, r30423, r30424, r30425, r30426, r30427, r30428, r30429, r30430, r30431, r30432, r30433, r30434, r30435, r30436;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30409, "1", 10, MPFR_RNDN);
        mpfr_init(r30410);
        mpfr_init(r30411);
        mpfr_init(r30412);
        mpfr_init_set_str(r30413, "2", 10, MPFR_RNDN);
        mpfr_init(r30414);
        mpfr_init(r30415);
        mpfr_init(r30416);
        mpfr_init_set_str(r30417, "3", 10, MPFR_RNDN);
        mpfr_init(r30418);
        mpfr_init(r30419);
        mpfr_init(r30420);
        mpfr_init(r30421);
        mpfr_init(r30422);
        mpfr_init_set_str(r30423, "5", 10, MPFR_RNDN);
        mpfr_init(r30424);
        mpfr_init(r30425);
        mpfr_init(r30426);
        mpfr_init(r30427);
        mpfr_init(r30428);
        mpfr_init_set_str(r30429, "21", 10, MPFR_RNDN);
        mpfr_init(r30430);
        mpfr_init(r30431);
        mpfr_init(r30432);
        mpfr_init(r30433);
        mpfr_init(r30434);
        mpfr_init(r30435);
        mpfr_init(r30436);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r30410, MPFR_RNDN);
        mpfr_sqrt(r30411, r30410, MPFR_RNDN);
        mpfr_div(r30412, r30409, r30411, MPFR_RNDN);
        ;
        mpfr_set_d(r30414, x, MPFR_RNDN);
        mpfr_abs(r30415, r30414, MPFR_RNDN);
        mpfr_mul(r30416, r30413, r30415, MPFR_RNDN);
        ;
        mpfr_div(r30418, r30413, r30417, MPFR_RNDN);
        mpfr_mul(r30419, r30415, r30415, MPFR_RNDN);
        mpfr_mul(r30420, r30419, r30415, MPFR_RNDN);
        mpfr_mul(r30421, r30418, r30420, MPFR_RNDN);
        mpfr_add(r30422, r30416, r30421, MPFR_RNDN);
        ;
        mpfr_div(r30424, r30409, r30423, MPFR_RNDN);
        mpfr_mul(r30425, r30420, r30415, MPFR_RNDN);
        mpfr_mul(r30426, r30425, r30415, MPFR_RNDN);
        mpfr_mul(r30427, r30424, r30426, MPFR_RNDN);
        mpfr_add(r30428, r30422, r30427, MPFR_RNDN);
        ;
        mpfr_div(r30430, r30409, r30429, MPFR_RNDN);
        mpfr_mul(r30431, r30426, r30415, MPFR_RNDN);
        mpfr_mul(r30432, r30431, r30415, MPFR_RNDN);
        mpfr_mul(r30433, r30430, r30432, MPFR_RNDN);
        mpfr_add(r30434, r30428, r30433, MPFR_RNDN);
        mpfr_mul(r30435, r30412, r30434, MPFR_RNDN);
        mpfr_abs(r30436, r30435, MPFR_RNDN);
        return mpfr_get_d(r30436, MPFR_RNDN);
}

static mpfr_t r30437, r30438, r30439, r30440, r30441, r30442, r30443, r30444, r30445, r30446, r30447, r30448, r30449, r30450, r30451, r30452, r30453, r30454, r30455, r30456, r30457, r30458, r30459, r30460, r30461;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30437, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30438);
        mpfr_init(r30439);
        mpfr_init_set_str(r30440, "3", 10, MPFR_RNDN);
        mpfr_init(r30441);
        mpfr_init(r30442);
        mpfr_init_set_str(r30443, "2", 10, MPFR_RNDN);
        mpfr_init(r30444);
        mpfr_init_set_str(r30445, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30446, "7", 10, MPFR_RNDN);
        mpfr_init(r30447);
        mpfr_init(r30448);
        mpfr_init_set_str(r30449, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30450, "5", 10, MPFR_RNDN);
        mpfr_init(r30451);
        mpfr_init(r30452);
        mpfr_init(r30453);
        mpfr_init(r30454);
        mpfr_init(r30455);
        mpfr_init_set_str(r30456, "1", 10, MPFR_RNDN);
        mpfr_init(r30457);
        mpfr_init(r30458);
        mpfr_init(r30459);
        mpfr_init(r30460);
        mpfr_init(r30461);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r30438, x, MPFR_RNDN);
        mpfr_abs(r30439, r30438, MPFR_RNDN);
        ;
        mpfr_pow(r30441, r30439, r30440, MPFR_RNDN);
        mpfr_mul(r30442, r30437, r30441, MPFR_RNDN);
        ;
        mpfr_mul(r30444, r30443, r30439, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30447, r30439, r30446, MPFR_RNDN);
        mpfr_mul(r30448, r30445, r30447, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30451, r30439, r30450, MPFR_RNDN);
        mpfr_mul(r30452, r30449, r30451, MPFR_RNDN);
        mpfr_add(r30453, r30448, r30452, MPFR_RNDN);
        mpfr_add(r30454, r30444, r30453, MPFR_RNDN);
        mpfr_add(r30455, r30442, r30454, MPFR_RNDN);
        ;
        mpfr_const_pi(r30457, MPFR_RNDN);
        mpfr_div(r30458, r30456, r30457, MPFR_RNDN);
        mpfr_sqrt(r30459, r30458, MPFR_RNDN);
        mpfr_mul(r30460, r30455, r30459, MPFR_RNDN);
        mpfr_abs(r30461, r30460, MPFR_RNDN);
        return mpfr_get_d(r30461, MPFR_RNDN);
}

static mpfr_t r30462, r30463, r30464, r30465, r30466, r30467, r30468, r30469, r30470, r30471, r30472, r30473, r30474, r30475, r30476, r30477, r30478, r30479, r30480, r30481, r30482, r30483, r30484, r30485, r30486;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30462, "2/3", 10, MPFR_RNDN);
        mpfr_init(r30463);
        mpfr_init(r30464);
        mpfr_init_set_str(r30465, "3", 10, MPFR_RNDN);
        mpfr_init(r30466);
        mpfr_init(r30467);
        mpfr_init_set_str(r30468, "2", 10, MPFR_RNDN);
        mpfr_init(r30469);
        mpfr_init_set_str(r30470, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r30471, "7", 10, MPFR_RNDN);
        mpfr_init(r30472);
        mpfr_init(r30473);
        mpfr_init_set_str(r30474, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r30475, "5", 10, MPFR_RNDN);
        mpfr_init(r30476);
        mpfr_init(r30477);
        mpfr_init(r30478);
        mpfr_init(r30479);
        mpfr_init(r30480);
        mpfr_init_set_str(r30481, "1", 10, MPFR_RNDN);
        mpfr_init(r30482);
        mpfr_init(r30483);
        mpfr_init(r30484);
        mpfr_init(r30485);
        mpfr_init(r30486);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r30463, x, MPFR_RNDN);
        mpfr_abs(r30464, r30463, MPFR_RNDN);
        ;
        mpfr_pow(r30466, r30464, r30465, MPFR_RNDN);
        mpfr_mul(r30467, r30462, r30466, MPFR_RNDN);
        ;
        mpfr_mul(r30469, r30468, r30464, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30472, r30464, r30471, MPFR_RNDN);
        mpfr_mul(r30473, r30470, r30472, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r30476, r30464, r30475, MPFR_RNDN);
        mpfr_mul(r30477, r30474, r30476, MPFR_RNDN);
        mpfr_add(r30478, r30473, r30477, MPFR_RNDN);
        mpfr_add(r30479, r30469, r30478, MPFR_RNDN);
        mpfr_add(r30480, r30467, r30479, MPFR_RNDN);
        ;
        mpfr_const_pi(r30482, MPFR_RNDN);
        mpfr_div(r30483, r30481, r30482, MPFR_RNDN);
        mpfr_sqrt(r30484, r30483, MPFR_RNDN);
        mpfr_mul(r30485, r30480, r30484, MPFR_RNDN);
        mpfr_abs(r30486, r30485, MPFR_RNDN);
        return mpfr_get_d(r30486, MPFR_RNDN);
}

