#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 r11161 = 1;
        float r11162 = atan2(1.0, 0.0);
        float r11163 = sqrt(r11162);
        float r11164 = r11161 / r11163;
        float r11165 = x;
        float r11166 = fabs(r11165);
        float r11167 = r11166 * r11166;
        float r11168 = exp(r11167);
        float r11169 = r11164 * r11168;
        float r11170 = r11161 / r11166;
        float r11171 = 2;
        float r11172 = r11161 / r11171;
        float r11173 = r11170 * r11170;
        float r11174 = r11173 * r11170;
        float r11175 = r11172 * r11174;
        float r11176 = r11170 + r11175;
        float r11177 = 3;
        float r11178 = 4;
        float r11179 = r11177 / r11178;
        float r11180 = r11174 * r11170;
        float r11181 = r11180 * r11170;
        float r11182 = r11179 * r11181;
        float r11183 = r11176 + r11182;
        float r11184 = 15;
        float r11185 = 8;
        float r11186 = r11184 / r11185;
        float r11187 = r11181 * r11170;
        float r11188 = r11187 * r11170;
        float r11189 = r11186 * r11188;
        float r11190 = r11183 + r11189;
        float r11191 = r11169 * r11190;
        return r11191;
}

double f_id(double x) {
        double r11192 = 1;
        double r11193 = atan2(1.0, 0.0);
        double r11194 = sqrt(r11193);
        double r11195 = r11192 / r11194;
        double r11196 = x;
        double r11197 = fabs(r11196);
        double r11198 = r11197 * r11197;
        double r11199 = exp(r11198);
        double r11200 = r11195 * r11199;
        double r11201 = r11192 / r11197;
        double r11202 = 2;
        double r11203 = r11192 / r11202;
        double r11204 = r11201 * r11201;
        double r11205 = r11204 * r11201;
        double r11206 = r11203 * r11205;
        double r11207 = r11201 + r11206;
        double r11208 = 3;
        double r11209 = 4;
        double r11210 = r11208 / r11209;
        double r11211 = r11205 * r11201;
        double r11212 = r11211 * r11201;
        double r11213 = r11210 * r11212;
        double r11214 = r11207 + r11213;
        double r11215 = 15;
        double r11216 = 8;
        double r11217 = r11215 / r11216;
        double r11218 = r11212 * r11201;
        double r11219 = r11218 * r11201;
        double r11220 = r11217 * r11219;
        double r11221 = r11214 + r11220;
        double r11222 = r11200 * r11221;
        return r11222;
}


double f_of(float x) {
        float r11223 = x;
        float r11224 = fabs(r11223);
        float r11225 = r11224 * r11224;
        float r11226 = exp(r11225);
        float r11227 = atan2(1.0, 0.0);
        float r11228 = sqrt(r11227);
        float r11229 = r11226 / r11228;
        float r11230 = 1;
        float r11231 = r11230 / r11224;
        float r11232 = 3;
        float r11233 = 4;
        float r11234 = r11232 / r11233;
        float r11235 = r11231 * r11234;
        float r11236 = r11231 * r11231;
        float r11237 = r11235 * r11236;
        float r11238 = 2;
        float r11239 = r11231 / r11238;
        float r11240 = fma(r11236, r11239, r11231);
        float r11241 = fma(r11237, r11236, r11240);
        float r11242 = r11230 / r11228;
        float r11243 = 15;
        float r11244 = 8;
        float r11245 = r11243 / r11244;
        float r11246 = r11242 * r11245;
        float r11247 = r11226 * r11246;
        float r11248 = pow(r11224, r11232);
        float r11249 = r11230 / r11248;
        float r11250 = -1;
        float r11251 = r11250 - r11232;
        float r11252 = pow(r11224, r11251);
        float r11253 = r11249 * r11252;
        float r11254 = r11247 * r11253;
        float r11255 = fma(r11229, r11241, r11254);
        return r11255;
}

