#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 r27159 = 1;
        float r27160 = atan2(1.0, 0.0);
        float r27161 = sqrt(r27160);
        float r27162 = r27159 / r27161;
        float r27163 = 2;
        float r27164 = x;
        float r27165 = fabs(r27164);
        float r27166 = r27163 * r27165;
        float r27167 = 3;
        float r27168 = r27163 / r27167;
        float r27169 = r27165 * r27165;
        float r27170 = r27169 * r27165;
        float r27171 = r27168 * r27170;
        float r27172 = r27166 + r27171;
        float r27173 = 5;
        float r27174 = r27159 / r27173;
        float r27175 = r27170 * r27165;
        float r27176 = r27175 * r27165;
        float r27177 = r27174 * r27176;
        float r27178 = r27172 + r27177;
        float r27179 = 21;
        float r27180 = r27159 / r27179;
        float r27181 = r27176 * r27165;
        float r27182 = r27181 * r27165;
        float r27183 = r27180 * r27182;
        float r27184 = r27178 + r27183;
        float r27185 = r27162 * r27184;
        float r27186 = fabs(r27185);
        return r27186;
}

double f_id(double x) {
        double r27187 = 1;
        double r27188 = atan2(1.0, 0.0);
        double r27189 = sqrt(r27188);
        double r27190 = r27187 / r27189;
        double r27191 = 2;
        double r27192 = x;
        double r27193 = fabs(r27192);
        double r27194 = r27191 * r27193;
        double r27195 = 3;
        double r27196 = r27191 / r27195;
        double r27197 = r27193 * r27193;
        double r27198 = r27197 * r27193;
        double r27199 = r27196 * r27198;
        double r27200 = r27194 + r27199;
        double r27201 = 5;
        double r27202 = r27187 / r27201;
        double r27203 = r27198 * r27193;
        double r27204 = r27203 * r27193;
        double r27205 = r27202 * r27204;
        double r27206 = r27200 + r27205;
        double r27207 = 21;
        double r27208 = r27187 / r27207;
        double r27209 = r27204 * r27193;
        double r27210 = r27209 * r27193;
        double r27211 = r27208 * r27210;
        double r27212 = r27206 + r27211;
        double r27213 = r27190 * r27212;
        double r27214 = fabs(r27213);
        return r27214;
}


double f_of(float x) {
        float r27215 = 1;
        float r27216 = atan2(1.0, 0.0);
        float r27217 = sqrt(r27216);
        float r27218 = r27215 / r27217;
        float r27219 = 2;
        float r27220 = x;
        float r27221 = fabs(r27220);
        float r27222 = r27219 * r27221;
        float r27223 = 3;
        float r27224 = r27219 / r27223;
        float r27225 = r27221 * r27221;
        float r27226 = r27225 * r27221;
        float r27227 = r27224 * r27226;
        float r27228 = r27222 + r27227;
        float r27229 = 5;
        float r27230 = r27215 / r27229;
        float r27231 = r27226 * r27221;
        float r27232 = r27231 * r27221;
        float r27233 = r27230 * r27232;
        float r27234 = r27228 + r27233;
        float r27235 = 21;
        float r27236 = r27215 / r27235;
        float r27237 = fabs(r27221);
        float r27238 = pow(r27221, r27223);
        float r27239 = sqrt(r27238);
        float r27240 = r27237 * r27239;
        float r27241 = cbrt(r27221);
        float r27242 = pow(r27241, r27223);
        float r27243 = sqrt(r27242);
        float r27244 = r27240 * r27243;
        float r27245 = r27244 * r27221;
        float r27246 = r27245 * r27221;
        float r27247 = r27246 * r27221;
        float r27248 = r27247 * r27221;
        float r27249 = r27236 * r27248;
        float r27250 = r27234 + r27249;
        float r27251 = r27218 * r27250;
        float r27252 = fabs(r27251);
        return r27252;
}

