#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 r27210 = 1;
        float r27211 = atan2(1.0, 0.0);
        float r27212 = sqrt(r27211);
        float r27213 = r27210 / r27212;
        float r27214 = x;
        float r27215 = fabs(r27214);
        float r27216 = r27215 * r27215;
        float r27217 = exp(r27216);
        float r27218 = r27213 * r27217;
        float r27219 = r27210 / r27215;
        float r27220 = 2;
        float r27221 = r27210 / r27220;
        float r27222 = r27219 * r27219;
        float r27223 = r27222 * r27219;
        float r27224 = r27221 * r27223;
        float r27225 = r27219 + r27224;
        float r27226 = 3;
        float r27227 = 4;
        float r27228 = r27226 / r27227;
        float r27229 = r27223 * r27219;
        float r27230 = r27229 * r27219;
        float r27231 = r27228 * r27230;
        float r27232 = r27225 + r27231;
        float r27233 = 15;
        float r27234 = 8;
        float r27235 = r27233 / r27234;
        float r27236 = r27230 * r27219;
        float r27237 = r27236 * r27219;
        float r27238 = r27235 * r27237;
        float r27239 = r27232 + r27238;
        float r27240 = r27218 * r27239;
        return r27240;
}

double f_id(double x) {
        double r27241 = 1;
        double r27242 = atan2(1.0, 0.0);
        double r27243 = sqrt(r27242);
        double r27244 = r27241 / r27243;
        double r27245 = x;
        double r27246 = fabs(r27245);
        double r27247 = r27246 * r27246;
        double r27248 = exp(r27247);
        double r27249 = r27244 * r27248;
        double r27250 = r27241 / r27246;
        double r27251 = 2;
        double r27252 = r27241 / r27251;
        double r27253 = r27250 * r27250;
        double r27254 = r27253 * r27250;
        double r27255 = r27252 * r27254;
        double r27256 = r27250 + r27255;
        double r27257 = 3;
        double r27258 = 4;
        double r27259 = r27257 / r27258;
        double r27260 = r27254 * r27250;
        double r27261 = r27260 * r27250;
        double r27262 = r27259 * r27261;
        double r27263 = r27256 + r27262;
        double r27264 = 15;
        double r27265 = 8;
        double r27266 = r27264 / r27265;
        double r27267 = r27261 * r27250;
        double r27268 = r27267 * r27250;
        double r27269 = r27266 * r27268;
        double r27270 = r27263 + r27269;
        double r27271 = r27249 * r27270;
        return r27271;
}


double f_of(float x) {
        float r27272 = x;
        float r27273 = fabs(r27272);
        float r27274 = r27273 * r27273;
        float r27275 = exp(r27274);
        float r27276 = atan2(1.0, 0.0);
        float r27277 = sqrt(r27276);
        float r27278 = r27275 / r27277;
        float r27279 = 3;
        float r27280 = 4;
        float r27281 = r27279 / r27280;
        float r27282 = r27281 / r27273;
        float r27283 = r27282 / r27274;
        float r27284 = cbrt(r27283);
        float r27285 = r27284 * r27284;
        float r27286 = r27285 * r27284;
        float r27287 = 1;
        float r27288 = r27287 / r27273;
        float r27289 = r27288 / r27273;
        float r27290 = 2;
        float r27291 = r27288 / r27290;
        float r27292 = fma(r27289, r27291, r27288);
        float r27293 = fma(r27286, r27289, r27292);
        float r27294 = -1;
        float r27295 = r27294 - r27279;
        float r27296 = pow(r27273, r27295);
        float r27297 = -r27279;
        float r27298 = pow(r27273, r27297);
        float r27299 = r27296 * r27298;
        float r27300 = r27287 / r27277;
        float r27301 = 15;
        float r27302 = 8;
        float r27303 = r27301 / r27302;
        float r27304 = r27300 * r27303;
        float r27305 = r27275 * r27304;
        float r27306 = r27299 * r27305;
        float r27307 = fma(r27278, r27293, r27306);
        return r27307;
}

