#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 r27228 = 1;
        float r27229 = atan2(1.0, 0.0);
        float r27230 = sqrt(r27229);
        float r27231 = r27228 / r27230;
        float r27232 = x;
        float r27233 = fabs(r27232);
        float r27234 = r27233 * r27233;
        float r27235 = exp(r27234);
        float r27236 = r27231 * r27235;
        float r27237 = r27228 / r27233;
        float r27238 = 2;
        float r27239 = r27228 / r27238;
        float r27240 = r27237 * r27237;
        float r27241 = r27240 * r27237;
        float r27242 = r27239 * r27241;
        float r27243 = r27237 + r27242;
        float r27244 = 3;
        float r27245 = 4;
        float r27246 = r27244 / r27245;
        float r27247 = r27241 * r27237;
        float r27248 = r27247 * r27237;
        float r27249 = r27246 * r27248;
        float r27250 = r27243 + r27249;
        float r27251 = 15;
        float r27252 = 8;
        float r27253 = r27251 / r27252;
        float r27254 = r27248 * r27237;
        float r27255 = r27254 * r27237;
        float r27256 = r27253 * r27255;
        float r27257 = r27250 + r27256;
        float r27258 = r27236 * r27257;
        return r27258;
}

double f_id(double x) {
        double r27259 = 1;
        double r27260 = atan2(1.0, 0.0);
        double r27261 = sqrt(r27260);
        double r27262 = r27259 / r27261;
        double r27263 = x;
        double r27264 = fabs(r27263);
        double r27265 = r27264 * r27264;
        double r27266 = exp(r27265);
        double r27267 = r27262 * r27266;
        double r27268 = r27259 / r27264;
        double r27269 = 2;
        double r27270 = r27259 / r27269;
        double r27271 = r27268 * r27268;
        double r27272 = r27271 * r27268;
        double r27273 = r27270 * r27272;
        double r27274 = r27268 + r27273;
        double r27275 = 3;
        double r27276 = 4;
        double r27277 = r27275 / r27276;
        double r27278 = r27272 * r27268;
        double r27279 = r27278 * r27268;
        double r27280 = r27277 * r27279;
        double r27281 = r27274 + r27280;
        double r27282 = 15;
        double r27283 = 8;
        double r27284 = r27282 / r27283;
        double r27285 = r27279 * r27268;
        double r27286 = r27285 * r27268;
        double r27287 = r27284 * r27286;
        double r27288 = r27281 + r27287;
        double r27289 = r27267 * r27288;
        return r27289;
}


double f_of(float x) {
        float r27290 = x;
        float r27291 = fabs(r27290);
        float r27292 = r27291 * r27291;
        float r27293 = exp(r27292);
        float r27294 = atan2(1.0, 0.0);
        float r27295 = sqrt(r27294);
        float r27296 = r27293 / r27295;
        float r27297 = 1;
        float r27298 = r27297 / r27291;
        float r27299 = 3;
        float r27300 = 4;
        float r27301 = r27299 / r27300;
        float r27302 = r27298 * r27301;
        float r27303 = r27298 / r27291;
        float r27304 = r27302 * r27303;
        float r27305 = 2;
        float r27306 = r27298 / r27305;
        float r27307 = fma(r27303, r27306, r27298);
        float r27308 = fma(r27304, r27303, r27307);
        float r27309 = -1;
        float r27310 = r27309 - r27299;
        float r27311 = pow(r27291, r27310);
        float r27312 = -r27299;
        float r27313 = pow(r27291, r27312);
        float r27314 = r27311 * r27313;
        float r27315 = r27297 / r27295;
        float r27316 = 15;
        float r27317 = 8;
        float r27318 = r27316 / r27317;
        float r27319 = r27315 * r27318;
        float r27320 = r27293 * r27319;
        float r27321 = r27314 * r27320;
        float r27322 = fma(r27296, r27308, r27321);
        return r27322;
}