double f_od(double x) {
        double r27253 = 1;
        double r27254 = atan2(1.0, 0.0);
        double r27255 = sqrt(r27254);
        double r27256 = r27253 / r27255;
        double r27257 = 2;
        double r27258 = x;
        double r27259 = fabs(r27258);
        double r27260 = r27257 * r27259;
        double r27261 = 3;
        double r27262 = r27257 / r27261;
        double r27263 = r27259 * r27259;
        double r27264 = r27263 * r27259;
        double r27265 = r27262 * r27264;
        double r27266 = r27260 + r27265;
        double r27267 = 5;
        double r27268 = r27253 / r27267;
        double r27269 = r27264 * r27259;
        double r27270 = r27269 * r27259;
        double r27271 = r27268 * r27270;
        double r27272 = r27266 + r27271;
        double r27273 = 21;
        double r27274 = r27253 / r27273;
        double r27275 = fabs(r27259);
        double r27276 = pow(r27259, r27261);
        double r27277 = sqrt(r27276);
        double r27278 = r27275 * r27277;
        double r27279 = cbrt(r27259);
        double r27280 = pow(r27279, r27261);
        double r27281 = sqrt(r27280);
        double r27282 = r27278 * r27281;
        double r27283 = r27282 * r27259;
        double r27284 = r27283 * r27259;
        double r27285 = r27284 * r27259;
        double r27286 = r27285 * r27259;
        double r27287 = r27274 * r27286;
        double r27288 = r27272 + r27287;
        double r27289 = r27256 * r27288;
        double r27290 = fabs(r27289);
        return r27290;
}

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 r27291, r27292, r27293, r27294, r27295, r27296, r27297, r27298, r27299, r27300, r27301, r27302, r27303, r27304, r27305, r27306, r27307, r27308, r27309, r27310, r27311, r27312, r27313, r27314, r27315, r27316, r27317, r27318;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27291, "1", 10, MPFR_RNDN);
        mpfr_init(r27292);
        mpfr_init(r27293);
        mpfr_init(r27294);
        mpfr_init_set_str(r27295, "2", 10, MPFR_RNDN);
        mpfr_init(r27296);
        mpfr_init(r27297);
        mpfr_init(r27298);
        mpfr_init_set_str(r27299, "3", 10, MPFR_RNDN);
        mpfr_init(r27300);
        mpfr_init(r27301);
        mpfr_init(r27302);
        mpfr_init(r27303);
        mpfr_init(r27304);
        mpfr_init_set_str(r27305, "5", 10, MPFR_RNDN);
        mpfr_init(r27306);
        mpfr_init(r27307);
        mpfr_init(r27308);
        mpfr_init(r27309);
        mpfr_init(r27310);
        mpfr_init_set_str(r27311, "21", 10, MPFR_RNDN);
        mpfr_init(r27312);
        mpfr_init(r27313);
        mpfr_init(r27314);
        mpfr_init(r27315);
        mpfr_init(r27316);
        mpfr_init(r27317);
        mpfr_init(r27318);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27292, MPFR_RNDN);
        mpfr_sqrt(r27293, r27292, MPFR_RNDN);
        mpfr_div(r27294, r27291, r27293, MPFR_RNDN);
        ;
        mpfr_set_d(r27296, x, MPFR_RNDN);
        mpfr_abs(r27297, r27296, MPFR_RNDN);
        mpfr_mul(r27298, r27295, r27297, MPFR_RNDN);
        ;
        mpfr_div(r27300, r27295, r27299, MPFR_RNDN);
        mpfr_mul(r27301, r27297, r27297, MPFR_RNDN);
        mpfr_mul(r27302, r27301, r27297, MPFR_RNDN);
        mpfr_mul(r27303, r27300, r27302, MPFR_RNDN);
        mpfr_add(r27304, r27298, r27303, MPFR_RNDN);
        ;
        mpfr_div(r27306, r27291, r27305, MPFR_RNDN);
        mpfr_mul(r27307, r27302, r27297, MPFR_RNDN);
        mpfr_mul(r27308, r27307, r27297, MPFR_RNDN);
        mpfr_mul(r27309, r27306, r27308, MPFR_RNDN);
        mpfr_add(r27310, r27304, r27309, MPFR_RNDN);
        ;
        mpfr_div(r27312, r27291, r27311, MPFR_RNDN);
        mpfr_mul(r27313, r27308, r27297, MPFR_RNDN);
        mpfr_mul(r27314, r27313, r27297, MPFR_RNDN);
        mpfr_mul(r27315, r27312, r27314, MPFR_RNDN);
        mpfr_add(r27316, r27310, r27315, MPFR_RNDN);
        mpfr_mul(r27317, r27294, r27316, MPFR_RNDN);
        mpfr_abs(r27318, r27317, MPFR_RNDN);
        return mpfr_get_d(r27318, MPFR_RNDN);
}

