#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 r31164 = 1;
        float r31165 = atan2(1.0, 0.0);
        float r31166 = sqrt(r31165);
        float r31167 = r31164 / r31166;
        float r31168 = x;
        float r31169 = fabs(r31168);
        float r31170 = r31169 * r31169;
        float r31171 = exp(r31170);
        float r31172 = r31167 * r31171;
        float r31173 = r31164 / r31169;
        float r31174 = 2;
        float r31175 = r31164 / r31174;
        float r31176 = r31173 * r31173;
        float r31177 = r31176 * r31173;
        float r31178 = r31175 * r31177;
        float r31179 = r31173 + r31178;
        float r31180 = 3;
        float r31181 = 4;
        float r31182 = r31180 / r31181;
        float r31183 = r31177 * r31173;
        float r31184 = r31183 * r31173;
        float r31185 = r31182 * r31184;
        float r31186 = r31179 + r31185;
        float r31187 = 15;
        float r31188 = 8;
        float r31189 = r31187 / r31188;
        float r31190 = r31184 * r31173;
        float r31191 = r31190 * r31173;
        float r31192 = r31189 * r31191;
        float r31193 = r31186 + r31192;
        float r31194 = r31172 * r31193;
        return r31194;
}

double f_id(double x) {
        double r31195 = 1;
        double r31196 = atan2(1.0, 0.0);
        double r31197 = sqrt(r31196);
        double r31198 = r31195 / r31197;
        double r31199 = x;
        double r31200 = fabs(r31199);
        double r31201 = r31200 * r31200;
        double r31202 = exp(r31201);
        double r31203 = r31198 * r31202;
        double r31204 = r31195 / r31200;
        double r31205 = 2;
        double r31206 = r31195 / r31205;
        double r31207 = r31204 * r31204;
        double r31208 = r31207 * r31204;
        double r31209 = r31206 * r31208;
        double r31210 = r31204 + r31209;
        double r31211 = 3;
        double r31212 = 4;
        double r31213 = r31211 / r31212;
        double r31214 = r31208 * r31204;
        double r31215 = r31214 * r31204;
        double r31216 = r31213 * r31215;
        double r31217 = r31210 + r31216;
        double r31218 = 15;
        double r31219 = 8;
        double r31220 = r31218 / r31219;
        double r31221 = r31215 * r31204;
        double r31222 = r31221 * r31204;
        double r31223 = r31220 * r31222;
        double r31224 = r31217 + r31223;
        double r31225 = r31203 * r31224;
        return r31225;
}


double f_of(float x) {
        float r31226 = x;
        float r31227 = fabs(r31226);
        float r31228 = r31227 * r31227;
        float r31229 = exp(r31228);
        float r31230 = atan2(1.0, 0.0);
        float r31231 = sqrt(r31230);
        float r31232 = r31229 / r31231;
        float r31233 = 3;
        float r31234 = 4;
        float r31235 = r31233 / r31234;
        float r31236 = r31235 / r31227;
        float r31237 = r31236 / r31228;
        float r31238 = r31237 / r31228;
        float r31239 = 15;
        float r31240 = 8;
        float r31241 = r31239 / r31240;
        float r31242 = r31241 / r31227;
        float r31243 = pow(r31227, r31233);
        float r31244 = r31243 * r31243;
        float r31245 = r31242 / r31244;
        float r31246 = 1;
        float r31247 = r31246 / r31227;
        float r31248 = 2;
        float r31249 = r31246 / r31248;
        float r31250 = r31249 / r31227;
        float r31251 = r31250 / r31228;
        float r31252 = r31247 + r31251;
        float r31253 = r31245 + r31252;
        float r31254 = r31238 + r31253;
        float r31255 = r31232 * r31254;
        return r31255;
}

