#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 r10148 = 1.0f;
        float r10149 = atan2(1.0, 0.0);
        float r10150 = sqrt(r10149);
        float r10151 = r10148 / r10150;
        float r10152 = 2.0f;
        float r10153 = x;
        float r10154 = fabs(r10153);
        float r10155 = r10152 * r10154;
        float r10156 = 3.0f;
        float r10157 = r10152 / r10156;
        float r10158 = r10154 * r10154;
        float r10159 = r10158 * r10154;
        float r10160 = r10157 * r10159;
        float r10161 = r10155 + r10160;
        float r10162 = 5.0f;
        float r10163 = r10148 / r10162;
        float r10164 = r10159 * r10154;
        float r10165 = r10164 * r10154;
        float r10166 = r10163 * r10165;
        float r10167 = r10161 + r10166;
        float r10168 = 21.0f;
        float r10169 = r10148 / r10168;
        float r10170 = r10165 * r10154;
        float r10171 = r10170 * r10154;
        float r10172 = r10169 * r10171;
        float r10173 = r10167 + r10172;
        float r10174 = r10151 * r10173;
        float r10175 = fabs(r10174);
        return r10175;
}

double f_id(double x) {
        double r10176 = 1.0;
        double r10177 = atan2(1.0, 0.0);
        double r10178 = sqrt(r10177);
        double r10179 = r10176 / r10178;
        double r10180 = 2.0;
        double r10181 = x;
        double r10182 = fabs(r10181);
        double r10183 = r10180 * r10182;
        double r10184 = 3.0;
        double r10185 = r10180 / r10184;
        double r10186 = r10182 * r10182;
        double r10187 = r10186 * r10182;
        double r10188 = r10185 * r10187;
        double r10189 = r10183 + r10188;
        double r10190 = 5.0;
        double r10191 = r10176 / r10190;
        double r10192 = r10187 * r10182;
        double r10193 = r10192 * r10182;
        double r10194 = r10191 * r10193;
        double r10195 = r10189 + r10194;
        double r10196 = 21.0;
        double r10197 = r10176 / r10196;
        double r10198 = r10193 * r10182;
        double r10199 = r10198 * r10182;
        double r10200 = r10197 * r10199;
        double r10201 = r10195 + r10200;
        double r10202 = r10179 * r10201;
        double r10203 = fabs(r10202);
        return r10203;
}


double f_of(float x) {
        float r10204 = x;
        float r10205 = fabs(r10204);
        float r10206 = 21.0f;
        float r10207 = r10205 / r10206;
        float r10208 = atan2(1.0, 0.0);
        float r10209 = sqrt(r10208);
        float r10210 = r10207 / r10209;
        float r10211 = 3.0f;
        float r10212 = pow(r10205, r10211);
        float r10213 = r10212 * r10212;
        float r10214 = r10210 * r10213;
        float r10215 = 1.0f;
        float r10216 = r10215 / r10209;
        float r10217 = 5.0f;
        float r10218 = r10215 / r10217;
        float r10219 = r10205 * r10205;
        float r10220 = r10219 * r10205;
        float r10221 = r10220 * r10205;
        float r10222 = r10205 * r10221;
        float r10223 = r10218 * r10222;
        float r10224 = 2.0f;
        float r10225 = r10205 * r10224;
        float r10226 = r10224 / r10211;
        float r10227 = r10220 * r10226;
        float r10228 = r10225 + r10227;
        float r10229 = r10223 + r10228;
        float r10230 = r10216 * r10229;
        float r10231 = r10214 + r10230;
        float r10232 = fabs(r10231);
        return r10232;
}

