#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 r11104 = 1.0f;
        float r11105 = atan2(1.0, 0.0);
        float r11106 = sqrt(r11105);
        float r11107 = r11104 / r11106;
        float r11108 = x;
        float r11109 = fabs(r11108);
        float r11110 = r11109 * r11109;
        float r11111 = exp(r11110);
        float r11112 = r11107 * r11111;
        float r11113 = r11104 / r11109;
        float r11114 = 2.0f;
        float r11115 = r11104 / r11114;
        float r11116 = r11113 * r11113;
        float r11117 = r11116 * r11113;
        float r11118 = r11115 * r11117;
        float r11119 = r11113 + r11118;
        float r11120 = 3.0f;
        float r11121 = 4.0f;
        float r11122 = r11120 / r11121;
        float r11123 = r11117 * r11113;
        float r11124 = r11123 * r11113;
        float r11125 = r11122 * r11124;
        float r11126 = r11119 + r11125;
        float r11127 = 15.0f;
        float r11128 = 8.0f;
        float r11129 = r11127 / r11128;
        float r11130 = r11124 * r11113;
        float r11131 = r11130 * r11113;
        float r11132 = r11129 * r11131;
        float r11133 = r11126 + r11132;
        float r11134 = r11112 * r11133;
        return r11134;
}

double f_id(double x) {
        double r11135 = 1.0;
        double r11136 = atan2(1.0, 0.0);
        double r11137 = sqrt(r11136);
        double r11138 = r11135 / r11137;
        double r11139 = x;
        double r11140 = fabs(r11139);
        double r11141 = r11140 * r11140;
        double r11142 = exp(r11141);
        double r11143 = r11138 * r11142;
        double r11144 = r11135 / r11140;
        double r11145 = 2.0;
        double r11146 = r11135 / r11145;
        double r11147 = r11144 * r11144;
        double r11148 = r11147 * r11144;
        double r11149 = r11146 * r11148;
        double r11150 = r11144 + r11149;
        double r11151 = 3.0;
        double r11152 = 4.0;
        double r11153 = r11151 / r11152;
        double r11154 = r11148 * r11144;
        double r11155 = r11154 * r11144;
        double r11156 = r11153 * r11155;
        double r11157 = r11150 + r11156;
        double r11158 = 15.0;
        double r11159 = 8.0;
        double r11160 = r11158 / r11159;
        double r11161 = r11155 * r11144;
        double r11162 = r11161 * r11144;
        double r11163 = r11160 * r11162;
        double r11164 = r11157 + r11163;
        double r11165 = r11143 * r11164;
        return r11165;
}


double f_of(float x) {
        float r11166 = x;
        float r11167 = fabs(r11166);
        float r11168 = r11167 * r11167;
        float r11169 = exp(r11168);
        float r11170 = 1.0f;
        float r11171 = atan2(1.0, 0.0);
        float r11172 = sqrt(r11171);
        float r11173 = r11170 / r11172;
        float r11174 = 15.0f;
        float r11175 = 8.0f;
        float r11176 = r11174 / r11175;
        float r11177 = r11173 * r11176;
        float r11178 = r11169 * r11177;
        float r11179 = r11170 / r11167;
        float r11180 = 3.0f;
        float r11181 = pow(r11167, r11180);
        float r11182 = r11179 / r11181;
        float r11183 = r11182 / r11181;
        float r11184 = r11178 * r11183;
        float r11185 = r11173 * r11179;
        float r11186 = r11169 * r11185;
        float r11187 = r11184 + r11186;
        float r11188 = 2.0f;
        float r11189 = r11179 / r11188;
        float r11190 = r11189 / r11167;
        float r11191 = 4.0f;
        float r11192 = r11180 / r11191;
        float r11193 = r11192 * r11179;
        float r11194 = r11179 / r11168;
        float r11195 = r11193 * r11194;
        float r11196 = r11190 + r11195;
        float r11197 = cbrt(r11172);
        float r11198 = r11197 * r11197;
        float r11199 = r11198 * r11197;
        float r11200 = r11169 / r11199;
        float r11201 = r11179 * r11200;
        float r11202 = r11196 * r11201;
        float r11203 = r11187 + r11202;
        return r11203;
}