double f_od(double x) {
        double r27323 = x;
        double r27324 = fabs(r27323);
        double r27325 = r27324 * r27324;
        double r27326 = exp(r27325);
        double r27327 = atan2(1.0, 0.0);
        double r27328 = sqrt(r27327);
        double r27329 = r27326 / r27328;
        double r27330 = 1;
        double r27331 = r27330 / r27324;
        double r27332 = 3;
        double r27333 = 4;
        double r27334 = r27332 / r27333;
        double r27335 = r27331 * r27334;
        double r27336 = r27331 / r27324;
        double r27337 = r27335 * r27336;
        double r27338 = 2;
        double r27339 = r27331 / r27338;
        double r27340 = fma(r27336, r27339, r27331);
        double r27341 = fma(r27337, r27336, r27340);
        double r27342 = -1;
        double r27343 = r27342 - r27332;
        double r27344 = pow(r27324, r27343);
        double r27345 = -r27332;
        double r27346 = pow(r27324, r27345);
        double r27347 = r27344 * r27346;
        double r27348 = r27330 / r27328;
        double r27349 = 15;
        double r27350 = 8;
        double r27351 = r27349 / r27350;
        double r27352 = r27348 * r27351;
        double r27353 = r27326 * r27352;
        double r27354 = r27347 * r27353;
        double r27355 = fma(r27329, r27341, r27354);
        return r27355;
}

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 r27356, r27357, r27358, r27359, r27360, r27361, r27362, r27363, r27364, r27365, r27366, r27367, r27368, r27369, r27370, r27371, r27372, r27373, r27374, r27375, r27376, r27377, r27378, r27379, r27380, r27381, r27382, r27383, r27384, r27385, r27386;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27356, "1", 10, MPFR_RNDN);
        mpfr_init(r27357);
        mpfr_init(r27358);
        mpfr_init(r27359);
        mpfr_init(r27360);
        mpfr_init(r27361);
        mpfr_init(r27362);
        mpfr_init(r27363);
        mpfr_init(r27364);
        mpfr_init(r27365);
        mpfr_init_set_str(r27366, "2", 10, MPFR_RNDN);
        mpfr_init(r27367);
        mpfr_init(r27368);
        mpfr_init(r27369);
        mpfr_init(r27370);
        mpfr_init(r27371);
        mpfr_init_set_str(r27372, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27373, "4", 10, MPFR_RNDN);
        mpfr_init(r27374);
        mpfr_init(r27375);
        mpfr_init(r27376);
        mpfr_init(r27377);
        mpfr_init(r27378);
        mpfr_init_set_str(r27379, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27380, "8", 10, MPFR_RNDN);
        mpfr_init(r27381);
        mpfr_init(r27382);
        mpfr_init(r27383);
        mpfr_init(r27384);
        mpfr_init(r27385);
        mpfr_init(r27386);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27357, MPFR_RNDN);
        mpfr_sqrt(r27358, r27357, MPFR_RNDN);
        mpfr_div(r27359, r27356, r27358, MPFR_RNDN);
        mpfr_set_d(r27360, x, MPFR_RNDN);
        mpfr_abs(r27361, r27360, MPFR_RNDN);
        mpfr_mul(r27362, r27361, r27361, MPFR_RNDN);
        mpfr_exp(r27363, r27362, MPFR_RNDN);
        mpfr_mul(r27364, r27359, r27363, MPFR_RNDN);
        mpfr_div(r27365, r27356, r27361, MPFR_RNDN);
        ;
        mpfr_div(r27367, r27356, r27366, MPFR_RNDN);
        mpfr_mul(r27368, r27365, r27365, MPFR_RNDN);
        mpfr_mul(r27369, r27368, r27365, MPFR_RNDN);
        mpfr_mul(r27370, r27367, r27369, MPFR_RNDN);
        mpfr_add(r27371, r27365, r27370, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27374, r27372, r27373, MPFR_RNDN);
        mpfr_mul(r27375, r27369, r27365, MPFR_RNDN);
        mpfr_mul(r27376, r27375, r27365, MPFR_RNDN);
        mpfr_mul(r27377, r27374, r27376, MPFR_RNDN);
        mpfr_add(r27378, r27371, r27377, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27381, r27379, r27380, MPFR_RNDN);
        mpfr_mul(r27382, r27376, r27365, MPFR_RNDN);
        mpfr_mul(r27383, r27382, r27365, MPFR_RNDN);
        mpfr_mul(r27384, r27381, r27383, MPFR_RNDN);
        mpfr_add(r27385, r27378, r27384, MPFR_RNDN);
        mpfr_mul(r27386, r27364, r27385, MPFR_RNDN);
        return mpfr_get_d(r27386, MPFR_RNDN);
}