double f_od(double x) {
        double r31256 = x;
        double r31257 = fabs(r31256);
        double r31258 = r31257 * r31257;
        double r31259 = exp(r31258);
        double r31260 = atan2(1.0, 0.0);
        double r31261 = sqrt(r31260);
        double r31262 = r31259 / r31261;
        double r31263 = 3;
        double r31264 = 4;
        double r31265 = r31263 / r31264;
        double r31266 = r31265 / r31257;
        double r31267 = r31266 / r31258;
        double r31268 = r31267 / r31258;
        double r31269 = 15;
        double r31270 = 8;
        double r31271 = r31269 / r31270;
        double r31272 = r31271 / r31257;
        double r31273 = pow(r31257, r31263);
        double r31274 = r31273 * r31273;
        double r31275 = r31272 / r31274;
        double r31276 = 1;
        double r31277 = r31276 / r31257;
        double r31278 = 2;
        double r31279 = r31276 / r31278;
        double r31280 = r31279 / r31257;
        double r31281 = r31280 / r31258;
        double r31282 = r31277 + r31281;
        double r31283 = r31275 + r31282;
        double r31284 = r31268 + r31283;
        double r31285 = r31262 * r31284;
        return r31285;
}

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 r31286, r31287, r31288, r31289, r31290, r31291, r31292, r31293, r31294, r31295, r31296, r31297, r31298, r31299, r31300, r31301, r31302, r31303, r31304, r31305, r31306, r31307, r31308, r31309, r31310, r31311, r31312, r31313, r31314, r31315, r31316;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31286, "1", 10, MPFR_RNDN);
        mpfr_init(r31287);
        mpfr_init(r31288);
        mpfr_init(r31289);
        mpfr_init(r31290);
        mpfr_init(r31291);
        mpfr_init(r31292);
        mpfr_init(r31293);
        mpfr_init(r31294);
        mpfr_init(r31295);
        mpfr_init_set_str(r31296, "2", 10, MPFR_RNDN);
        mpfr_init(r31297);
        mpfr_init(r31298);
        mpfr_init(r31299);
        mpfr_init(r31300);
        mpfr_init(r31301);
        mpfr_init_set_str(r31302, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r31303, "4", 10, MPFR_RNDN);
        mpfr_init(r31304);
        mpfr_init(r31305);
        mpfr_init(r31306);
        mpfr_init(r31307);
        mpfr_init(r31308);
        mpfr_init_set_str(r31309, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31310, "8", 10, MPFR_RNDN);
        mpfr_init(r31311);
        mpfr_init(r31312);
        mpfr_init(r31313);
        mpfr_init(r31314);
        mpfr_init(r31315);
        mpfr_init(r31316);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r31287, MPFR_RNDN);
        mpfr_sqrt(r31288, r31287, MPFR_RNDN);
        mpfr_div(r31289, r31286, r31288, MPFR_RNDN);
        mpfr_set_d(r31290, x, MPFR_RNDN);
        mpfr_abs(r31291, r31290, MPFR_RNDN);
        mpfr_mul(r31292, r31291, r31291, MPFR_RNDN);
        mpfr_exp(r31293, r31292, MPFR_RNDN);
        mpfr_mul(r31294, r31289, r31293, MPFR_RNDN);
        mpfr_div(r31295, r31286, r31291, MPFR_RNDN);
        ;
        mpfr_div(r31297, r31286, r31296, MPFR_RNDN);
        mpfr_mul(r31298, r31295, r31295, MPFR_RNDN);
        mpfr_mul(r31299, r31298, r31295, MPFR_RNDN);
        mpfr_mul(r31300, r31297, r31299, MPFR_RNDN);
        mpfr_add(r31301, r31295, r31300, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31304, r31302, r31303, MPFR_RNDN);
        mpfr_mul(r31305, r31299, r31295, MPFR_RNDN);
        mpfr_mul(r31306, r31305, r31295, MPFR_RNDN);
        mpfr_mul(r31307, r31304, r31306, MPFR_RNDN);
        mpfr_add(r31308, r31301, r31307, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31311, r31309, r31310, MPFR_RNDN);
        mpfr_mul(r31312, r31306, r31295, MPFR_RNDN);
        mpfr_mul(r31313, r31312, r31295, MPFR_RNDN);
        mpfr_mul(r31314, r31311, r31313, MPFR_RNDN);
        mpfr_add(r31315, r31308, r31314, MPFR_RNDN);
        mpfr_mul(r31316, r31294, r31315, MPFR_RNDN);
        return mpfr_get_d(r31316, MPFR_RNDN);
}

static mpfr_t r31317, r31318, r31319, r31320, r31321, r31322, r31323, r31324, r31325, r31326, r31327, r31328, r31329, r31330, r31331, r31332, r31333, r31334, r31335, r31336, r31337, r31338, r31339, r31340, r31341, r31342, r31343, r31344, r31345, r31346;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r31317);
        mpfr_init(r31318);
        mpfr_init(r31319);
        mpfr_init(r31320);
        mpfr_init(r31321);
        mpfr_init(r31322);
        mpfr_init(r31323);
        mpfr_init_set_str(r31324, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r31325, "4", 10, MPFR_RNDN);
        mpfr_init(r31326);
        mpfr_init(r31327);
        mpfr_init(r31328);
        mpfr_init(r31329);
        mpfr_init_set_str(r31330, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31331, "8", 10, MPFR_RNDN);
        mpfr_init(r31332);
        mpfr_init(r31333);
        mpfr_init(r31334);
        mpfr_init(r31335);
        mpfr_init(r31336);
        mpfr_init_set_str(r31337, "1", 10, MPFR_RNDN);
        mpfr_init(r31338);
        mpfr_init_set_str(r31339, "2", 10, MPFR_RNDN);
        mpfr_init(r31340);
        mpfr_init(r31341);
        mpfr_init(r31342);
        mpfr_init(r31343);
        mpfr_init(r31344);
        mpfr_init(r31345);
        mpfr_init(r31346);
}

