#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 r19233 = 1.0f;
        float r19234 = 0.3275911f;
        float r19235 = x;
        float r19236 = fabs(r19235);
        float r19237 = r19234 * r19236;
        float r19238 = r19233 + r19237;
        float r19239 = r19233 / r19238;
        float r19240 = 0.254829592f;
        float r19241 = -0.284496736f;
        float r19242 = 1.421413741f;
        float r19243 = -1.453152027f;
        float r19244 = 1.061405429f;
        float r19245 = r19239 * r19244;
        float r19246 = r19243 + r19245;
        float r19247 = r19239 * r19246;
        float r19248 = r19242 + r19247;
        float r19249 = r19239 * r19248;
        float r19250 = r19241 + r19249;
        float r19251 = r19239 * r19250;
        float r19252 = r19240 + r19251;
        float r19253 = r19239 * r19252;
        float r19254 = r19236 * r19236;
        float r19255 = -r19254;
        float r19256 = exp(r19255);
        float r19257 = r19253 * r19256;
        float r19258 = r19233 - r19257;
        return r19258;
}

double f_id(double x) {
        double r19259 = 1.0;
        double r19260 = 0.3275911;
        double r19261 = x;
        double r19262 = fabs(r19261);
        double r19263 = r19260 * r19262;
        double r19264 = r19259 + r19263;
        double r19265 = r19259 / r19264;
        double r19266 = 0.254829592;
        double r19267 = -0.284496736;
        double r19268 = 1.421413741;
        double r19269 = -1.453152027;
        double r19270 = 1.061405429;
        double r19271 = r19265 * r19270;
        double r19272 = r19269 + r19271;
        double r19273 = r19265 * r19272;
        double r19274 = r19268 + r19273;
        double r19275 = r19265 * r19274;
        double r19276 = r19267 + r19275;
        double r19277 = r19265 * r19276;
        double r19278 = r19266 + r19277;
        double r19279 = r19265 * r19278;
        double r19280 = r19262 * r19262;
        double r19281 = -r19280;
        double r19282 = exp(r19281);
        double r19283 = r19279 * r19282;
        double r19284 = r19259 - r19283;
        return r19284;
}


double f_of(float x) {
        float r19285 = 1.0f;
        float r19286 = 0.3275911f;
        float r19287 = x;
        float r19288 = fabs(r19287);
        float r19289 = r19286 * r19288;
        float r19290 = r19285 + r19289;
        float r19291 = r19285 / r19290;
        float r19292 = 0.254829592f;
        float r19293 = sqrt(r19291);
        float r19294 = r19293 * r19293;
        float r19295 = -0.284496736f;
        float r19296 = 1.421413741f;
        float r19297 = cbrt(r19291);
        float r19298 = r19297 * (r19297 * r19297);
        float r19299 = -1.453152027f;
        float r19300 = 1.061405429f;
        float r19301 = r19291 * r19300;
        float r19302 = r19299 + r19301;
        float r19303 = r19298 * r19302;
        float r19304 = r19296 + r19303;
        float r19305 = r19291 * r19304;
        float r19306 = r19295 + r19305;
        float r19307 = r19294 * r19306;
        float r19308 = r19292 + r19307;
        float r19309 = r19291 * r19308;
        float r19310 = r19288 * r19288;
        float r19311 = -r19310;
        float r19312 = exp(r19311);
        float r19313 = r19309 * r19312;
        float r19314 = r19285 - r19313;
        return r19314;
}