double f_od(double x) {
        double r27308 = x;
        double r27309 = fabs(r27308);
        double r27310 = r27309 * r27309;
        double r27311 = exp(r27310);
        double r27312 = atan2(1.0, 0.0);
        double r27313 = sqrt(r27312);
        double r27314 = r27311 / r27313;
        double r27315 = 3;
        double r27316 = 4;
        double r27317 = r27315 / r27316;
        double r27318 = r27317 / r27309;
        double r27319 = r27318 / r27310;
        double r27320 = cbrt(r27319);
        double r27321 = r27320 * r27320;
        double r27322 = r27321 * r27320;
        double r27323 = 1;
        double r27324 = r27323 / r27309;
        double r27325 = r27324 / r27309;
        double r27326 = 2;
        double r27327 = r27324 / r27326;
        double r27328 = fma(r27325, r27327, r27324);
        double r27329 = fma(r27322, r27325, r27328);
        double r27330 = -1;
        double r27331 = r27330 - r27315;
        double r27332 = pow(r27309, r27331);
        double r27333 = -r27315;
        double r27334 = pow(r27309, r27333);
        double r27335 = r27332 * r27334;
        double r27336 = r27323 / r27313;
        double r27337 = 15;
        double r27338 = 8;
        double r27339 = r27337 / r27338;
        double r27340 = r27336 * r27339;
        double r27341 = r27311 * r27340;
        double r27342 = r27335 * r27341;
        double r27343 = fma(r27314, r27329, r27342);
        return r27343;
}

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 r27344, r27345, r27346, r27347, r27348, r27349, r27350, r27351, r27352, r27353, r27354, r27355, r27356, r27357, r27358, r27359, r27360, r27361, r27362, r27363, r27364, r27365, r27366, r27367, r27368, r27369, r27370, r27371, r27372, r27373, r27374;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27344, "1", 10, MPFR_RNDN);
        mpfr_init(r27345);
        mpfr_init(r27346);
        mpfr_init(r27347);
        mpfr_init(r27348);
        mpfr_init(r27349);
        mpfr_init(r27350);
        mpfr_init(r27351);
        mpfr_init(r27352);
        mpfr_init(r27353);
        mpfr_init_set_str(r27354, "2", 10, MPFR_RNDN);
        mpfr_init(r27355);
        mpfr_init(r27356);
        mpfr_init(r27357);
        mpfr_init(r27358);
        mpfr_init(r27359);
        mpfr_init_set_str(r27360, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27361, "4", 10, MPFR_RNDN);
        mpfr_init(r27362);
        mpfr_init(r27363);
        mpfr_init(r27364);
        mpfr_init(r27365);
        mpfr_init(r27366);
        mpfr_init_set_str(r27367, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27368, "8", 10, MPFR_RNDN);
        mpfr_init(r27369);
        mpfr_init(r27370);
        mpfr_init(r27371);
        mpfr_init(r27372);
        mpfr_init(r27373);
        mpfr_init(r27374);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27345, MPFR_RNDN);
        mpfr_sqrt(r27346, r27345, MPFR_RNDN);
        mpfr_div(r27347, r27344, r27346, MPFR_RNDN);
        mpfr_set_d(r27348, x, MPFR_RNDN);
        mpfr_abs(r27349, r27348, MPFR_RNDN);
        mpfr_mul(r27350, r27349, r27349, MPFR_RNDN);
        mpfr_exp(r27351, r27350, MPFR_RNDN);
        mpfr_mul(r27352, r27347, r27351, MPFR_RNDN);
        mpfr_div(r27353, r27344, r27349, MPFR_RNDN);
        ;
        mpfr_div(r27355, r27344, r27354, MPFR_RNDN);
        mpfr_mul(r27356, r27353, r27353, MPFR_RNDN);
        mpfr_mul(r27357, r27356, r27353, MPFR_RNDN);
        mpfr_mul(r27358, r27355, r27357, MPFR_RNDN);
        mpfr_add(r27359, r27353, r27358, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27362, r27360, r27361, MPFR_RNDN);
        mpfr_mul(r27363, r27357, r27353, MPFR_RNDN);
        mpfr_mul(r27364, r27363, r27353, MPFR_RNDN);
        mpfr_mul(r27365, r27362, r27364, MPFR_RNDN);
        mpfr_add(r27366, r27359, r27365, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27369, r27367, r27368, MPFR_RNDN);
        mpfr_mul(r27370, r27364, r27353, MPFR_RNDN);
        mpfr_mul(r27371, r27370, r27353, MPFR_RNDN);
        mpfr_mul(r27372, r27369, r27371, MPFR_RNDN);
        mpfr_add(r27373, r27366, r27372, MPFR_RNDN);
        mpfr_mul(r27374, r27352, r27373, MPFR_RNDN);
        return mpfr_get_d(r27374, MPFR_RNDN);
}

