#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 r19005 = 1.0f;
        float r19006 = 0.32759109139442444f;
        float r19007 = x;
        float r19008 = fabs(r19007);
        float r19009 = r19006 * r19008;
        float r19010 = r19005 + r19009;
        float r19011 = r19005 / r19010;
        float r19012 = 0.2548295855522156f;
        float r19013 = -0.2844967246055603f;
        float r19014 = 1.421413779258728f;
        float r19015 = -1.453152060508728f;
        float r19016 = 1.0614054203033447f;
        float r19017 = r19011 * r19016;
        float r19018 = r19015 + r19017;
        float r19019 = r19011 * r19018;
        float r19020 = r19014 + r19019;
        float r19021 = r19011 * r19020;
        float r19022 = r19013 + r19021;
        float r19023 = r19011 * r19022;
        float r19024 = r19012 + r19023;
        float r19025 = r19011 * r19024;
        float r19026 = r19008 * r19008;
        float r19027 = -r19026;
        float r19028 = exp(r19027);
        float r19029 = r19025 * r19028;
        float r19030 = r19005 - r19029;
        return r19030;
}

double f_id(double x) {
        double r19031 = 1.0;
        double r19032 = 0.32759109139442444;
        double r19033 = x;
        double r19034 = fabs(r19033);
        double r19035 = r19032 * r19034;
        double r19036 = r19031 + r19035;
        double r19037 = r19031 / r19036;
        double r19038 = 0.2548295855522156;
        double r19039 = -0.2844967246055603;
        double r19040 = 1.421413779258728;
        double r19041 = -1.453152060508728;
        double r19042 = 1.0614054203033447;
        double r19043 = r19037 * r19042;
        double r19044 = r19041 + r19043;
        double r19045 = r19037 * r19044;
        double r19046 = r19040 + r19045;
        double r19047 = r19037 * r19046;
        double r19048 = r19039 + r19047;
        double r19049 = r19037 * r19048;
        double r19050 = r19038 + r19049;
        double r19051 = r19037 * r19050;
        double r19052 = r19034 * r19034;
        double r19053 = -r19052;
        double r19054 = exp(r19053);
        double r19055 = r19051 * r19054;
        double r19056 = r19031 - r19055;
        return r19056;
}


double f_of(float x) {
        float r19057 = 1.0f;
        float r19058 = 0.32759109139442444f;
        float r19059 = x;
        float r19060 = fabs(r19059);
        float r19061 = r19058 * r19060;
        float r19062 = r19057 + r19061;
        float r19063 = r19057 / r19062;
        float r19064 = 0.2548295855522156f;
        float r19065 = -0.2844967246055603f;
        float r19066 = 1.421413779258728f;
        float r19067 = -1.453152060508728f;
        float r19068 = fabs(r19067);
        float r19069 = r19068 * r19068;
        float r19070 = 1.0614054203033447f;
        float r19071 = r19063 * r19070;
        float r19072 = r19071 * r19071;
        float r19073 = r19069 - r19072;
        float r19074 = pow(r19073, r19057);
        float r19075 = r19060 * r19058;
        float r19076 = r19057 + r19075;
        float r19077 = r19070 / r19076;
        float r19078 = r19067 - r19077;
        float r19079 = r19074 / r19078;
        float r19080 = r19063 * r19079;
        float r19081 = r19066 + r19080;
        float r19082 = r19063 * r19081;
        float r19083 = r19065 + r19082;
        float r19084 = r19063 * r19083;
        float r19085 = r19064 + r19084;
        float r19086 = r19063 * r19085;
        float r19087 = r19060 * r19060;
        float r19088 = -r19087;
        float r19089 = exp(r19088);
        float r19090 = r19086 * r19089;
        float r19091 = r19057 - r19090;
        return r19091;
}

