#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 r56508250 = 1;
        float r56508251 = atan2(1.0, 0.0);
        float r56508252 = sqrt(r56508251);
        float r56508253 = r56508250 / r56508252;
        float r56508254 = 2;
        float r56508255 = x;
        float r56508256 = fabs(r56508255);
        float r56508257 = r56508254 * r56508256;
        float r56508258 = 3;
        float r56508259 = r56508254 / r56508258;
        float r56508260 = r56508256 * r56508256;
        float r56508261 = r56508260 * r56508256;
        float r56508262 = r56508259 * r56508261;
        float r56508263 = r56508257 + r56508262;
        float r56508264 = 5;
        float r56508265 = r56508250 / r56508264;
        float r56508266 = r56508261 * r56508256;
        float r56508267 = r56508266 * r56508256;
        float r56508268 = r56508265 * r56508267;
        float r56508269 = r56508263 + r56508268;
        float r56508270 = 21;
        float r56508271 = r56508250 / r56508270;
        float r56508272 = r56508267 * r56508256;
        float r56508273 = r56508272 * r56508256;
        float r56508274 = r56508271 * r56508273;
        float r56508275 = r56508269 + r56508274;
        float r56508276 = r56508253 * r56508275;
        float r56508277 = fabs(r56508276);
        return r56508277;
}

double f_id(double x) {
        double r56508278 = 1;
        double r56508279 = atan2(1.0, 0.0);
        double r56508280 = sqrt(r56508279);
        double r56508281 = r56508278 / r56508280;
        double r56508282 = 2;
        double r56508283 = x;
        double r56508284 = fabs(r56508283);
        double r56508285 = r56508282 * r56508284;
        double r56508286 = 3;
        double r56508287 = r56508282 / r56508286;
        double r56508288 = r56508284 * r56508284;
        double r56508289 = r56508288 * r56508284;
        double r56508290 = r56508287 * r56508289;
        double r56508291 = r56508285 + r56508290;
        double r56508292 = 5;
        double r56508293 = r56508278 / r56508292;
        double r56508294 = r56508289 * r56508284;
        double r56508295 = r56508294 * r56508284;
        double r56508296 = r56508293 * r56508295;
        double r56508297 = r56508291 + r56508296;
        double r56508298 = 21;
        double r56508299 = r56508278 / r56508298;
        double r56508300 = r56508295 * r56508284;
        double r56508301 = r56508300 * r56508284;
        double r56508302 = r56508299 * r56508301;
        double r56508303 = r56508297 + r56508302;
        double r56508304 = r56508281 * r56508303;
        double r56508305 = fabs(r56508304);
        return r56508305;
}


double f_of(float x) {
        float r56508306 = 1;
        float r56508307 = atan2(1.0, 0.0);
        float r56508308 = sqrt(r56508307);
        float r56508309 = r56508306 / r56508308;
        float r56508310 = 2;
        float r56508311 = x;
        float r56508312 = fabs(r56508311);
        float r56508313 = r56508310 * r56508312;
        float r56508314 = 3;
        float r56508315 = r56508310 / r56508314;
        float r56508316 = r56508312 * r56508312;
        float r56508317 = r56508316 * r56508312;
        float r56508318 = r56508315 * r56508317;
        float r56508319 = r56508313 + r56508318;
        float r56508320 = 5;
        float r56508321 = r56508306 / r56508320;
        float r56508322 = r56508317 * r56508312;
        float r56508323 = r56508322 * r56508312;
        float r56508324 = r56508321 * r56508323;
        float r56508325 = r56508319 + r56508324;
        float r56508326 = 21;
        float r56508327 = r56508306 / r56508326;
        float r56508328 = pow(r56508312, r56508314);
        float r56508329 = sqrt(r56508328);
        float r56508330 = r56508329 * r56508329;
        float r56508331 = r56508330 * r56508312;
        float r56508332 = r56508331 * r56508312;
        float r56508333 = r56508332 * r56508312;
        float r56508334 = r56508333 * r56508312;
        float r56508335 = r56508327 * r56508334;
        float r56508336 = r56508325 + r56508335;
        float r56508337 = r56508309 * r56508336;
        float r56508338 = fabs(r56508337);
        return r56508338;
}