double f_od(double x) {
        double r10233 = x;
        double r10234 = fabs(r10233);
        double r10235 = 21.0;
        double r10236 = r10234 / r10235;
        double r10237 = atan2(1.0, 0.0);
        double r10238 = sqrt(r10237);
        double r10239 = r10236 / r10238;
        double r10240 = 3.0;
        double r10241 = pow(r10234, r10240);
        double r10242 = r10241 * r10241;
        double r10243 = r10239 * r10242;
        double r10244 = 1.0;
        double r10245 = r10244 / r10238;
        double r10246 = 5.0;
        double r10247 = r10244 / r10246;
        double r10248 = r10234 * r10234;
        double r10249 = r10248 * r10234;
        double r10250 = r10249 * r10234;
        double r10251 = r10234 * r10250;
        double r10252 = r10247 * r10251;
        double r10253 = 2.0;
        double r10254 = r10234 * r10253;
        double r10255 = r10253 / r10240;
        double r10256 = r10249 * r10255;
        double r10257 = r10254 + r10256;
        double r10258 = r10252 + r10257;
        double r10259 = r10245 * r10258;
        double r10260 = r10243 + r10259;
        double r10261 = fabs(r10260);
        return r10261;
}

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 r10262, r10263, r10264, r10265, r10266, r10267, r10268, r10269, r10270, r10271, r10272, r10273, r10274, r10275, r10276, r10277, r10278, r10279, r10280, r10281, r10282, r10283, r10284, r10285, r10286, r10287, r10288, r10289;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10262, "1", 10, MPFR_RNDN);
        mpfr_init(r10263);
        mpfr_init(r10264);
        mpfr_init(r10265);
        mpfr_init_set_str(r10266, "2", 10, MPFR_RNDN);
        mpfr_init(r10267);
        mpfr_init(r10268);
        mpfr_init(r10269);
        mpfr_init_set_str(r10270, "3", 10, MPFR_RNDN);
        mpfr_init(r10271);
        mpfr_init(r10272);
        mpfr_init(r10273);
        mpfr_init(r10274);
        mpfr_init(r10275);
        mpfr_init_set_str(r10276, "5", 10, MPFR_RNDN);
        mpfr_init(r10277);
        mpfr_init(r10278);
        mpfr_init(r10279);
        mpfr_init(r10280);
        mpfr_init(r10281);
        mpfr_init_set_str(r10282, "21", 10, MPFR_RNDN);
        mpfr_init(r10283);
        mpfr_init(r10284);
        mpfr_init(r10285);
        mpfr_init(r10286);
        mpfr_init(r10287);
        mpfr_init(r10288);
        mpfr_init(r10289);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r10263, MPFR_RNDN);
        mpfr_sqrt(r10264, r10263, MPFR_RNDN);
        mpfr_div(r10265, r10262, r10264, MPFR_RNDN);
        ;
        mpfr_set_d(r10267, x, MPFR_RNDN);
        mpfr_abs(r10268, r10267, MPFR_RNDN);
        mpfr_mul(r10269, r10266, r10268, MPFR_RNDN);
        ;
        mpfr_div(r10271, r10266, r10270, MPFR_RNDN);
        mpfr_mul(r10272, r10268, r10268, MPFR_RNDN);
        mpfr_mul(r10273, r10272, r10268, MPFR_RNDN);
        mpfr_mul(r10274, r10271, r10273, MPFR_RNDN);
        mpfr_add(r10275, r10269, r10274, MPFR_RNDN);
        ;
        mpfr_div(r10277, r10262, r10276, MPFR_RNDN);
        mpfr_mul(r10278, r10273, r10268, MPFR_RNDN);
        mpfr_mul(r10279, r10278, r10268, MPFR_RNDN);
        mpfr_mul(r10280, r10277, r10279, MPFR_RNDN);
        mpfr_add(r10281, r10275, r10280, MPFR_RNDN);
        ;
        mpfr_div(r10283, r10262, r10282, MPFR_RNDN);
        mpfr_mul(r10284, r10279, r10268, MPFR_RNDN);
        mpfr_mul(r10285, r10284, r10268, MPFR_RNDN);
        mpfr_mul(r10286, r10283, r10285, MPFR_RNDN);
        mpfr_add(r10287, r10281, r10286, MPFR_RNDN);
        mpfr_mul(r10288, r10265, r10287, MPFR_RNDN);
        mpfr_abs(r10289, r10288, MPFR_RNDN);
        return mpfr_get_d(r10289, MPFR_RNDN);
}

static mpfr_t r10290, r10291, r10292, r10293, r10294, r10295, r10296, r10297, r10298, r10299, r10300, r10301, r10302, r10303, r10304, r10305, r10306, r10307, r10308, r10309, r10310, r10311, r10312, r10313, r10314, r10315, r10316, r10317, r10318;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10290);
        mpfr_init(r10291);
        mpfr_init_set_str(r10292, "21", 10, MPFR_RNDN);
        mpfr_init(r10293);
        mpfr_init(r10294);
        mpfr_init(r10295);
        mpfr_init(r10296);
        mpfr_init_set_str(r10297, "3", 10, MPFR_RNDN);
        mpfr_init(r10298);
        mpfr_init(r10299);
        mpfr_init(r10300);
        mpfr_init_set_str(r10301, "1", 10, MPFR_RNDN);
        mpfr_init(r10302);
        mpfr_init_set_str(r10303, "5", 10, MPFR_RNDN);
        mpfr_init(r10304);
        mpfr_init(r10305);
        mpfr_init(r10306);
        mpfr_init(r10307);
        mpfr_init(r10308);
        mpfr_init(r10309);
        mpfr_init_set_str(r10310, "2", 10, MPFR_RNDN);
        mpfr_init(r10311);
        mpfr_init(r10312);
        mpfr_init(r10313);
        mpfr_init(r10314);
        mpfr_init(r10315);
        mpfr_init(r10316);
        mpfr_init(r10317);
        mpfr_init(r10318);
}