double f_od(double x) {
        double r11204 = x;
        double r11205 = fabs(r11204);
        double r11206 = r11205 * r11205;
        double r11207 = exp(r11206);
        double r11208 = 1.0;
        double r11209 = atan2(1.0, 0.0);
        double r11210 = sqrt(r11209);
        double r11211 = r11208 / r11210;
        double r11212 = 15.0;
        double r11213 = 8.0;
        double r11214 = r11212 / r11213;
        double r11215 = r11211 * r11214;
        double r11216 = r11207 * r11215;
        double r11217 = r11208 / r11205;
        double r11218 = 3.0;
        double r11219 = pow(r11205, r11218);
        double r11220 = r11217 / r11219;
        double r11221 = r11220 / r11219;
        double r11222 = r11216 * r11221;
        double r11223 = r11211 * r11217;
        double r11224 = r11207 * r11223;
        double r11225 = r11222 + r11224;
        double r11226 = 2.0;
        double r11227 = r11217 / r11226;
        double r11228 = r11227 / r11205;
        double r11229 = 4.0;
        double r11230 = r11218 / r11229;
        double r11231 = r11230 * r11217;
        double r11232 = r11217 / r11206;
        double r11233 = r11231 * r11232;
        double r11234 = r11228 + r11233;
        double r11235 = cbrt(r11210);
        double r11236 = r11235 * r11235;
        double r11237 = r11236 * r11235;
        double r11238 = r11207 / r11237;
        double r11239 = r11217 * r11238;
        double r11240 = r11234 * r11239;
        double r11241 = r11225 + r11240;
        return r11241;
}

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 r11242, r11243, r11244, r11245, r11246, r11247, r11248, r11249, r11250, r11251, r11252, r11253, r11254, r11255, r11256, r11257, r11258, r11259, r11260, r11261, r11262, r11263, r11264, r11265, r11266, r11267, r11268, r11269, r11270, r11271, r11272;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11242, "1", 10, MPFR_RNDN);
        mpfr_init(r11243);
        mpfr_init(r11244);
        mpfr_init(r11245);
        mpfr_init(r11246);
        mpfr_init(r11247);
        mpfr_init(r11248);
        mpfr_init(r11249);
        mpfr_init(r11250);
        mpfr_init(r11251);
        mpfr_init_set_str(r11252, "2", 10, MPFR_RNDN);
        mpfr_init(r11253);
        mpfr_init(r11254);
        mpfr_init(r11255);
        mpfr_init(r11256);
        mpfr_init(r11257);
        mpfr_init_set_str(r11258, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11259, "4", 10, MPFR_RNDN);
        mpfr_init(r11260);
        mpfr_init(r11261);
        mpfr_init(r11262);
        mpfr_init(r11263);
        mpfr_init(r11264);
        mpfr_init_set_str(r11265, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11266, "8", 10, MPFR_RNDN);
        mpfr_init(r11267);
        mpfr_init(r11268);
        mpfr_init(r11269);
        mpfr_init(r11270);
        mpfr_init(r11271);
        mpfr_init(r11272);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r11243, MPFR_RNDN);
        mpfr_sqrt(r11244, r11243, MPFR_RNDN);
        mpfr_div(r11245, r11242, r11244, MPFR_RNDN);
        mpfr_set_d(r11246, x, MPFR_RNDN);
        mpfr_abs(r11247, r11246, MPFR_RNDN);
        mpfr_mul(r11248, r11247, r11247, MPFR_RNDN);
        mpfr_exp(r11249, r11248, MPFR_RNDN);
        mpfr_mul(r11250, r11245, r11249, MPFR_RNDN);
        mpfr_div(r11251, r11242, r11247, MPFR_RNDN);
        ;
        mpfr_div(r11253, r11242, r11252, MPFR_RNDN);
        mpfr_mul(r11254, r11251, r11251, MPFR_RNDN);
        mpfr_mul(r11255, r11254, r11251, MPFR_RNDN);
        mpfr_mul(r11256, r11253, r11255, MPFR_RNDN);
        mpfr_add(r11257, r11251, r11256, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11260, r11258, r11259, MPFR_RNDN);
        mpfr_mul(r11261, r11255, r11251, MPFR_RNDN);
        mpfr_mul(r11262, r11261, r11251, MPFR_RNDN);
        mpfr_mul(r11263, r11260, r11262, MPFR_RNDN);
        mpfr_add(r11264, r11257, r11263, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11267, r11265, r11266, MPFR_RNDN);
        mpfr_mul(r11268, r11262, r11251, MPFR_RNDN);
        mpfr_mul(r11269, r11268, r11251, MPFR_RNDN);
        mpfr_mul(r11270, r11267, r11269, MPFR_RNDN);
        mpfr_add(r11271, r11264, r11270, MPFR_RNDN);
        mpfr_mul(r11272, r11250, r11271, MPFR_RNDN);
        return mpfr_get_d(r11272, MPFR_RNDN);
}