double f_od(double x) {
        double r19092 = 1.0;
        double r19093 = 0.32759109139442444;
        double r19094 = x;
        double r19095 = fabs(r19094);
        double r19096 = r19093 * r19095;
        double r19097 = r19092 + r19096;
        double r19098 = r19092 / r19097;
        double r19099 = 0.2548295855522156;
        double r19100 = -0.2844967246055603;
        double r19101 = 1.421413779258728;
        double r19102 = -1.453152060508728;
        double r19103 = fabs(r19102);
        double r19104 = r19103 * r19103;
        double r19105 = 1.0614054203033447;
        double r19106 = r19098 * r19105;
        double r19107 = r19106 * r19106;
        double r19108 = r19104 - r19107;
        double r19109 = pow(r19108, r19092);
        double r19110 = r19095 * r19093;
        double r19111 = r19092 + r19110;
        double r19112 = r19105 / r19111;
        double r19113 = r19102 - r19112;
        double r19114 = r19109 / r19113;
        double r19115 = r19098 * r19114;
        double r19116 = r19101 + r19115;
        double r19117 = r19098 * r19116;
        double r19118 = r19100 + r19117;
        double r19119 = r19098 * r19118;
        double r19120 = r19099 + r19119;
        double r19121 = r19098 * r19120;
        double r19122 = r19095 * r19095;
        double r19123 = -r19122;
        double r19124 = exp(r19123);
        double r19125 = r19121 * r19124;
        double r19126 = r19092 - r19125;
        return r19126;
}

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 r19127, r19128, r19129, r19130, r19131, r19132, r19133, r19134, r19135, r19136, r19137, r19138, r19139, r19140, r19141, r19142, r19143, r19144, r19145, r19146, r19147, r19148, r19149, r19150, r19151, r19152;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19127, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19128, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19129);
        mpfr_init(r19130);
        mpfr_init(r19131);
        mpfr_init(r19132);
        mpfr_init(r19133);
        mpfr_init_set_str(r19134, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19135, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19136, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19137, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19138, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19139);
        mpfr_init(r19140);
        mpfr_init(r19141);
        mpfr_init(r19142);
        mpfr_init(r19143);
        mpfr_init(r19144);
        mpfr_init(r19145);
        mpfr_init(r19146);
        mpfr_init(r19147);
        mpfr_init(r19148);
        mpfr_init(r19149);
        mpfr_init(r19150);
        mpfr_init(r19151);
        mpfr_init(r19152);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19129, x, MPFR_RNDN);
        mpfr_abs(r19130, r19129, MPFR_RNDN);
        mpfr_mul(r19131, r19128, r19130, MPFR_RNDN);
        mpfr_add(r19132, r19127, r19131, MPFR_RNDN);
        mpfr_div(r19133, r19127, r19132, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19139, r19133, r19138, MPFR_RNDN);
        mpfr_add(r19140, r19137, r19139, MPFR_RNDN);
        mpfr_mul(r19141, r19133, r19140, MPFR_RNDN);
        mpfr_add(r19142, r19136, r19141, MPFR_RNDN);
        mpfr_mul(r19143, r19133, r19142, MPFR_RNDN);
        mpfr_add(r19144, r19135, r19143, MPFR_RNDN);
        mpfr_mul(r19145, r19133, r19144, MPFR_RNDN);
        mpfr_add(r19146, r19134, r19145, MPFR_RNDN);
        mpfr_mul(r19147, r19133, r19146, MPFR_RNDN);
        mpfr_mul(r19148, r19130, r19130, MPFR_RNDN);
        mpfr_neg(r19149, r19148, MPFR_RNDN);
        mpfr_exp(r19150, r19149, MPFR_RNDN);
        mpfr_mul(r19151, r19147, r19150, MPFR_RNDN);
        mpfr_sub(r19152, r19127, r19151, MPFR_RNDN);
        return mpfr_get_d(r19152, MPFR_RNDN);
}

static mpfr_t r19153, r19154, r19155, r19156, r19157, r19158, r19159, r19160, r19161, r19162, r19163, r19164, r19165, r19166, r19167, r19168, r19169, r19170, r19171, r19172, r19173, r19174, r19175, r19176, r19177, r19178, r19179, r19180, r19181, r19182, r19183, r19184, r19185, r19186, r19187;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19153, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19154, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19155);
        mpfr_init(r19156);
        mpfr_init(r19157);
        mpfr_init(r19158);
        mpfr_init(r19159);
        mpfr_init_set_str(r19160, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19161, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19162, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19163, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19164);
        mpfr_init(r19165);
        mpfr_init_set_str(r19166, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19167);
        mpfr_init(r19168);
        mpfr_init(r19169);
        mpfr_init(r19170);
        mpfr_init(r19171);
        mpfr_init(r19172);
        mpfr_init(r19173);
        mpfr_init(r19174);
        mpfr_init(r19175);
        mpfr_init(r19176);
        mpfr_init(r19177);
        mpfr_init(r19178);
        mpfr_init(r19179);
        mpfr_init(r19180);
        mpfr_init(r19181);
        mpfr_init(r19182);
        mpfr_init(r19183);
        mpfr_init(r19184);
        mpfr_init(r19185);
        mpfr_init(r19186);
        mpfr_init(r19187);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r19155, x, MPFR_RNDN);
        mpfr_abs(r19156, r19155, MPFR_RNDN);
        mpfr_mul(r19157, r19154, r19156, MPFR_RNDN);
        mpfr_add(r19158, r19153, r19157, MPFR_RNDN);
        mpfr_div(r19159, r19153, r19158, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_abs(r19164, r19163, MPFR_RNDN);
        mpfr_sqr(r19165, r19164, MPFR_RNDN);
        ;
        mpfr_mul(r19167, r19159, r19166, MPFR_RNDN);
        mpfr_sqr(r19168, r19167, MPFR_RNDN);
        mpfr_sub(r19169, r19165, r19168, MPFR_RNDN);
        mpfr_pow(r19170, r19169, r19153, MPFR_RNDN);
        mpfr_mul(r19171, r19156, r19154, MPFR_RNDN);
        mpfr_add(r19172, r19153, r19171, MPFR_RNDN);
        mpfr_div(r19173, r19166, r19172, MPFR_RNDN);
        mpfr_sub(r19174, r19163, r19173, MPFR_RNDN);
        mpfr_div(r19175, r19170, r19174, MPFR_RNDN);
        mpfr_mul(r19176, r19159, r19175, MPFR_RNDN);
        mpfr_add(r19177, r19162, r19176, MPFR_RNDN);
        mpfr_mul(r19178, r19159, r19177, MPFR_RNDN);
        mpfr_add(r19179, r19161, r19178, MPFR_RNDN);
        mpfr_mul(r19180, r19159, r19179, MPFR_RNDN);
        mpfr_add(r19181, r19160, r19180, MPFR_RNDN);
        mpfr_mul(r19182, r19159, r19181, MPFR_RNDN);
        mpfr_mul(r19183, r19156, r19156, MPFR_RNDN);
        mpfr_neg(r19184, r19183, MPFR_RNDN);
        mpfr_exp(r19185, r19184, MPFR_RNDN);
        mpfr_mul(r19186, r19182, r19185, MPFR_RNDN);
        mpfr_sub(r19187, r19153, r19186, MPFR_RNDN);
        return mpfr_get_d(r19187, MPFR_RNDN);
}

