#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Jmat.Real.erf";

double f_if(float x) {
        float r19217 = 1.0f;
        float r19218 = 0.32759109139442444f;
        float r19219 = x;
        float r19220 = fabs(r19219);
        float r19221 = r19218 * r19220;
        float r19222 = r19217 + r19221;
        float r19223 = r19217 / r19222;
        float r19224 = 0.2548295855522156f;
        float r19225 = -0.2844967246055603f;
        float r19226 = 1.421413779258728f;
        float r19227 = -1.453152060508728f;
        float r19228 = 1.0614054203033447f;
        float r19229 = r19223 * r19228;
        float r19230 = r19227 + r19229;
        float r19231 = r19223 * r19230;
        float r19232 = r19226 + r19231;
        float r19233 = r19223 * r19232;
        float r19234 = r19225 + r19233;
        float r19235 = r19223 * r19234;
        float r19236 = r19224 + r19235;
        float r19237 = r19223 * r19236;
        float r19238 = r19220 * r19220;
        float r19239 = -r19238;
        float r19240 = exp(r19239);
        float r19241 = r19237 * r19240;
        float r19242 = r19217 - r19241;
        return r19242;
}

double f_id(double x) {
        double r19243 = 1.0;
        double r19244 = 0.32759109139442444;
        double r19245 = x;
        double r19246 = fabs(r19245);
        double r19247 = r19244 * r19246;
        double r19248 = r19243 + r19247;
        double r19249 = r19243 / r19248;
        double r19250 = 0.2548295855522156;
        double r19251 = -0.2844967246055603;
        double r19252 = 1.421413779258728;
        double r19253 = -1.453152060508728;
        double r19254 = 1.0614054203033447;
        double r19255 = r19249 * r19254;
        double r19256 = r19253 + r19255;
        double r19257 = r19249 * r19256;
        double r19258 = r19252 + r19257;
        double r19259 = r19249 * r19258;
        double r19260 = r19251 + r19259;
        double r19261 = r19249 * r19260;
        double r19262 = r19250 + r19261;
        double r19263 = r19249 * r19262;
        double r19264 = r19246 * r19246;
        double r19265 = -r19264;
        double r19266 = exp(r19265);
        double r19267 = r19263 * r19266;
        double r19268 = r19243 - r19267;
        return r19268;
}


double f_of(float x) {
        float r19269 = 1.0f;
        float r19270 = 0.32759109139442444f;
        float r19271 = x;
        float r19272 = fabs(r19271);
        float r19273 = r19270 * r19272;
        float r19274 = r19269 + r19273;
        float r19275 = r19269 / r19274;
        float r19276 = 0.2548295855522156f;
        float r19277 = -0.2844967246055603f;
        float r19278 = 1.421413779258728f;
        float r19279 = -1.453152060508728f;
        float r19280 = r19279 * r19279;
        float r19281 = 1.0614054203033447f;
        float r19282 = r19275 * r19281;
        float r19283 = r19282 * r19282;
        float r19284 = r19280 - r19283;
        float r19285 = pow(r19284, r19269);
        float r19286 = r19272 * r19270;
        float r19287 = r19269 + r19286;
        float r19288 = r19281 / r19287;
        float r19289 = r19279 - r19288;
        float r19290 = r19285 / r19289;
        float r19291 = r19275 * r19290;
        float r19292 = r19278 + r19291;
        float r19293 = r19275 * r19292;
        float r19294 = r19277 + r19293;
        float r19295 = r19275 * r19294;
        float r19296 = r19276 + r19295;
        float r19297 = r19275 * r19296;
        float r19298 = r19272 * r19272;
        float r19299 = -r19298;
        float r19300 = exp(r19299);
        float r19301 = r19297 * r19300;
        float r19302 = r19269 - r19301;
        return r19302;
}