static mpfr_t r27387, r27388, r27389, r27390, r27391, r27392, r27393, r27394, r27395, r27396, r27397, r27398, r27399, r27400, r27401, r27402, r27403, r27404, r27405, r27406, r27407, r27408, r27409, r27410, r27411, r27412, r27413, r27414, r27415, r27416, r27417, r27418, r27419;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27387);
        mpfr_init(r27388);
        mpfr_init(r27389);
        mpfr_init(r27390);
        mpfr_init(r27391);
        mpfr_init(r27392);
        mpfr_init(r27393);
        mpfr_init_set_str(r27394, "1", 10, MPFR_RNDN);
        mpfr_init(r27395);
        mpfr_init_set_str(r27396, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27397, "4", 10, MPFR_RNDN);
        mpfr_init(r27398);
        mpfr_init(r27399);
        mpfr_init(r27400);
        mpfr_init(r27401);
        mpfr_init_set_str(r27402, "2", 10, MPFR_RNDN);
        mpfr_init(r27403);
        mpfr_init(r27404);
        mpfr_init(r27405);
        mpfr_init_set_str(r27406, "-1", 10, MPFR_RNDN);
        mpfr_init(r27407);
        mpfr_init(r27408);
        mpfr_init(r27409);
        mpfr_init(r27410);
        mpfr_init(r27411);
        mpfr_init(r27412);
        mpfr_init_set_str(r27413, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27414, "8", 10, MPFR_RNDN);
        mpfr_init(r27415);
        mpfr_init(r27416);
        mpfr_init(r27417);
        mpfr_init(r27418);
        mpfr_init(r27419);
}

double f_fm(double x) {
        mpfr_set_d(r27387, x, MPFR_RNDN);
        mpfr_abs(r27388, r27387, MPFR_RNDN);
        mpfr_mul(r27389, r27388, r27388, MPFR_RNDN);
        mpfr_exp(r27390, r27389, MPFR_RNDN);
        mpfr_const_pi(r27391, MPFR_RNDN);
        mpfr_sqrt(r27392, r27391, MPFR_RNDN);
        mpfr_div(r27393, r27390, r27392, MPFR_RNDN);
        ;
        mpfr_div(r27395, r27394, r27388, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27398, r27396, r27397, MPFR_RNDN);
        mpfr_mul(r27399, r27395, r27398, MPFR_RNDN);
        mpfr_div(r27400, r27395, r27388, MPFR_RNDN);
        mpfr_mul(r27401, r27399, r27400, MPFR_RNDN);
        ;
        mpfr_div(r27403, r27395, r27402, MPFR_RNDN);
        mpfr_fma(r27404, r27400, r27403, r27395, MPFR_RNDN);
        mpfr_fma(r27405, r27401, r27400, r27404, MPFR_RNDN);
        ;
        mpfr_sub(r27407, r27406, r27396, MPFR_RNDN);
        mpfr_pow(r27408, r27388, r27407, MPFR_RNDN);
        mpfr_neg(r27409, r27396, MPFR_RNDN);
        mpfr_pow(r27410, r27388, r27409, MPFR_RNDN);
        mpfr_mul(r27411, r27408, r27410, MPFR_RNDN);
        mpfr_div(r27412, r27394, r27392, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27415, r27413, r27414, MPFR_RNDN);
        mpfr_mul(r27416, r27412, r27415, MPFR_RNDN);
        mpfr_mul(r27417, r27390, r27416, MPFR_RNDN);
        mpfr_mul(r27418, r27411, r27417, MPFR_RNDN);
        mpfr_fma(r27419, r27393, r27405, r27418, MPFR_RNDN);
        return mpfr_get_d(r27419, MPFR_RNDN);
}

