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

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


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

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

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 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, r10290, r10291, r10292;

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

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

static mpfr_t 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, r10319, r10320, r10321;

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

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

static mpfr_t 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, r10348, r10349, r10350;

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

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