static mpfr_t r11273, r11274, r11275, r11276, r11277, r11278, r11279, r11280, r11281, r11282, r11283, r11284, r11285, r11286, r11287, r11288, r11289, r11290, r11291, r11292, r11293, r11294, r11295, r11296, r11297, r11298, r11299, r11300, r11301, r11302, r11303, r11304, r11305, r11306, r11307, r11308, r11309, r11310;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11273);
        mpfr_init(r11274);
        mpfr_init(r11275);
        mpfr_init(r11276);
        mpfr_init_set_str(r11277, "1", 10, MPFR_RNDN);
        mpfr_init(r11278);
        mpfr_init(r11279);
        mpfr_init(r11280);
        mpfr_init_set_str(r11281, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11282, "8", 10, MPFR_RNDN);
        mpfr_init(r11283);
        mpfr_init(r11284);
        mpfr_init(r11285);
        mpfr_init(r11286);
        mpfr_init_set_str(r11287, "3", 10, MPFR_RNDN);
        mpfr_init(r11288);
        mpfr_init(r11289);
        mpfr_init(r11290);
        mpfr_init(r11291);
        mpfr_init(r11292);
        mpfr_init(r11293);
        mpfr_init(r11294);
        mpfr_init_set_str(r11295, "2", 10, MPFR_RNDN);
        mpfr_init(r11296);
        mpfr_init(r11297);
        mpfr_init_set_str(r11298, "4", 10, MPFR_RNDN);
        mpfr_init(r11299);
        mpfr_init(r11300);
        mpfr_init(r11301);
        mpfr_init(r11302);
        mpfr_init(r11303);
        mpfr_init(r11304);
        mpfr_init(r11305);
        mpfr_init(r11306);
        mpfr_init(r11307);
        mpfr_init(r11308);
        mpfr_init(r11309);
        mpfr_init(r11310);
}

double f_fm(double x) {
        mpfr_set_d(r11273, x, MPFR_RNDN);
        mpfr_abs(r11274, r11273, MPFR_RNDN);
        mpfr_mul(r11275, r11274, r11274, MPFR_RNDN);
        mpfr_exp(r11276, r11275, MPFR_RNDN);
        ;
        mpfr_const_pi(r11278, MPFR_RNDN);
        mpfr_sqrt(r11279, r11278, MPFR_RNDN);
        mpfr_div(r11280, r11277, r11279, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11283, r11281, r11282, MPFR_RNDN);
        mpfr_mul(r11284, r11280, r11283, MPFR_RNDN);
        mpfr_mul(r11285, r11276, r11284, MPFR_RNDN);
        mpfr_div(r11286, r11277, r11274, MPFR_RNDN);
        ;
        mpfr_pow(r11288, r11274, r11287, MPFR_RNDN);
        mpfr_div(r11289, r11286, r11288, MPFR_RNDN);
        mpfr_div(r11290, r11289, r11288, MPFR_RNDN);
        mpfr_mul(r11291, r11285, r11290, MPFR_RNDN);
        mpfr_mul(r11292, r11280, r11286, MPFR_RNDN);
        mpfr_mul(r11293, r11276, r11292, MPFR_RNDN);
        mpfr_add(r11294, r11291, r11293, MPFR_RNDN);
        ;
        mpfr_div(r11296, r11286, r11295, MPFR_RNDN);
        mpfr_div(r11297, r11296, r11274, MPFR_RNDN);
        ;
        mpfr_div(r11299, r11287, r11298, MPFR_RNDN);
        mpfr_mul(r11300, r11299, r11286, MPFR_RNDN);
        mpfr_div(r11301, r11286, r11275, MPFR_RNDN);
        mpfr_mul(r11302, r11300, r11301, MPFR_RNDN);
        mpfr_add(r11303, r11297, r11302, MPFR_RNDN);
        mpfr_cbrt(r11304, r11279, MPFR_RNDN);
        mpfr_mul(r11305, r11304, r11304, MPFR_RNDN);
        mpfr_mul(r11306, r11305, r11304, MPFR_RNDN);
        mpfr_div(r11307, r11276, r11306, MPFR_RNDN);
        mpfr_mul(r11308, r11286, r11307, MPFR_RNDN);
        mpfr_mul(r11309, r11303, r11308, MPFR_RNDN);
        mpfr_add(r11310, r11294, r11309, MPFR_RNDN);
        return mpfr_get_d(r11310, MPFR_RNDN);
}