static mpfr_t r27420, r27421, r27422, r27423, r27424, r27425, r27426, r27427, r27428, r27429, r27430, r27431, r27432, r27433, r27434, r27435, r27436, r27437, r27438, r27439, r27440, r27441, r27442, r27443, r27444, r27445, r27446, r27447, r27448, r27449, r27450, r27451, r27452;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27420);
        mpfr_init(r27421);
        mpfr_init(r27422);
        mpfr_init(r27423);
        mpfr_init(r27424);
        mpfr_init(r27425);
        mpfr_init(r27426);
        mpfr_init_set_str(r27427, "1", 10, MPFR_RNDN);
        mpfr_init(r27428);
        mpfr_init_set_str(r27429, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27430, "4", 10, MPFR_RNDN);
        mpfr_init(r27431);
        mpfr_init(r27432);
        mpfr_init(r27433);
        mpfr_init(r27434);
        mpfr_init_set_str(r27435, "2", 10, MPFR_RNDN);
        mpfr_init(r27436);
        mpfr_init(r27437);
        mpfr_init(r27438);
        mpfr_init_set_str(r27439, "-1", 10, MPFR_RNDN);
        mpfr_init(r27440);
        mpfr_init(r27441);
        mpfr_init(r27442);
        mpfr_init(r27443);
        mpfr_init(r27444);
        mpfr_init(r27445);
        mpfr_init_set_str(r27446, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27447, "8", 10, MPFR_RNDN);
        mpfr_init(r27448);
        mpfr_init(r27449);
        mpfr_init(r27450);
        mpfr_init(r27451);
        mpfr_init(r27452);
}

double f_dm(double x) {
        mpfr_set_d(r27420, x, MPFR_RNDN);
        mpfr_abs(r27421, r27420, MPFR_RNDN);
        mpfr_mul(r27422, r27421, r27421, MPFR_RNDN);
        mpfr_exp(r27423, r27422, MPFR_RNDN);
        mpfr_const_pi(r27424, MPFR_RNDN);
        mpfr_sqrt(r27425, r27424, MPFR_RNDN);
        mpfr_div(r27426, r27423, r27425, MPFR_RNDN);
        ;
        mpfr_div(r27428, r27427, r27421, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27431, r27429, r27430, MPFR_RNDN);
        mpfr_mul(r27432, r27428, r27431, MPFR_RNDN);
        mpfr_div(r27433, r27428, r27421, MPFR_RNDN);
        mpfr_mul(r27434, r27432, r27433, MPFR_RNDN);
        ;
        mpfr_div(r27436, r27428, r27435, MPFR_RNDN);
        mpfr_fma(r27437, r27433, r27436, r27428, MPFR_RNDN);
        mpfr_fma(r27438, r27434, r27433, r27437, MPFR_RNDN);
        ;
        mpfr_sub(r27440, r27439, r27429, MPFR_RNDN);
        mpfr_pow(r27441, r27421, r27440, MPFR_RNDN);
        mpfr_neg(r27442, r27429, MPFR_RNDN);
        mpfr_pow(r27443, r27421, r27442, MPFR_RNDN);
        mpfr_mul(r27444, r27441, r27443, MPFR_RNDN);
        mpfr_div(r27445, r27427, r27425, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27448, r27446, r27447, MPFR_RNDN);
        mpfr_mul(r27449, r27445, r27448, MPFR_RNDN);
        mpfr_mul(r27450, r27423, r27449, MPFR_RNDN);
        mpfr_mul(r27451, r27444, r27450, MPFR_RNDN);
        mpfr_fma(r27452, r27426, r27438, r27451, MPFR_RNDN);
        return mpfr_get_d(r27452, MPFR_RNDN);
}