double f_fm(double x) {
        mpfr_set_d(r10290, x, MPFR_RNDN);
        mpfr_abs(r10291, r10290, MPFR_RNDN);
        ;
        mpfr_div(r10293, r10291, r10292, MPFR_RNDN);
        mpfr_const_pi(r10294, MPFR_RNDN);
        mpfr_sqrt(r10295, r10294, MPFR_RNDN);
        mpfr_div(r10296, r10293, r10295, MPFR_RNDN);
        ;
        mpfr_pow(r10298, r10291, r10297, MPFR_RNDN);
        mpfr_mul(r10299, r10298, r10298, MPFR_RNDN);
        mpfr_mul(r10300, r10296, r10299, MPFR_RNDN);
        ;
        mpfr_div(r10302, r10301, r10295, MPFR_RNDN);
        ;
        mpfr_div(r10304, r10301, r10303, MPFR_RNDN);
        mpfr_mul(r10305, r10291, r10291, MPFR_RNDN);
        mpfr_mul(r10306, r10305, r10291, MPFR_RNDN);
        mpfr_mul(r10307, r10306, r10291, MPFR_RNDN);
        mpfr_mul(r10308, r10291, r10307, MPFR_RNDN);
        mpfr_mul(r10309, r10304, r10308, MPFR_RNDN);
        ;
        mpfr_mul(r10311, r10291, r10310, MPFR_RNDN);
        mpfr_div(r10312, r10310, r10297, MPFR_RNDN);
        mpfr_mul(r10313, r10306, r10312, MPFR_RNDN);
        mpfr_add(r10314, r10311, r10313, MPFR_RNDN);
        mpfr_add(r10315, r10309, r10314, MPFR_RNDN);
        mpfr_mul(r10316, r10302, r10315, MPFR_RNDN);
        mpfr_add(r10317, r10300, r10316, MPFR_RNDN);
        mpfr_abs(r10318, r10317, MPFR_RNDN);
        return mpfr_get_d(r10318, MPFR_RNDN);
}

static mpfr_t r10319, r10320, r10321, r10322, r10323, r10324, r10325, r10326, r10327, r10328, r10329, r10330, r10331, r10332, r10333, r10334, r10335, r10336, r10337, r10338, r10339, r10340, r10341, r10342, r10343, r10344, r10345, r10346, r10347;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10319);
        mpfr_init(r10320);
        mpfr_init_set_str(r10321, "21", 10, MPFR_RNDN);
        mpfr_init(r10322);
        mpfr_init(r10323);
        mpfr_init(r10324);
        mpfr_init(r10325);
        mpfr_init_set_str(r10326, "3", 10, MPFR_RNDN);
        mpfr_init(r10327);
        mpfr_init(r10328);
        mpfr_init(r10329);
        mpfr_init_set_str(r10330, "1", 10, MPFR_RNDN);
        mpfr_init(r10331);
        mpfr_init_set_str(r10332, "5", 10, MPFR_RNDN);
        mpfr_init(r10333);
        mpfr_init(r10334);
        mpfr_init(r10335);
        mpfr_init(r10336);
        mpfr_init(r10337);
        mpfr_init(r10338);
        mpfr_init_set_str(r10339, "2", 10, MPFR_RNDN);
        mpfr_init(r10340);
        mpfr_init(r10341);
        mpfr_init(r10342);
        mpfr_init(r10343);
        mpfr_init(r10344);
        mpfr_init(r10345);
        mpfr_init(r10346);
        mpfr_init(r10347);
}

double f_dm(double x) {
        mpfr_set_d(r10319, x, MPFR_RNDN);
        mpfr_abs(r10320, r10319, MPFR_RNDN);
        ;
        mpfr_div(r10322, r10320, r10321, MPFR_RNDN);
        mpfr_const_pi(r10323, MPFR_RNDN);
        mpfr_sqrt(r10324, r10323, MPFR_RNDN);
        mpfr_div(r10325, r10322, r10324, MPFR_RNDN);
        ;
        mpfr_pow(r10327, r10320, r10326, MPFR_RNDN);
        mpfr_mul(r10328, r10327, r10327, MPFR_RNDN);
        mpfr_mul(r10329, r10325, r10328, MPFR_RNDN);
        ;
        mpfr_div(r10331, r10330, r10324, MPFR_RNDN);
        ;
        mpfr_div(r10333, r10330, r10332, MPFR_RNDN);
        mpfr_mul(r10334, r10320, r10320, MPFR_RNDN);
        mpfr_mul(r10335, r10334, r10320, MPFR_RNDN);
        mpfr_mul(r10336, r10335, r10320, MPFR_RNDN);
        mpfr_mul(r10337, r10320, r10336, MPFR_RNDN);
        mpfr_mul(r10338, r10333, r10337, MPFR_RNDN);
        ;
        mpfr_mul(r10340, r10320, r10339, MPFR_RNDN);
        mpfr_div(r10341, r10339, r10326, MPFR_RNDN);
        mpfr_mul(r10342, r10335, r10341, MPFR_RNDN);
        mpfr_add(r10343, r10340, r10342, MPFR_RNDN);
        mpfr_add(r10344, r10338, r10343, MPFR_RNDN);
        mpfr_mul(r10345, r10331, r10344, MPFR_RNDN);
        mpfr_add(r10346, r10329, r10345, MPFR_RNDN);
        mpfr_abs(r10347, r10346, MPFR_RNDN);
        return mpfr_get_d(r10347, MPFR_RNDN);
}