double f_od(double x) {
        double r56508339 = 1;
        double r56508340 = atan2(1.0, 0.0);
        double r56508341 = sqrt(r56508340);
        double r56508342 = r56508339 / r56508341;
        double r56508343 = 2;
        double r56508344 = x;
        double r56508345 = fabs(r56508344);
        double r56508346 = r56508343 * r56508345;
        double r56508347 = 3;
        double r56508348 = r56508343 / r56508347;
        double r56508349 = r56508345 * r56508345;
        double r56508350 = r56508349 * r56508345;
        double r56508351 = r56508348 * r56508350;
        double r56508352 = r56508346 + r56508351;
        double r56508353 = 5;
        double r56508354 = r56508339 / r56508353;
        double r56508355 = r56508350 * r56508345;
        double r56508356 = r56508355 * r56508345;
        double r56508357 = r56508354 * r56508356;
        double r56508358 = r56508352 + r56508357;
        double r56508359 = 21;
        double r56508360 = r56508339 / r56508359;
        double r56508361 = pow(r56508345, r56508347);
        double r56508362 = sqrt(r56508361);
        double r56508363 = r56508362 * r56508362;
        double r56508364 = r56508363 * r56508345;
        double r56508365 = r56508364 * r56508345;
        double r56508366 = r56508365 * r56508345;
        double r56508367 = r56508366 * r56508345;
        double r56508368 = r56508360 * r56508367;
        double r56508369 = r56508358 + r56508368;
        double r56508370 = r56508342 * r56508369;
        double r56508371 = fabs(r56508370);
        return r56508371;
}

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 r56508372, r56508373, r56508374, r56508375, r56508376, r56508377, r56508378, r56508379, r56508380, r56508381, r56508382, r56508383, r56508384, r56508385, r56508386, r56508387, r56508388, r56508389, r56508390, r56508391, r56508392, r56508393, r56508394, r56508395, r56508396, r56508397, r56508398, r56508399;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r56508372, "1", 10, MPFR_RNDN);
        mpfr_init(r56508373);
        mpfr_init(r56508374);
        mpfr_init(r56508375);
        mpfr_init_set_str(r56508376, "2", 10, MPFR_RNDN);
        mpfr_init(r56508377);
        mpfr_init(r56508378);
        mpfr_init(r56508379);
        mpfr_init_set_str(r56508380, "3", 10, MPFR_RNDN);
        mpfr_init(r56508381);
        mpfr_init(r56508382);
        mpfr_init(r56508383);
        mpfr_init(r56508384);
        mpfr_init(r56508385);
        mpfr_init_set_str(r56508386, "5", 10, MPFR_RNDN);
        mpfr_init(r56508387);
        mpfr_init(r56508388);
        mpfr_init(r56508389);
        mpfr_init(r56508390);
        mpfr_init(r56508391);
        mpfr_init_set_str(r56508392, "21", 10, MPFR_RNDN);
        mpfr_init(r56508393);
        mpfr_init(r56508394);
        mpfr_init(r56508395);
        mpfr_init(r56508396);
        mpfr_init(r56508397);
        mpfr_init(r56508398);
        mpfr_init(r56508399);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r56508373, MPFR_RNDN);
        mpfr_sqrt(r56508374, r56508373, MPFR_RNDN);
        mpfr_div(r56508375, r56508372, r56508374, MPFR_RNDN);
        ;
        mpfr_set_d(r56508377, x, MPFR_RNDN);
        mpfr_abs(r56508378, r56508377, MPFR_RNDN);
        mpfr_mul(r56508379, r56508376, r56508378, MPFR_RNDN);
        ;
        mpfr_div(r56508381, r56508376, r56508380, MPFR_RNDN);
        mpfr_mul(r56508382, r56508378, r56508378, MPFR_RNDN);
        mpfr_mul(r56508383, r56508382, r56508378, MPFR_RNDN);
        mpfr_mul(r56508384, r56508381, r56508383, MPFR_RNDN);
        mpfr_add(r56508385, r56508379, r56508384, MPFR_RNDN);
        ;
        mpfr_div(r56508387, r56508372, r56508386, MPFR_RNDN);
        mpfr_mul(r56508388, r56508383, r56508378, MPFR_RNDN);
        mpfr_mul(r56508389, r56508388, r56508378, MPFR_RNDN);
        mpfr_mul(r56508390, r56508387, r56508389, MPFR_RNDN);
        mpfr_add(r56508391, r56508385, r56508390, MPFR_RNDN);
        ;
        mpfr_div(r56508393, r56508372, r56508392, MPFR_RNDN);
        mpfr_mul(r56508394, r56508389, r56508378, MPFR_RNDN);
        mpfr_mul(r56508395, r56508394, r56508378, MPFR_RNDN);
        mpfr_mul(r56508396, r56508393, r56508395, MPFR_RNDN);
        mpfr_add(r56508397, r56508391, r56508396, MPFR_RNDN);
        mpfr_mul(r56508398, r56508375, r56508397, MPFR_RNDN);
        mpfr_abs(r56508399, r56508398, MPFR_RNDN);
        return mpfr_get_d(r56508399, MPFR_RNDN);
}