double f_od(double x) {
        double r19315 = 1.0;
        double r19316 = 0.3275911;
        double r19317 = x;
        double r19318 = fabs(r19317);
        double r19319 = r19316 * r19318;
        double r19320 = r19315 + r19319;
        double r19321 = r19315 / r19320;
        double r19322 = 0.254829592;
        double r19323 = sqrt(r19321);
        double r19324 = r19323 * r19323;
        double r19325 = -0.284496736;
        double r19326 = 1.421413741;
        double r19327 = cbrt(r19321);
        double r19328 = r19327 * (r19327 * r19327);
        double r19329 = -1.453152027;
        double r19330 = 1.061405429;
        double r19331 = r19321 * r19330;
        double r19332 = r19329 + r19331;
        double r19333 = r19328 * r19332;
        double r19334 = r19326 + r19333;
        double r19335 = r19321 * r19334;
        double r19336 = r19325 + r19335;
        double r19337 = r19324 * r19336;
        double r19338 = r19322 + r19337;
        double r19339 = r19321 * r19338;
        double r19340 = r19318 * r19318;
        double r19341 = -r19340;
        double r19342 = exp(r19341);
        double r19343 = r19339 * r19342;
        double r19344 = r19315 - r19343;
        return r19344;
}

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 r19345, r19346, r19347, r19348, r19349, r19350, r19351, r19352, r19353, r19354, r19355, r19356, r19357, r19358, r19359, r19360, r19361, r19362, r19363, r19364, r19365, r19366, r19367, r19368, r19369, r19370;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19345, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19346, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19347);
        mpfr_init(r19348);
        mpfr_init(r19349);
        mpfr_init(r19350);
        mpfr_init(r19351);
        mpfr_init_set_str(r19352, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19353, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19354, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19355, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19356, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19357);
        mpfr_init(r19358);
        mpfr_init(r19359);
        mpfr_init(r19360);
        mpfr_init(r19361);
        mpfr_init(r19362);
        mpfr_init(r19363);
        mpfr_init(r19364);
        mpfr_init(r19365);
        mpfr_init(r19366);
        mpfr_init(r19367);
        mpfr_init(r19368);
        mpfr_init(r19369);
        mpfr_init(r19370);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19347, x, MPFR_RNDN);
        mpfr_abs(r19348, r19347, MPFR_RNDN);
        mpfr_mul(r19349, r19346, r19348, MPFR_RNDN);
        mpfr_add(r19350, r19345, r19349, MPFR_RNDN);
        mpfr_div(r19351, r19345, r19350, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19357, r19351, r19356, MPFR_RNDN);
        mpfr_add(r19358, r19355, r19357, MPFR_RNDN);
        mpfr_mul(r19359, r19351, r19358, MPFR_RNDN);
        mpfr_add(r19360, r19354, r19359, MPFR_RNDN);
        mpfr_mul(r19361, r19351, r19360, MPFR_RNDN);
        mpfr_add(r19362, r19353, r19361, MPFR_RNDN);
        mpfr_mul(r19363, r19351, r19362, MPFR_RNDN);
        mpfr_add(r19364, r19352, r19363, MPFR_RNDN);
        mpfr_mul(r19365, r19351, r19364, MPFR_RNDN);
        mpfr_mul(r19366, r19348, r19348, MPFR_RNDN);
        mpfr_neg(r19367, r19366, MPFR_RNDN);
        mpfr_exp(r19368, r19367, MPFR_RNDN);
        mpfr_mul(r19369, r19365, r19368, MPFR_RNDN);
        mpfr_sub(r19370, r19345, r19369, MPFR_RNDN);
        return mpfr_get_d(r19370, MPFR_RNDN);
}