double f_od(double x) {
        double r11256 = x;
        double r11257 = fabs(r11256);
        double r11258 = r11257 * r11257;
        double r11259 = exp(r11258);
        double r11260 = atan2(1.0, 0.0);
        double r11261 = sqrt(r11260);
        double r11262 = r11259 / r11261;
        double r11263 = 1;
        double r11264 = r11263 / r11257;
        double r11265 = 3;
        double r11266 = 4;
        double r11267 = r11265 / r11266;
        double r11268 = r11264 * r11267;
        double r11269 = r11264 * r11264;
        double r11270 = r11268 * r11269;
        double r11271 = 2;
        double r11272 = r11264 / r11271;
        double r11273 = fma(r11269, r11272, r11264);
        double r11274 = fma(r11270, r11269, r11273);
        double r11275 = r11263 / r11261;
        double r11276 = 15;
        double r11277 = 8;
        double r11278 = r11276 / r11277;
        double r11279 = r11275 * r11278;
        double r11280 = r11259 * r11279;
        double r11281 = pow(r11257, r11265);
        double r11282 = r11263 / r11281;
        double r11283 = -1;
        double r11284 = r11283 - r11265;
        double r11285 = pow(r11257, r11284);
        double r11286 = r11282 * r11285;
        double r11287 = r11280 * r11286;
        double r11288 = fma(r11262, r11274, r11287);
        return r11288;
}

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 r11289, r11290, r11291, r11292, r11293, r11294, r11295, r11296, r11297, r11298, r11299, r11300, r11301, r11302, r11303, r11304, r11305, r11306, r11307, r11308, r11309, r11310, r11311, r11312, r11313, r11314, r11315, r11316, r11317, r11318, r11319;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11289, "1", 10, MPFR_RNDN);
        mpfr_init(r11290);
        mpfr_init(r11291);
        mpfr_init(r11292);
        mpfr_init(r11293);
        mpfr_init(r11294);
        mpfr_init(r11295);
        mpfr_init(r11296);
        mpfr_init(r11297);
        mpfr_init(r11298);
        mpfr_init_set_str(r11299, "2", 10, MPFR_RNDN);
        mpfr_init(r11300);
        mpfr_init(r11301);
        mpfr_init(r11302);
        mpfr_init(r11303);
        mpfr_init(r11304);
        mpfr_init_set_str(r11305, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11306, "4", 10, MPFR_RNDN);
        mpfr_init(r11307);
        mpfr_init(r11308);
        mpfr_init(r11309);
        mpfr_init(r11310);
        mpfr_init(r11311);
        mpfr_init_set_str(r11312, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11313, "8", 10, MPFR_RNDN);
        mpfr_init(r11314);
        mpfr_init(r11315);
        mpfr_init(r11316);
        mpfr_init(r11317);
        mpfr_init(r11318);
        mpfr_init(r11319);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r11290, MPFR_RNDN);
        mpfr_sqrt(r11291, r11290, MPFR_RNDN);
        mpfr_div(r11292, r11289, r11291, MPFR_RNDN);
        mpfr_set_d(r11293, x, MPFR_RNDN);
        mpfr_abs(r11294, r11293, MPFR_RNDN);
        mpfr_mul(r11295, r11294, r11294, MPFR_RNDN);
        mpfr_exp(r11296, r11295, MPFR_RNDN);
        mpfr_mul(r11297, r11292, r11296, MPFR_RNDN);
        mpfr_div(r11298, r11289, r11294, MPFR_RNDN);
        ;
        mpfr_div(r11300, r11289, r11299, MPFR_RNDN);
        mpfr_mul(r11301, r11298, r11298, MPFR_RNDN);
        mpfr_mul(r11302, r11301, r11298, MPFR_RNDN);
        mpfr_mul(r11303, r11300, r11302, MPFR_RNDN);
        mpfr_add(r11304, r11298, r11303, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11307, r11305, r11306, MPFR_RNDN);
        mpfr_mul(r11308, r11302, r11298, MPFR_RNDN);
        mpfr_mul(r11309, r11308, r11298, MPFR_RNDN);
        mpfr_mul(r11310, r11307, r11309, MPFR_RNDN);
        mpfr_add(r11311, r11304, r11310, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11314, r11312, r11313, MPFR_RNDN);
        mpfr_mul(r11315, r11309, r11298, MPFR_RNDN);
        mpfr_mul(r11316, r11315, r11298, MPFR_RNDN);
        mpfr_mul(r11317, r11314, r11316, MPFR_RNDN);
        mpfr_add(r11318, r11311, r11317, MPFR_RNDN);
        mpfr_mul(r11319, r11297, r11318, MPFR_RNDN);
        return mpfr_get_d(r11319, MPFR_RNDN);
}