static mpfr_t r56508400, r56508401, r56508402, r56508403, r56508404, r56508405, r56508406, r56508407, r56508408, r56508409, r56508410, r56508411, r56508412, r56508413, r56508414, r56508415, r56508416, r56508417, r56508418, r56508419, r56508420, r56508421, r56508422, r56508423, r56508424, r56508425, r56508426, r56508427, r56508428, r56508429, r56508430, r56508431, r56508432;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r56508400, "1", 10, MPFR_RNDN);
        mpfr_init(r56508401);
        mpfr_init(r56508402);
        mpfr_init(r56508403);
        mpfr_init_set_str(r56508404, "2", 10, MPFR_RNDN);
        mpfr_init(r56508405);
        mpfr_init(r56508406);
        mpfr_init(r56508407);
        mpfr_init_set_str(r56508408, "3", 10, MPFR_RNDN);
        mpfr_init(r56508409);
        mpfr_init(r56508410);
        mpfr_init(r56508411);
        mpfr_init(r56508412);
        mpfr_init(r56508413);
        mpfr_init_set_str(r56508414, "5", 10, MPFR_RNDN);
        mpfr_init(r56508415);
        mpfr_init(r56508416);
        mpfr_init(r56508417);
        mpfr_init(r56508418);
        mpfr_init(r56508419);
        mpfr_init_set_str(r56508420, "21", 10, MPFR_RNDN);
        mpfr_init(r56508421);
        mpfr_init(r56508422);
        mpfr_init(r56508423);
        mpfr_init(r56508424);
        mpfr_init(r56508425);
        mpfr_init(r56508426);
        mpfr_init(r56508427);
        mpfr_init(r56508428);
        mpfr_init(r56508429);
        mpfr_init(r56508430);
        mpfr_init(r56508431);
        mpfr_init(r56508432);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r56508401, MPFR_RNDN);
        mpfr_sqrt(r56508402, r56508401, MPFR_RNDN);
        mpfr_div(r56508403, r56508400, r56508402, MPFR_RNDN);
        ;
        mpfr_set_d(r56508405, x, MPFR_RNDN);
        mpfr_abs(r56508406, r56508405, MPFR_RNDN);
        mpfr_mul(r56508407, r56508404, r56508406, MPFR_RNDN);
        ;
        mpfr_div(r56508409, r56508404, r56508408, MPFR_RNDN);
        mpfr_mul(r56508410, r56508406, r56508406, MPFR_RNDN);
        mpfr_mul(r56508411, r56508410, r56508406, MPFR_RNDN);
        mpfr_mul(r56508412, r56508409, r56508411, MPFR_RNDN);
        mpfr_add(r56508413, r56508407, r56508412, MPFR_RNDN);
        ;
        mpfr_div(r56508415, r56508400, r56508414, MPFR_RNDN);
        mpfr_mul(r56508416, r56508411, r56508406, MPFR_RNDN);
        mpfr_mul(r56508417, r56508416, r56508406, MPFR_RNDN);
        mpfr_mul(r56508418, r56508415, r56508417, MPFR_RNDN);
        mpfr_add(r56508419, r56508413, r56508418, MPFR_RNDN);
        ;
        mpfr_div(r56508421, r56508400, r56508420, MPFR_RNDN);
        mpfr_pow(r56508422, r56508406, r56508408, MPFR_RNDN);
        mpfr_sqrt(r56508423, r56508422, MPFR_RNDN);
        mpfr_mul(r56508424, r56508423, r56508423, MPFR_RNDN);
        mpfr_mul(r56508425, r56508424, r56508406, MPFR_RNDN);
        mpfr_mul(r56508426, r56508425, r56508406, MPFR_RNDN);
        mpfr_mul(r56508427, r56508426, r56508406, MPFR_RNDN);
        mpfr_mul(r56508428, r56508427, r56508406, MPFR_RNDN);
        mpfr_mul(r56508429, r56508421, r56508428, MPFR_RNDN);
        mpfr_add(r56508430, r56508419, r56508429, MPFR_RNDN);
        mpfr_mul(r56508431, r56508403, r56508430, MPFR_RNDN);
        mpfr_abs(r56508432, r56508431, MPFR_RNDN);
        return mpfr_get_d(r56508432, MPFR_RNDN);
}