static mpfr_t r11311, r11312, r11313, r11314, r11315, r11316, r11317, r11318, r11319, r11320, r11321, r11322, r11323, r11324, r11325, r11326, r11327, r11328, r11329, r11330, r11331, r11332, r11333, r11334, r11335, r11336, r11337, r11338, r11339, r11340, r11341, r11342, r11343, r11344, r11345, r11346, r11347, r11348;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11311);
        mpfr_init(r11312);
        mpfr_init(r11313);
        mpfr_init(r11314);
        mpfr_init_set_str(r11315, "1", 10, MPFR_RNDN);
        mpfr_init(r11316);
        mpfr_init(r11317);
        mpfr_init(r11318);
        mpfr_init_set_str(r11319, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11320, "8", 10, MPFR_RNDN);
        mpfr_init(r11321);
        mpfr_init(r11322);
        mpfr_init(r11323);
        mpfr_init(r11324);
        mpfr_init_set_str(r11325, "3", 10, MPFR_RNDN);
        mpfr_init(r11326);
        mpfr_init(r11327);
        mpfr_init(r11328);
        mpfr_init(r11329);
        mpfr_init(r11330);
        mpfr_init(r11331);
        mpfr_init(r11332);
        mpfr_init_set_str(r11333, "2", 10, MPFR_RNDN);
        mpfr_init(r11334);
        mpfr_init(r11335);
        mpfr_init_set_str(r11336, "4", 10, MPFR_RNDN);
        mpfr_init(r11337);
        mpfr_init(r11338);
        mpfr_init(r11339);
        mpfr_init(r11340);
        mpfr_init(r11341);
        mpfr_init(r11342);
        mpfr_init(r11343);
        mpfr_init(r11344);
        mpfr_init(r11345);
        mpfr_init(r11346);
        mpfr_init(r11347);
        mpfr_init(r11348);
}

double f_dm(double x) {
        mpfr_set_d(r11311, x, MPFR_RNDN);
        mpfr_abs(r11312, r11311, MPFR_RNDN);
        mpfr_mul(r11313, r11312, r11312, MPFR_RNDN);
        mpfr_exp(r11314, r11313, MPFR_RNDN);
        ;
        mpfr_const_pi(r11316, MPFR_RNDN);
        mpfr_sqrt(r11317, r11316, MPFR_RNDN);
        mpfr_div(r11318, r11315, r11317, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11321, r11319, r11320, MPFR_RNDN);
        mpfr_mul(r11322, r11318, r11321, MPFR_RNDN);
        mpfr_mul(r11323, r11314, r11322, MPFR_RNDN);
        mpfr_div(r11324, r11315, r11312, MPFR_RNDN);
        ;
        mpfr_pow(r11326, r11312, r11325, MPFR_RNDN);
        mpfr_div(r11327, r11324, r11326, MPFR_RNDN);
        mpfr_div(r11328, r11327, r11326, MPFR_RNDN);
        mpfr_mul(r11329, r11323, r11328, MPFR_RNDN);
        mpfr_mul(r11330, r11318, r11324, MPFR_RNDN);
        mpfr_mul(r11331, r11314, r11330, MPFR_RNDN);
        mpfr_add(r11332, r11329, r11331, MPFR_RNDN);
        ;
        mpfr_div(r11334, r11324, r11333, MPFR_RNDN);
        mpfr_div(r11335, r11334, r11312, MPFR_RNDN);
        ;
        mpfr_div(r11337, r11325, r11336, MPFR_RNDN);
        mpfr_mul(r11338, r11337, r11324, MPFR_RNDN);
        mpfr_div(r11339, r11324, r11313, MPFR_RNDN);
        mpfr_mul(r11340, r11338, r11339, MPFR_RNDN);
        mpfr_add(r11341, r11335, r11340, MPFR_RNDN);
        mpfr_cbrt(r11342, r11317, MPFR_RNDN);
        mpfr_mul(r11343, r11342, r11342, MPFR_RNDN);
        mpfr_mul(r11344, r11343, r11342, MPFR_RNDN);
        mpfr_div(r11345, r11314, r11344, MPFR_RNDN);
        mpfr_mul(r11346, r11324, r11345, MPFR_RNDN);
        mpfr_mul(r11347, r11341, r11346, MPFR_RNDN);
        mpfr_add(r11348, r11332, r11347, MPFR_RNDN);
        return mpfr_get_d(r11348, MPFR_RNDN);
}