static mpfr_t r27319, r27320, r27321, r27322, r27323, r27324, r27325, r27326, r27327, r27328, r27329, r27330, r27331, r27332, r27333, r27334, r27335, r27336, r27337, r27338, r27339, r27340, r27341, r27342, r27343, r27344, r27345, r27346, r27347, r27348, r27349, r27350, r27351, r27352, r27353, r27354, r27355, r27356;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27319, "1", 10, MPFR_RNDN);
        mpfr_init(r27320);
        mpfr_init(r27321);
        mpfr_init(r27322);
        mpfr_init_set_str(r27323, "2", 10, MPFR_RNDN);
        mpfr_init(r27324);
        mpfr_init(r27325);
        mpfr_init(r27326);
        mpfr_init_set_str(r27327, "3", 10, MPFR_RNDN);
        mpfr_init(r27328);
        mpfr_init(r27329);
        mpfr_init(r27330);
        mpfr_init(r27331);
        mpfr_init(r27332);
        mpfr_init_set_str(r27333, "5", 10, MPFR_RNDN);
        mpfr_init(r27334);
        mpfr_init(r27335);
        mpfr_init(r27336);
        mpfr_init(r27337);
        mpfr_init(r27338);
        mpfr_init_set_str(r27339, "21", 10, MPFR_RNDN);
        mpfr_init(r27340);
        mpfr_init(r27341);
        mpfr_init(r27342);
        mpfr_init(r27343);
        mpfr_init(r27344);
        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(r27354);
        mpfr_init(r27355);
        mpfr_init(r27356);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r27320, MPFR_RNDN);
        mpfr_sqrt(r27321, r27320, MPFR_RNDN);
        mpfr_div(r27322, r27319, r27321, MPFR_RNDN);
        ;
        mpfr_set_d(r27324, x, MPFR_RNDN);
        mpfr_abs(r27325, r27324, MPFR_RNDN);
        mpfr_mul(r27326, r27323, r27325, MPFR_RNDN);
        ;
        mpfr_div(r27328, r27323, r27327, MPFR_RNDN);
        mpfr_mul(r27329, r27325, r27325, MPFR_RNDN);
        mpfr_mul(r27330, r27329, r27325, MPFR_RNDN);
        mpfr_mul(r27331, r27328, r27330, MPFR_RNDN);
        mpfr_add(r27332, r27326, r27331, MPFR_RNDN);
        ;
        mpfr_div(r27334, r27319, r27333, MPFR_RNDN);
        mpfr_mul(r27335, r27330, r27325, MPFR_RNDN);
        mpfr_mul(r27336, r27335, r27325, MPFR_RNDN);
        mpfr_mul(r27337, r27334, r27336, MPFR_RNDN);
        mpfr_add(r27338, r27332, r27337, MPFR_RNDN);
        ;
        mpfr_div(r27340, r27319, r27339, MPFR_RNDN);
        mpfr_abs(r27341, r27325, MPFR_RNDN);
        mpfr_pow(r27342, r27325, r27327, MPFR_RNDN);
        mpfr_sqrt(r27343, r27342, MPFR_RNDN);
        mpfr_mul(r27344, r27341, r27343, MPFR_RNDN);
        mpfr_cbrt(r27345, r27325, MPFR_RNDN);
        mpfr_pow(r27346, r27345, r27327, MPFR_RNDN);
        mpfr_sqrt(r27347, r27346, MPFR_RNDN);
        mpfr_mul(r27348, r27344, r27347, MPFR_RNDN);
        mpfr_mul(r27349, r27348, r27325, MPFR_RNDN);
        mpfr_mul(r27350, r27349, r27325, MPFR_RNDN);
        mpfr_mul(r27351, r27350, r27325, MPFR_RNDN);
        mpfr_mul(r27352, r27351, r27325, MPFR_RNDN);
        mpfr_mul(r27353, r27340, r27352, MPFR_RNDN);
        mpfr_add(r27354, r27338, r27353, MPFR_RNDN);
        mpfr_mul(r27355, r27322, r27354, MPFR_RNDN);
        mpfr_abs(r27356, r27355, MPFR_RNDN);
        return mpfr_get_d(r27356, MPFR_RNDN);
}