double f_fm(double x) {
        mpfr_set_d(r31317, x, MPFR_RNDN);
        mpfr_abs(r31318, r31317, MPFR_RNDN);
        mpfr_mul(r31319, r31318, r31318, MPFR_RNDN);
        mpfr_exp(r31320, r31319, MPFR_RNDN);
        mpfr_const_pi(r31321, MPFR_RNDN);
        mpfr_sqrt(r31322, r31321, MPFR_RNDN);
        mpfr_div(r31323, r31320, r31322, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31326, r31324, r31325, MPFR_RNDN);
        mpfr_div(r31327, r31326, r31318, MPFR_RNDN);
        mpfr_div(r31328, r31327, r31319, MPFR_RNDN);
        mpfr_div(r31329, r31328, r31319, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31332, r31330, r31331, MPFR_RNDN);
        mpfr_div(r31333, r31332, r31318, MPFR_RNDN);
        mpfr_pow(r31334, r31318, r31324, MPFR_RNDN);
        mpfr_mul(r31335, r31334, r31334, MPFR_RNDN);
        mpfr_div(r31336, r31333, r31335, MPFR_RNDN);
        ;
        mpfr_div(r31338, r31337, r31318, MPFR_RNDN);
        ;
        mpfr_div(r31340, r31337, r31339, MPFR_RNDN);
        mpfr_div(r31341, r31340, r31318, MPFR_RNDN);
        mpfr_div(r31342, r31341, r31319, MPFR_RNDN);
        mpfr_add(r31343, r31338, r31342, MPFR_RNDN);
        mpfr_add(r31344, r31336, r31343, MPFR_RNDN);
        mpfr_add(r31345, r31329, r31344, MPFR_RNDN);
        mpfr_mul(r31346, r31323, r31345, MPFR_RNDN);
        return mpfr_get_d(r31346, MPFR_RNDN);
}

static mpfr_t r31347, r31348, r31349, r31350, r31351, r31352, r31353, r31354, r31355, r31356, r31357, r31358, r31359, r31360, r31361, r31362, r31363, r31364, r31365, r31366, r31367, r31368, r31369, r31370, r31371, r31372, r31373, r31374, r31375, r31376;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r31347);
        mpfr_init(r31348);
        mpfr_init(r31349);
        mpfr_init(r31350);
        mpfr_init(r31351);
        mpfr_init(r31352);
        mpfr_init(r31353);
        mpfr_init_set_str(r31354, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r31355, "4", 10, MPFR_RNDN);
        mpfr_init(r31356);
        mpfr_init(r31357);
        mpfr_init(r31358);
        mpfr_init(r31359);
        mpfr_init_set_str(r31360, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r31361, "8", 10, MPFR_RNDN);
        mpfr_init(r31362);
        mpfr_init(r31363);
        mpfr_init(r31364);
        mpfr_init(r31365);
        mpfr_init(r31366);
        mpfr_init_set_str(r31367, "1", 10, MPFR_RNDN);
        mpfr_init(r31368);
        mpfr_init_set_str(r31369, "2", 10, MPFR_RNDN);
        mpfr_init(r31370);
        mpfr_init(r31371);
        mpfr_init(r31372);
        mpfr_init(r31373);
        mpfr_init(r31374);
        mpfr_init(r31375);
        mpfr_init(r31376);
}

double f_dm(double x) {
        mpfr_set_d(r31347, x, MPFR_RNDN);
        mpfr_abs(r31348, r31347, MPFR_RNDN);
        mpfr_mul(r31349, r31348, r31348, MPFR_RNDN);
        mpfr_exp(r31350, r31349, MPFR_RNDN);
        mpfr_const_pi(r31351, MPFR_RNDN);
        mpfr_sqrt(r31352, r31351, MPFR_RNDN);
        mpfr_div(r31353, r31350, r31352, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31356, r31354, r31355, MPFR_RNDN);
        mpfr_div(r31357, r31356, r31348, MPFR_RNDN);
        mpfr_div(r31358, r31357, r31349, MPFR_RNDN);
        mpfr_div(r31359, r31358, r31349, MPFR_RNDN);
        ;
        ;
        mpfr_div(r31362, r31360, r31361, MPFR_RNDN);
        mpfr_div(r31363, r31362, r31348, MPFR_RNDN);
        mpfr_pow(r31364, r31348, r31354, MPFR_RNDN);
        mpfr_mul(r31365, r31364, r31364, MPFR_RNDN);
        mpfr_div(r31366, r31363, r31365, MPFR_RNDN);
        ;
        mpfr_div(r31368, r31367, r31348, MPFR_RNDN);
        ;
        mpfr_div(r31370, r31367, r31369, MPFR_RNDN);
        mpfr_div(r31371, r31370, r31348, MPFR_RNDN);
        mpfr_div(r31372, r31371, r31349, MPFR_RNDN);
        mpfr_add(r31373, r31368, r31372, MPFR_RNDN);
        mpfr_add(r31374, r31366, r31373, MPFR_RNDN);
        mpfr_add(r31375, r31359, r31374, MPFR_RNDN);
        mpfr_mul(r31376, r31353, r31375, MPFR_RNDN);
        return mpfr_get_d(r31376, MPFR_RNDN);
}