static mpfr_t r27375, r27376, r27377, r27378, r27379, r27380, r27381, r27382, r27383, r27384, r27385, r27386, r27387, r27388, r27389, r27390, r27391, r27392, r27393, r27394, r27395, r27396, r27397, r27398, r27399, r27400, r27401, r27402, r27403, r27404, r27405, r27406, r27407, r27408, r27409, r27410;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27375);
        mpfr_init(r27376);
        mpfr_init(r27377);
        mpfr_init(r27378);
        mpfr_init(r27379);
        mpfr_init(r27380);
        mpfr_init(r27381);
        mpfr_init_set_str(r27382, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27383, "4", 10, MPFR_RNDN);
        mpfr_init(r27384);
        mpfr_init(r27385);
        mpfr_init(r27386);
        mpfr_init(r27387);
        mpfr_init(r27388);
        mpfr_init(r27389);
        mpfr_init_set_str(r27390, "1", 10, MPFR_RNDN);
        mpfr_init(r27391);
        mpfr_init(r27392);
        mpfr_init_set_str(r27393, "2", 10, MPFR_RNDN);
        mpfr_init(r27394);
        mpfr_init(r27395);
        mpfr_init(r27396);
        mpfr_init_set_str(r27397, "-1", 10, MPFR_RNDN);
        mpfr_init(r27398);
        mpfr_init(r27399);
        mpfr_init(r27400);
        mpfr_init(r27401);
        mpfr_init(r27402);
        mpfr_init(r27403);
        mpfr_init_set_str(r27404, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27405, "8", 10, MPFR_RNDN);
        mpfr_init(r27406);
        mpfr_init(r27407);
        mpfr_init(r27408);
        mpfr_init(r27409);
        mpfr_init(r27410);
}

double f_fm(double x) {
        mpfr_set_d(r27375, x, MPFR_RNDN);
        mpfr_abs(r27376, r27375, MPFR_RNDN);
        mpfr_mul(r27377, r27376, r27376, MPFR_RNDN);
        mpfr_exp(r27378, r27377, MPFR_RNDN);
        mpfr_const_pi(r27379, MPFR_RNDN);
        mpfr_sqrt(r27380, r27379, MPFR_RNDN);
        mpfr_div(r27381, r27378, r27380, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27384, r27382, r27383, MPFR_RNDN);
        mpfr_div(r27385, r27384, r27376, MPFR_RNDN);
        mpfr_div(r27386, r27385, r27377, MPFR_RNDN);
        mpfr_cbrt(r27387, r27386, MPFR_RNDN);
        mpfr_mul(r27388, r27387, r27387, MPFR_RNDN);
        mpfr_mul(r27389, r27388, r27387, MPFR_RNDN);
        ;
        mpfr_div(r27391, r27390, r27376, MPFR_RNDN);
        mpfr_div(r27392, r27391, r27376, MPFR_RNDN);
        ;
        mpfr_div(r27394, r27391, r27393, MPFR_RNDN);
        mpfr_fma(r27395, r27392, r27394, r27391, MPFR_RNDN);
        mpfr_fma(r27396, r27389, r27392, r27395, MPFR_RNDN);
        ;
        mpfr_sub(r27398, r27397, r27382, MPFR_RNDN);
        mpfr_pow(r27399, r27376, r27398, MPFR_RNDN);
        mpfr_neg(r27400, r27382, MPFR_RNDN);
        mpfr_pow(r27401, r27376, r27400, MPFR_RNDN);
        mpfr_mul(r27402, r27399, r27401, MPFR_RNDN);
        mpfr_div(r27403, r27390, r27380, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27406, r27404, r27405, MPFR_RNDN);
        mpfr_mul(r27407, r27403, r27406, MPFR_RNDN);
        mpfr_mul(r27408, r27378, r27407, MPFR_RNDN);
        mpfr_mul(r27409, r27402, r27408, MPFR_RNDN);
        mpfr_fma(r27410, r27381, r27396, r27409, MPFR_RNDN);
        return mpfr_get_d(r27410, MPFR_RNDN);
}