static mpfr_t 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, r27387, r27388, r27389, r27390, r27391, r27392, r27393, r27394;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27357, "1", 10, MPFR_RNDN);
        mpfr_init(r27358);
        mpfr_init(r27359);
        mpfr_init(r27360);
        mpfr_init_set_str(r27361, "2", 10, MPFR_RNDN);
        mpfr_init(r27362);
        mpfr_init(r27363);
        mpfr_init(r27364);
        mpfr_init_set_str(r27365, "3", 10, MPFR_RNDN);
        mpfr_init(r27366);
        mpfr_init(r27367);
        mpfr_init(r27368);
        mpfr_init(r27369);
        mpfr_init(r27370);
        mpfr_init_set_str(r27371, "5", 10, MPFR_RNDN);
        mpfr_init(r27372);
        mpfr_init(r27373);
        mpfr_init(r27374);
        mpfr_init(r27375);
        mpfr_init(r27376);
        mpfr_init_set_str(r27377, "21", 10, MPFR_RNDN);
        mpfr_init(r27378);
        mpfr_init(r27379);
        mpfr_init(r27380);
        mpfr_init(r27381);
        mpfr_init(r27382);
        mpfr_init(r27383);
        mpfr_init(r27384);
        mpfr_init(r27385);
        mpfr_init(r27386);
        mpfr_init(r27387);
        mpfr_init(r27388);
        mpfr_init(r27389);
        mpfr_init(r27390);
        mpfr_init(r27391);
        mpfr_init(r27392);
        mpfr_init(r27393);
        mpfr_init(r27394);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r27358, MPFR_RNDN);
        mpfr_sqrt(r27359, r27358, MPFR_RNDN);
        mpfr_div(r27360, r27357, r27359, MPFR_RNDN);
        ;
        mpfr_set_d(r27362, x, MPFR_RNDN);
        mpfr_abs(r27363, r27362, MPFR_RNDN);
        mpfr_mul(r27364, r27361, r27363, MPFR_RNDN);
        ;
        mpfr_div(r27366, r27361, r27365, MPFR_RNDN);
        mpfr_mul(r27367, r27363, r27363, MPFR_RNDN);
        mpfr_mul(r27368, r27367, r27363, MPFR_RNDN);
        mpfr_mul(r27369, r27366, r27368, MPFR_RNDN);
        mpfr_add(r27370, r27364, r27369, MPFR_RNDN);
        ;
        mpfr_div(r27372, r27357, r27371, MPFR_RNDN);
        mpfr_mul(r27373, r27368, r27363, MPFR_RNDN);
        mpfr_mul(r27374, r27373, r27363, MPFR_RNDN);
        mpfr_mul(r27375, r27372, r27374, MPFR_RNDN);
        mpfr_add(r27376, r27370, r27375, MPFR_RNDN);
        ;
        mpfr_div(r27378, r27357, r27377, MPFR_RNDN);
        mpfr_abs(r27379, r27363, MPFR_RNDN);
        mpfr_pow(r27380, r27363, r27365, MPFR_RNDN);
        mpfr_sqrt(r27381, r27380, MPFR_RNDN);
        mpfr_mul(r27382, r27379, r27381, MPFR_RNDN);
        mpfr_cbrt(r27383, r27363, MPFR_RNDN);
        mpfr_pow(r27384, r27383, r27365, MPFR_RNDN);
        mpfr_sqrt(r27385, r27384, MPFR_RNDN);
        mpfr_mul(r27386, r27382, r27385, MPFR_RNDN);
        mpfr_mul(r27387, r27386, r27363, MPFR_RNDN);
        mpfr_mul(r27388, r27387, r27363, MPFR_RNDN);
        mpfr_mul(r27389, r27388, r27363, MPFR_RNDN);
        mpfr_mul(r27390, r27389, r27363, MPFR_RNDN);
        mpfr_mul(r27391, r27378, r27390, MPFR_RNDN);
        mpfr_add(r27392, r27376, r27391, MPFR_RNDN);
        mpfr_mul(r27393, r27360, r27392, MPFR_RNDN);
        mpfr_abs(r27394, r27393, MPFR_RNDN);
        return mpfr_get_d(r27394, MPFR_RNDN);
}