static mpfr_t r11320, r11321, r11322, r11323, r11324, r11325, r11326, r11327, r11328, r11329, r11330, r11331, r11332, r11333, r11334, r11335, r11336, r11337, r11338, r11339, r11340, r11341, r11342, r11343, r11344, r11345, r11346, r11347, r11348, r11349, r11350, r11351, r11352;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11320);
        mpfr_init(r11321);
        mpfr_init(r11322);
        mpfr_init(r11323);
        mpfr_init(r11324);
        mpfr_init(r11325);
        mpfr_init(r11326);
        mpfr_init_set_str(r11327, "1", 10, MPFR_RNDN);
        mpfr_init(r11328);
        mpfr_init_set_str(r11329, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11330, "4", 10, MPFR_RNDN);
        mpfr_init(r11331);
        mpfr_init(r11332);
        mpfr_init(r11333);
        mpfr_init(r11334);
        mpfr_init_set_str(r11335, "2", 10, MPFR_RNDN);
        mpfr_init(r11336);
        mpfr_init(r11337);
        mpfr_init(r11338);
        mpfr_init(r11339);
        mpfr_init_set_str(r11340, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11341, "8", 10, MPFR_RNDN);
        mpfr_init(r11342);
        mpfr_init(r11343);
        mpfr_init(r11344);
        mpfr_init(r11345);
        mpfr_init(r11346);
        mpfr_init_set_str(r11347, "-1", 10, MPFR_RNDN);
        mpfr_init(r11348);
        mpfr_init(r11349);
        mpfr_init(r11350);
        mpfr_init(r11351);
        mpfr_init(r11352);
}

double f_fm(double x) {
        mpfr_set_d(r11320, x, MPFR_RNDN);
        mpfr_abs(r11321, r11320, MPFR_RNDN);
        mpfr_mul(r11322, r11321, r11321, MPFR_RNDN);
        mpfr_exp(r11323, r11322, MPFR_RNDN);
        mpfr_const_pi(r11324, MPFR_RNDN);
        mpfr_sqrt(r11325, r11324, MPFR_RNDN);
        mpfr_div(r11326, r11323, r11325, MPFR_RNDN);
        ;
        mpfr_div(r11328, r11327, r11321, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11331, r11329, r11330, MPFR_RNDN);
        mpfr_mul(r11332, r11328, r11331, MPFR_RNDN);
        mpfr_mul(r11333, r11328, r11328, MPFR_RNDN);
        mpfr_mul(r11334, r11332, r11333, MPFR_RNDN);
        ;
        mpfr_div(r11336, r11328, r11335, MPFR_RNDN);
        mpfr_fma(r11337, r11333, r11336, r11328, MPFR_RNDN);
        mpfr_fma(r11338, r11334, r11333, r11337, MPFR_RNDN);
        mpfr_div(r11339, r11327, r11325, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11342, r11340, r11341, MPFR_RNDN);
        mpfr_mul(r11343, r11339, r11342, MPFR_RNDN);
        mpfr_mul(r11344, r11323, r11343, MPFR_RNDN);
        mpfr_pow(r11345, r11321, r11329, MPFR_RNDN);
        mpfr_div(r11346, r11327, r11345, MPFR_RNDN);
        ;
        mpfr_sub(r11348, r11347, r11329, MPFR_RNDN);
        mpfr_pow(r11349, r11321, r11348, MPFR_RNDN);
        mpfr_mul(r11350, r11346, r11349, MPFR_RNDN);
        mpfr_mul(r11351, r11344, r11350, MPFR_RNDN);
        mpfr_fma(r11352, r11326, r11338, r11351, MPFR_RNDN);
        return mpfr_get_d(r11352, MPFR_RNDN);
}