double f_od(double x) {
        double r19303 = 1.0;
        double r19304 = 0.32759109139442444;
        double r19305 = x;
        double r19306 = fabs(r19305);
        double r19307 = r19304 * r19306;
        double r19308 = r19303 + r19307;
        double r19309 = r19303 / r19308;
        double r19310 = 0.2548295855522156;
        double r19311 = -0.2844967246055603;
        double r19312 = 1.421413779258728;
        double r19313 = -1.453152060508728;
        double r19314 = r19313 * r19313;
        double r19315 = 1.0614054203033447;
        double r19316 = r19309 * r19315;
        double r19317 = r19316 * r19316;
        double r19318 = r19314 - r19317;
        double r19319 = pow(r19318, r19303);
        double r19320 = r19306 * r19304;
        double r19321 = r19303 + r19320;
        double r19322 = r19315 / r19321;
        double r19323 = r19313 - r19322;
        double r19324 = r19319 / r19323;
        double r19325 = r19309 * r19324;
        double r19326 = r19312 + r19325;
        double r19327 = r19309 * r19326;
        double r19328 = r19311 + r19327;
        double r19329 = r19309 * r19328;
        double r19330 = r19310 + r19329;
        double r19331 = r19309 * r19330;
        double r19332 = r19306 * r19306;
        double r19333 = -r19332;
        double r19334 = exp(r19333);
        double r19335 = r19331 * r19334;
        double r19336 = r19303 - r19335;
        return r19336;
}

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 r19337, r19338, r19339, r19340, r19341, r19342, r19343, r19344, r19345, r19346, r19347, r19348, r19349, r19350, r19351, r19352, r19353, r19354, r19355, r19356, r19357, r19358, r19359, r19360, r19361, r19362;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19337, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19338, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19339);
        mpfr_init(r19340);
        mpfr_init(r19341);
        mpfr_init(r19342);
        mpfr_init(r19343);
        mpfr_init_set_str(r19344, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19345, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19346, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19347, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19348, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19349);
        mpfr_init(r19350);
        mpfr_init(r19351);
        mpfr_init(r19352);
        mpfr_init(r19353);
        mpfr_init(r19354);
        mpfr_init(r19355);
        mpfr_init(r19356);
        mpfr_init(r19357);
        mpfr_init(r19358);
        mpfr_init(r19359);
        mpfr_init(r19360);
        mpfr_init(r19361);
        mpfr_init(r19362);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19339, x, MPFR_RNDN);
        mpfr_abs(r19340, r19339, MPFR_RNDN);
        mpfr_mul(r19341, r19338, r19340, MPFR_RNDN);
        mpfr_add(r19342, r19337, r19341, MPFR_RNDN);
        mpfr_div(r19343, r19337, r19342, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19349, r19343, r19348, MPFR_RNDN);
        mpfr_add(r19350, r19347, r19349, MPFR_RNDN);
        mpfr_mul(r19351, r19343, r19350, MPFR_RNDN);
        mpfr_add(r19352, r19346, r19351, MPFR_RNDN);
        mpfr_mul(r19353, r19343, r19352, MPFR_RNDN);
        mpfr_add(r19354, r19345, r19353, MPFR_RNDN);
        mpfr_mul(r19355, r19343, r19354, MPFR_RNDN);
        mpfr_add(r19356, r19344, r19355, MPFR_RNDN);
        mpfr_mul(r19357, r19343, r19356, MPFR_RNDN);
        mpfr_mul(r19358, r19340, r19340, MPFR_RNDN);
        mpfr_neg(r19359, r19358, MPFR_RNDN);
        mpfr_exp(r19360, r19359, MPFR_RNDN);
        mpfr_mul(r19361, r19357, r19360, MPFR_RNDN);
        mpfr_sub(r19362, r19337, r19361, MPFR_RNDN);
        return mpfr_get_d(r19362, MPFR_RNDN);
}

static mpfr_t r19363, r19364, r19365, r19366, r19367, r19368, r19369, r19370, r19371, r19372, r19373, r19374, r19375, r19376, r19377, r19378, r19379, r19380, r19381, r19382, r19383, r19384, r19385, r19386, r19387, r19388, r19389, r19390, r19391, r19392, r19393, r19394, r19395, r19396;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19363, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19364, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19365);
        mpfr_init(r19366);
        mpfr_init(r19367);
        mpfr_init(r19368);
        mpfr_init(r19369);
        mpfr_init_set_str(r19370, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19371, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19372, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19373, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19374);
        mpfr_init_set_str(r19375, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19376);
        mpfr_init(r19377);
        mpfr_init(r19378);
        mpfr_init(r19379);
        mpfr_init(r19380);
        mpfr_init(r19381);
        mpfr_init(r19382);
        mpfr_init(r19383);
        mpfr_init(r19384);
        mpfr_init(r19385);
        mpfr_init(r19386);
        mpfr_init(r19387);
        mpfr_init(r19388);
        mpfr_init(r19389);
        mpfr_init(r19390);
        mpfr_init(r19391);
        mpfr_init(r19392);
        mpfr_init(r19393);
        mpfr_init(r19394);
        mpfr_init(r19395);
        mpfr_init(r19396);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19365, x, MPFR_RNDN);
        mpfr_abs(r19366, r19365, MPFR_RNDN);
        mpfr_mul(r19367, r19364, r19366, MPFR_RNDN);
        mpfr_add(r19368, r19363, r19367, MPFR_RNDN);
        mpfr_div(r19369, r19363, r19368, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19374, r19373, MPFR_RNDN);
        ;
        mpfr_mul(r19376, r19369, r19375, MPFR_RNDN);
        mpfr_sqr(r19377, r19376, MPFR_RNDN);
        mpfr_sub(r19378, r19374, r19377, MPFR_RNDN);
        mpfr_pow(r19379, r19378, r19363, MPFR_RNDN);
        mpfr_mul(r19380, r19366, r19364, MPFR_RNDN);
        mpfr_add(r19381, r19363, r19380, MPFR_RNDN);
        mpfr_div(r19382, r19375, r19381, MPFR_RNDN);
        mpfr_sub(r19383, r19373, r19382, MPFR_RNDN);
        mpfr_div(r19384, r19379, r19383, MPFR_RNDN);
        mpfr_mul(r19385, r19369, r19384, MPFR_RNDN);
        mpfr_add(r19386, r19372, r19385, MPFR_RNDN);
        mpfr_mul(r19387, r19369, r19386, MPFR_RNDN);
        mpfr_add(r19388, r19371, r19387, MPFR_RNDN);
        mpfr_mul(r19389, r19369, r19388, MPFR_RNDN);
        mpfr_add(r19390, r19370, r19389, MPFR_RNDN);
        mpfr_mul(r19391, r19369, r19390, MPFR_RNDN);
        mpfr_mul(r19392, r19366, r19366, MPFR_RNDN);
        mpfr_neg(r19393, r19392, MPFR_RNDN);
        mpfr_exp(r19394, r19393, MPFR_RNDN);
        mpfr_mul(r19395, r19391, r19394, MPFR_RNDN);
        mpfr_sub(r19396, r19363, r19395, MPFR_RNDN);
        return mpfr_get_d(r19396, MPFR_RNDN);
}