static mpfr_t 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, r19397, r19398, r19399, r19400;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19371, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19372, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19373);
        mpfr_init(r19374);
        mpfr_init(r19375);
        mpfr_init(r19376);
        mpfr_init(r19377);
        mpfr_init_set_str(r19378, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r19379);
        mpfr_init(r19380);
        mpfr_init_set_str(r19381, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19382, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r19383);
        mpfr_init(r19384);
        mpfr_init_set_str(r19385, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19386, "1.061405429", 10, MPFR_RNDN);
        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);
        mpfr_init(r19397);
        mpfr_init(r19398);
        mpfr_init(r19399);
        mpfr_init(r19400);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19373, x, MPFR_RNDN);
        mpfr_abs(r19374, r19373, MPFR_RNDN);
        mpfr_mul(r19375, r19372, r19374, MPFR_RNDN);
        mpfr_add(r19376, r19371, r19375, MPFR_RNDN);
        mpfr_div(r19377, r19371, r19376, MPFR_RNDN);
        ;
        mpfr_sqrt(r19379, r19377, MPFR_RNDN);
        mpfr_sqr(r19380, r19379, MPFR_RNDN);
        ;
        ;
        mpfr_cbrt(r19383, r19377, MPFR_RNDN);
        mpfr_mul(r19384, r19383, r19383, MPFR_RNDN); mpfr_mul(r19384, r19384, r19383, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19387, r19377, r19386, MPFR_RNDN);
        mpfr_add(r19388, r19385, r19387, MPFR_RNDN);
        mpfr_mul(r19389, r19384, r19388, MPFR_RNDN);
        mpfr_add(r19390, r19382, r19389, MPFR_RNDN);
        mpfr_mul(r19391, r19377, r19390, MPFR_RNDN);
        mpfr_add(r19392, r19381, r19391, MPFR_RNDN);
        mpfr_mul(r19393, r19380, r19392, MPFR_RNDN);
        mpfr_add(r19394, r19378, r19393, MPFR_RNDN);
        mpfr_mul(r19395, r19377, r19394, MPFR_RNDN);
        mpfr_mul(r19396, r19374, r19374, MPFR_RNDN);
        mpfr_neg(r19397, r19396, MPFR_RNDN);
        mpfr_exp(r19398, r19397, MPFR_RNDN);
        mpfr_mul(r19399, r19395, r19398, MPFR_RNDN);
        mpfr_sub(r19400, r19371, r19399, MPFR_RNDN);
        return mpfr_get_d(r19400, MPFR_RNDN);
}

static mpfr_t 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(r19401, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19402, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19403);
        mpfr_init(r19404);
        mpfr_init(r19405);
        mpfr_init(r19406);
        mpfr_init(r19407);
        mpfr_init_set_str(r19408, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r19409);
        mpfr_init(r19410);
        mpfr_init_set_str(r19411, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19412, "1.421413741", 10, MPFR_RNDN);
        mpfr_init(r19413);
        mpfr_init(r19414);
        mpfr_init_set_str(r19415, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19416, "1.061405429", 10, MPFR_RNDN);
        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(r19403, x, MPFR_RNDN);
        mpfr_abs(r19404, r19403, MPFR_RNDN);
        mpfr_mul(r19405, r19402, r19404, MPFR_RNDN);
        mpfr_add(r19406, r19401, r19405, MPFR_RNDN);
        mpfr_div(r19407, r19401, r19406, MPFR_RNDN);
        ;
        mpfr_sqrt(r19409, r19407, MPFR_RNDN);
        mpfr_sqr(r19410, r19409, MPFR_RNDN);
        ;
        ;
        mpfr_cbrt(r19413, r19407, MPFR_RNDN);
        mpfr_mul(r19414, r19413, r19413, MPFR_RNDN); mpfr_mul(r19414, r19414, r19413, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19417, r19407, r19416, MPFR_RNDN);
        mpfr_add(r19418, r19415, r19417, MPFR_RNDN);
        mpfr_mul(r19419, r19414, r19418, MPFR_RNDN);
        mpfr_add(r19420, r19412, r19419, MPFR_RNDN);
        mpfr_mul(r19421, r19407, r19420, MPFR_RNDN);
        mpfr_add(r19422, r19411, r19421, MPFR_RNDN);
        mpfr_mul(r19423, r19410, r19422, MPFR_RNDN);
        mpfr_add(r19424, r19408, r19423, MPFR_RNDN);
        mpfr_mul(r19425, r19407, r19424, MPFR_RNDN);
        mpfr_mul(r19426, r19404, r19404, MPFR_RNDN);
        mpfr_neg(r19427, r19426, MPFR_RNDN);
        mpfr_exp(r19428, r19427, MPFR_RNDN);
        mpfr_mul(r19429, r19425, r19428, MPFR_RNDN);
        mpfr_sub(r19430, r19401, r19429, MPFR_RNDN);
        return mpfr_get_d(r19430, MPFR_RNDN);
}