static mpfr_t r11353, r11354, r11355, r11356, r11357, r11358, r11359, r11360, r11361, r11362, r11363, r11364, r11365, r11366, r11367, r11368, r11369, r11370, r11371, r11372, r11373, r11374, r11375, r11376, r11377, r11378, r11379, r11380, r11381, r11382, r11383, r11384, r11385;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11353);
        mpfr_init(r11354);
        mpfr_init(r11355);
        mpfr_init(r11356);
        mpfr_init(r11357);
        mpfr_init(r11358);
        mpfr_init(r11359);
        mpfr_init_set_str(r11360, "1", 10, MPFR_RNDN);
        mpfr_init(r11361);
        mpfr_init_set_str(r11362, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11363, "4", 10, MPFR_RNDN);
        mpfr_init(r11364);
        mpfr_init(r11365);
        mpfr_init(r11366);
        mpfr_init(r11367);
        mpfr_init_set_str(r11368, "2", 10, MPFR_RNDN);
        mpfr_init(r11369);
        mpfr_init(r11370);
        mpfr_init(r11371);
        mpfr_init(r11372);
        mpfr_init_set_str(r11373, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11374, "8", 10, MPFR_RNDN);
        mpfr_init(r11375);
        mpfr_init(r11376);
        mpfr_init(r11377);
        mpfr_init(r11378);
        mpfr_init(r11379);
        mpfr_init_set_str(r11380, "-1", 10, MPFR_RNDN);
        mpfr_init(r11381);
        mpfr_init(r11382);
        mpfr_init(r11383);
        mpfr_init(r11384);
        mpfr_init(r11385);
}

double f_dm(double x) {
        mpfr_set_d(r11353, x, MPFR_RNDN);
        mpfr_abs(r11354, r11353, MPFR_RNDN);
        mpfr_mul(r11355, r11354, r11354, MPFR_RNDN);
        mpfr_exp(r11356, r11355, MPFR_RNDN);
        mpfr_const_pi(r11357, MPFR_RNDN);
        mpfr_sqrt(r11358, r11357, MPFR_RNDN);
        mpfr_div(r11359, r11356, r11358, MPFR_RNDN);
        ;
        mpfr_div(r11361, r11360, r11354, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11364, r11362, r11363, MPFR_RNDN);
        mpfr_mul(r11365, r11361, r11364, MPFR_RNDN);
        mpfr_mul(r11366, r11361, r11361, MPFR_RNDN);
        mpfr_mul(r11367, r11365, r11366, MPFR_RNDN);
        ;
        mpfr_div(r11369, r11361, r11368, MPFR_RNDN);
        mpfr_fma(r11370, r11366, r11369, r11361, MPFR_RNDN);
        mpfr_fma(r11371, r11367, r11366, r11370, MPFR_RNDN);
        mpfr_div(r11372, r11360, r11358, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11375, r11373, r11374, MPFR_RNDN);
        mpfr_mul(r11376, r11372, r11375, MPFR_RNDN);
        mpfr_mul(r11377, r11356, r11376, MPFR_RNDN);
        mpfr_pow(r11378, r11354, r11362, MPFR_RNDN);
        mpfr_div(r11379, r11360, r11378, MPFR_RNDN);
        ;
        mpfr_sub(r11381, r11380, r11362, MPFR_RNDN);
        mpfr_pow(r11382, r11354, r11381, MPFR_RNDN);
        mpfr_mul(r11383, r11379, r11382, MPFR_RNDN);
        mpfr_mul(r11384, r11377, r11383, MPFR_RNDN);
        mpfr_fma(r11385, r11359, r11371, r11384, MPFR_RNDN);
        return mpfr_get_d(r11385, MPFR_RNDN);
}