static mpfr_t r19397, r19398, r19399, r19400, r19401, r19402, r19403, r19404, r19405, r19406, r19407, r19408, r19409, r19410, r19411, r19412, r19413, r19414, r19415, r19416, r19417, r19418, r19419, r19420, r19421, r19422, r19423, r19424, r19425, r19426, r19427, r19428, r19429, r19430;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19397, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19398, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19399);
        mpfr_init(r19400);
        mpfr_init(r19401);
        mpfr_init(r19402);
        mpfr_init(r19403);
        mpfr_init_set_str(r19404, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19405, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19406, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19407, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19408);
        mpfr_init_set_str(r19409, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19410);
        mpfr_init(r19411);
        mpfr_init(r19412);
        mpfr_init(r19413);
        mpfr_init(r19414);
        mpfr_init(r19415);
        mpfr_init(r19416);
        mpfr_init(r19417);
        mpfr_init(r19418);
        mpfr_init(r19419);
        mpfr_init(r19420);
        mpfr_init(r19421);
        mpfr_init(r19422);
        mpfr_init(r19423);
        mpfr_init(r19424);
        mpfr_init(r19425);
        mpfr_init(r19426);
        mpfr_init(r19427);
        mpfr_init(r19428);
        mpfr_init(r19429);
        mpfr_init(r19430);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19399, x, MPFR_RNDN);
        mpfr_abs(r19400, r19399, MPFR_RNDN);
        mpfr_mul(r19401, r19398, r19400, MPFR_RNDN);
        mpfr_add(r19402, r19397, r19401, MPFR_RNDN);
        mpfr_div(r19403, r19397, r19402, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r19408, r19407, MPFR_RNDN);
        ;
        mpfr_mul(r19410, r19403, r19409, MPFR_RNDN);
        mpfr_sqr(r19411, r19410, MPFR_RNDN);
        mpfr_sub(r19412, r19408, r19411, MPFR_RNDN);
        mpfr_pow(r19413, r19412, r19397, MPFR_RNDN);
        mpfr_mul(r19414, r19400, r19398, MPFR_RNDN);
        mpfr_add(r19415, r19397, r19414, MPFR_RNDN);
        mpfr_div(r19416, r19409, r19415, MPFR_RNDN);
        mpfr_sub(r19417, r19407, r19416, MPFR_RNDN);
        mpfr_div(r19418, r19413, r19417, MPFR_RNDN);
        mpfr_mul(r19419, r19403, r19418, MPFR_RNDN);
        mpfr_add(r19420, r19406, r19419, MPFR_RNDN);
        mpfr_mul(r19421, r19403, r19420, MPFR_RNDN);
        mpfr_add(r19422, r19405, r19421, MPFR_RNDN);
        mpfr_mul(r19423, r19403, r19422, MPFR_RNDN);
        mpfr_add(r19424, r19404, r19423, MPFR_RNDN);
        mpfr_mul(r19425, r19403, r19424, MPFR_RNDN);
        mpfr_mul(r19426, r19400, r19400, MPFR_RNDN);
        mpfr_neg(r19427, r19426, MPFR_RNDN);
        mpfr_exp(r19428, r19427, MPFR_RNDN);
        mpfr_mul(r19429, r19425, r19428, MPFR_RNDN);
        mpfr_sub(r19430, r19397, r19429, MPFR_RNDN);
        return mpfr_get_d(r19430, MPFR_RNDN);
}