static mpfr_t r27411, r27412, r27413, r27414, r27415, r27416, r27417, r27418, r27419, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27411);
        mpfr_init(r27412);
        mpfr_init(r27413);
        mpfr_init(r27414);
        mpfr_init(r27415);
        mpfr_init(r27416);
        mpfr_init(r27417);
        mpfr_init_set_str(r27418, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27419, "4", 10, MPFR_RNDN);
        mpfr_init(r27420);
        mpfr_init(r27421);
        mpfr_init(r27422);
        mpfr_init(r27423);
        mpfr_init(r27424);
        mpfr_init(r27425);
        mpfr_init_set_str(r27426, "1", 10, MPFR_RNDN);
        mpfr_init(r27427);
        mpfr_init(r27428);
        mpfr_init_set_str(r27429, "2", 10, MPFR_RNDN);
        mpfr_init(r27430);
        mpfr_init(r27431);
        mpfr_init(r27432);
        mpfr_init_set_str(r27433, "-1", 10, MPFR_RNDN);
        mpfr_init(r27434);
        mpfr_init(r27435);
        mpfr_init(r27436);
        mpfr_init(r27437);
        mpfr_init(r27438);
        mpfr_init(r27439);
        mpfr_init_set_str(r27440, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27441, "8", 10, MPFR_RNDN);
        mpfr_init(r27442);
        mpfr_init(r27443);
        mpfr_init(r27444);
        mpfr_init(r27445);
        mpfr_init(r27446);
}

double f_dm(double x) {
        mpfr_set_d(r27411, x, MPFR_RNDN);
        mpfr_abs(r27412, r27411, MPFR_RNDN);
        mpfr_mul(r27413, r27412, r27412, MPFR_RNDN);
        mpfr_exp(r27414, r27413, MPFR_RNDN);
        mpfr_const_pi(r27415, MPFR_RNDN);
        mpfr_sqrt(r27416, r27415, MPFR_RNDN);
        mpfr_div(r27417, r27414, r27416, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27420, r27418, r27419, MPFR_RNDN);
        mpfr_div(r27421, r27420, r27412, MPFR_RNDN);
        mpfr_div(r27422, r27421, r27413, MPFR_RNDN);
        mpfr_cbrt(r27423, r27422, MPFR_RNDN);
        mpfr_mul(r27424, r27423, r27423, MPFR_RNDN);
        mpfr_mul(r27425, r27424, r27423, MPFR_RNDN);
        ;
        mpfr_div(r27427, r27426, r27412, MPFR_RNDN);
        mpfr_div(r27428, r27427, r27412, MPFR_RNDN);
        ;
        mpfr_div(r27430, r27427, r27429, MPFR_RNDN);
        mpfr_fma(r27431, r27428, r27430, r27427, MPFR_RNDN);
        mpfr_fma(r27432, r27425, r27428, r27431, MPFR_RNDN);
        ;
        mpfr_sub(r27434, r27433, r27418, MPFR_RNDN);
        mpfr_pow(r27435, r27412, r27434, MPFR_RNDN);
        mpfr_neg(r27436, r27418, MPFR_RNDN);
        mpfr_pow(r27437, r27412, r27436, MPFR_RNDN);
        mpfr_mul(r27438, r27435, r27437, MPFR_RNDN);
        mpfr_div(r27439, r27426, r27416, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27442, r27440, r27441, MPFR_RNDN);
        mpfr_mul(r27443, r27439, r27442, MPFR_RNDN);
        mpfr_mul(r27444, r27414, r27443, MPFR_RNDN);
        mpfr_mul(r27445, r27438, r27444, MPFR_RNDN);
        mpfr_fma(r27446, r27417, r27432, r27445, MPFR_RNDN);
        return mpfr_get_d(r27446, MPFR_RNDN);
}