static mpfr_t r56508433, r56508434, r56508435, r56508436, r56508437, r56508438, r56508439, r56508440, r56508441, r56508442, r56508443, r56508444, r56508445, r56508446, r56508447, r56508448, r56508449, r56508450, r56508451, r56508452, r56508453, r56508454, r56508455, r56508456, r56508457, r56508458, r56508459, r56508460, r56508461, r56508462, r56508463, r56508464, r56508465;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r56508433, "1", 10, MPFR_RNDN);
        mpfr_init(r56508434);
        mpfr_init(r56508435);
        mpfr_init(r56508436);
        mpfr_init_set_str(r56508437, "2", 10, MPFR_RNDN);
        mpfr_init(r56508438);
        mpfr_init(r56508439);
        mpfr_init(r56508440);
        mpfr_init_set_str(r56508441, "3", 10, MPFR_RNDN);
        mpfr_init(r56508442);
        mpfr_init(r56508443);
        mpfr_init(r56508444);
        mpfr_init(r56508445);
        mpfr_init(r56508446);
        mpfr_init_set_str(r56508447, "5", 10, MPFR_RNDN);
        mpfr_init(r56508448);
        mpfr_init(r56508449);
        mpfr_init(r56508450);
        mpfr_init(r56508451);
        mpfr_init(r56508452);
        mpfr_init_set_str(r56508453, "21", 10, MPFR_RNDN);
        mpfr_init(r56508454);
        mpfr_init(r56508455);
        mpfr_init(r56508456);
        mpfr_init(r56508457);
        mpfr_init(r56508458);
        mpfr_init(r56508459);
        mpfr_init(r56508460);
        mpfr_init(r56508461);
        mpfr_init(r56508462);
        mpfr_init(r56508463);
        mpfr_init(r56508464);
        mpfr_init(r56508465);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r56508434, MPFR_RNDN);
        mpfr_sqrt(r56508435, r56508434, MPFR_RNDN);
        mpfr_div(r56508436, r56508433, r56508435, MPFR_RNDN);
        ;
        mpfr_set_d(r56508438, x, MPFR_RNDN);
        mpfr_abs(r56508439, r56508438, MPFR_RNDN);
        mpfr_mul(r56508440, r56508437, r56508439, MPFR_RNDN);
        ;
        mpfr_div(r56508442, r56508437, r56508441, MPFR_RNDN);
        mpfr_mul(r56508443, r56508439, r56508439, MPFR_RNDN);
        mpfr_mul(r56508444, r56508443, r56508439, MPFR_RNDN);
        mpfr_mul(r56508445, r56508442, r56508444, MPFR_RNDN);
        mpfr_add(r56508446, r56508440, r56508445, MPFR_RNDN);
        ;
        mpfr_div(r56508448, r56508433, r56508447, MPFR_RNDN);
        mpfr_mul(r56508449, r56508444, r56508439, MPFR_RNDN);
        mpfr_mul(r56508450, r56508449, r56508439, MPFR_RNDN);
        mpfr_mul(r56508451, r56508448, r56508450, MPFR_RNDN);
        mpfr_add(r56508452, r56508446, r56508451, MPFR_RNDN);
        ;
        mpfr_div(r56508454, r56508433, r56508453, MPFR_RNDN);
        mpfr_pow(r56508455, r56508439, r56508441, MPFR_RNDN);
        mpfr_sqrt(r56508456, r56508455, MPFR_RNDN);
        mpfr_mul(r56508457, r56508456, r56508456, MPFR_RNDN);
        mpfr_mul(r56508458, r56508457, r56508439, MPFR_RNDN);
        mpfr_mul(r56508459, r56508458, r56508439, MPFR_RNDN);
        mpfr_mul(r56508460, r56508459, r56508439, MPFR_RNDN);
        mpfr_mul(r56508461, r56508460, r56508439, MPFR_RNDN);
        mpfr_mul(r56508462, r56508454, r56508461, MPFR_RNDN);
        mpfr_add(r56508463, r56508452, r56508462, MPFR_RNDN);
        mpfr_mul(r56508464, r56508436, r56508463, MPFR_RNDN);
        mpfr_abs(r56508465, r56508464, MPFR_RNDN);
        return mpfr_get_d(r56508465, MPFR_RNDN);
}