static mpfr_t r19188, r19189, r19190, r19191, r19192, r19193, r19194, r19195, r19196, r19197, r19198, r19199, r19200, r19201, r19202, r19203, r19204, r19205, r19206, r19207, r19208, r19209, r19210, r19211, r19212, r19213, r19214, r19215, r19216, r19217, r19218, r19219, r19220, r19221, r19222;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19188, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19189, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19190);
        mpfr_init(r19191);
        mpfr_init(r19192);
        mpfr_init(r19193);
        mpfr_init(r19194);
        mpfr_init_set_str(r19195, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19196, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19197, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19198, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19199);
        mpfr_init(r19200);
        mpfr_init_set_str(r19201, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19202);
        mpfr_init(r19203);
        mpfr_init(r19204);
        mpfr_init(r19205);
        mpfr_init(r19206);
        mpfr_init(r19207);
        mpfr_init(r19208);
        mpfr_init(r19209);
        mpfr_init(r19210);
        mpfr_init(r19211);
        mpfr_init(r19212);
        mpfr_init(r19213);
        mpfr_init(r19214);
        mpfr_init(r19215);
        mpfr_init(r19216);
        mpfr_init(r19217);
        mpfr_init(r19218);
        mpfr_init(r19219);
        mpfr_init(r19220);
        mpfr_init(r19221);
        mpfr_init(r19222);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r19190, x, MPFR_RNDN);
        mpfr_abs(r19191, r19190, MPFR_RNDN);
        mpfr_mul(r19192, r19189, r19191, MPFR_RNDN);
        mpfr_add(r19193, r19188, r19192, MPFR_RNDN);
        mpfr_div(r19194, r19188, r19193, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_abs(r19199, r19198, MPFR_RNDN);
        mpfr_sqr(r19200, r19199, MPFR_RNDN);
        ;
        mpfr_mul(r19202, r19194, r19201, MPFR_RNDN);
        mpfr_sqr(r19203, r19202, MPFR_RNDN);
        mpfr_sub(r19204, r19200, r19203, MPFR_RNDN);
        mpfr_pow(r19205, r19204, r19188, MPFR_RNDN);
        mpfr_mul(r19206, r19191, r19189, MPFR_RNDN);
        mpfr_add(r19207, r19188, r19206, MPFR_RNDN);
        mpfr_div(r19208, r19201, r19207, MPFR_RNDN);
        mpfr_sub(r19209, r19198, r19208, MPFR_RNDN);
        mpfr_div(r19210, r19205, r19209, MPFR_RNDN);
        mpfr_mul(r19211, r19194, r19210, MPFR_RNDN);
        mpfr_add(r19212, r19197, r19211, MPFR_RNDN);
        mpfr_mul(r19213, r19194, r19212, MPFR_RNDN);
        mpfr_add(r19214, r19196, r19213, MPFR_RNDN);
        mpfr_mul(r19215, r19194, r19214, MPFR_RNDN);
        mpfr_add(r19216, r19195, r19215, MPFR_RNDN);
        mpfr_mul(r19217, r19194, r19216, MPFR_RNDN);
        mpfr_mul(r19218, r19191, r19191, MPFR_RNDN);
        mpfr_neg(r19219, r19218, MPFR_RNDN);
        mpfr_exp(r19220, r19219, MPFR_RNDN);
        mpfr_mul(r19221, r19217, r19220, MPFR_RNDN);
        mpfr_sub(r19222, r19188, r19221, MPFR_RNDN);
        return mpfr_get_d(r19222, MPFR_RNDN);
}

