#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 r19041 = 1.0f;
        float r19042 = 0.32759109139442444f;
        float r19043 = x;
        float r19044 = fabs(r19043);
        float r19045 = r19042 * r19044;
        float r19046 = r19041 + r19045;
        float r19047 = r19041 / r19046;
        float r19048 = 0.2548295855522156f;
        float r19049 = -0.2844967246055603f;
        float r19050 = 1.421413779258728f;
        float r19051 = -1.453152060508728f;
        float r19052 = 1.0614054203033447f;
        float r19053 = r19047 * r19052;
        float r19054 = r19051 + r19053;
        float r19055 = r19047 * r19054;
        float r19056 = r19050 + r19055;
        float r19057 = r19047 * r19056;
        float r19058 = r19049 + r19057;
        float r19059 = r19047 * r19058;
        float r19060 = r19048 + r19059;
        float r19061 = r19047 * r19060;
        float r19062 = r19044 * r19044;
        float r19063 = -r19062;
        float r19064 = exp(r19063);
        float r19065 = r19061 * r19064;
        float r19066 = r19041 - r19065;
        return r19066;
}

double f_id(double x) {
        double r19067 = 1.0;
        double r19068 = 0.32759109139442444;
        double r19069 = x;
        double r19070 = fabs(r19069);
        double r19071 = r19068 * r19070;
        double r19072 = r19067 + r19071;
        double r19073 = r19067 / r19072;
        double r19074 = 0.2548295855522156;
        double r19075 = -0.2844967246055603;
        double r19076 = 1.421413779258728;
        double r19077 = -1.453152060508728;
        double r19078 = 1.0614054203033447;
        double r19079 = r19073 * r19078;
        double r19080 = r19077 + r19079;
        double r19081 = r19073 * r19080;
        double r19082 = r19076 + r19081;
        double r19083 = r19073 * r19082;
        double r19084 = r19075 + r19083;
        double r19085 = r19073 * r19084;
        double r19086 = r19074 + r19085;
        double r19087 = r19073 * r19086;
        double r19088 = r19070 * r19070;
        double r19089 = -r19088;
        double r19090 = exp(r19089);
        double r19091 = r19087 * r19090;
        double r19092 = r19067 - r19091;
        return r19092;
}


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

double f_od(double x) {
        double r19130 = 1.0;
        double r19131 = x;
        double r19132 = fabs(r19131);
        double r19133 = 0.32759109139442444;
        double r19134 = r19132 * r19133;
        double r19135 = r19134 + r19130;
        double r19136 = r19130 / r19135;
        double r19137 = 0.2548295855522156;
        double r19138 = -0.2844967246055603;
        double r19139 = r19138 / r19135;
        double r19140 = r19137 + r19139;
        double r19141 = r19136 * r19136;
        double r19142 = 1.421413779258728;
        double r19143 = -1.453152060508728;
        double r19144 = r19143 * r19143;
        double r19145 = 1.0614054203033447;
        double r19146 = r19145 / r19135;
        double r19147 = r19146 * r19146;
        double r19148 = r19144 + r19147;
        double r19149 = r19136 / r19148;
        double r19150 = r19144 * r19144;
        double r19151 = 1.2691859006881714;
        double r19152 = 4.0;
        double r19153 = pow(r19135, r19152);
        double r19154 = r19151 / r19153;
        double r19155 = r19150 - r19154;
        double r19156 = r19143 - r19146;
        double r19157 = r19155 / r19156;
        double r19158 = r19149 * r19157;
        double r19159 = r19142 + r19158;
        double r19160 = r19141 * r19159;
        double r19161 = r19140 + r19160;
        double r19162 = r19136 * r19161;
        double r19163 = r19132 * r19132;
        double r19164 = exp(r19163);
        double r19165 = r19162 / r19164;
        double r19166 = r19130 - r19165;
        return r19166;
}

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 r19167, r19168, r19169, r19170, r19171, r19172, r19173, r19174, r19175, r19176, r19177, r19178, r19179, r19180, r19181, r19182, r19183, r19184, r19185, r19186, r19187, r19188, r19189, r19190, r19191, r19192;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19167, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19168, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19169);
        mpfr_init(r19170);
        mpfr_init(r19171);
        mpfr_init(r19172);
        mpfr_init(r19173);
        mpfr_init_set_str(r19174, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19175, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r19176, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19177, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r19178, "1.061405429", 10, MPFR_RNDN);
        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);
        mpfr_init(r19188);
        mpfr_init(r19189);
        mpfr_init(r19190);
        mpfr_init(r19191);
        mpfr_init(r19192);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r19169, x, MPFR_RNDN);
        mpfr_abs(r19170, r19169, MPFR_RNDN);
        mpfr_mul(r19171, r19168, r19170, MPFR_RNDN);
        mpfr_add(r19172, r19167, r19171, MPFR_RNDN);
        mpfr_div(r19173, r19167, r19172, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r19179, r19173, r19178, MPFR_RNDN);
        mpfr_add(r19180, r19177, r19179, MPFR_RNDN);
        mpfr_mul(r19181, r19173, r19180, MPFR_RNDN);
        mpfr_add(r19182, r19176, r19181, MPFR_RNDN);
        mpfr_mul(r19183, r19173, r19182, MPFR_RNDN);
        mpfr_add(r19184, r19175, r19183, MPFR_RNDN);
        mpfr_mul(r19185, r19173, r19184, MPFR_RNDN);
        mpfr_add(r19186, r19174, r19185, MPFR_RNDN);
        mpfr_mul(r19187, r19173, r19186, MPFR_RNDN);
        mpfr_mul(r19188, r19170, r19170, MPFR_RNDN);
        mpfr_neg(r19189, r19188, MPFR_RNDN);
        mpfr_exp(r19190, r19189, MPFR_RNDN);
        mpfr_mul(r19191, r19187, r19190, MPFR_RNDN);
        mpfr_sub(r19192, r19167, r19191, MPFR_RNDN);
        return mpfr_get_d(r19192, MPFR_RNDN);
}

static mpfr_t 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, r19223, r19224, r19225, r19226, r19227, r19228, r19229;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19193, "1", 10, MPFR_RNDN);
        mpfr_init(r19194);
        mpfr_init(r19195);
        mpfr_init_set_str(r19196, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19197);
        mpfr_init(r19198);
        mpfr_init(r19199);
        mpfr_init_set_str(r19200, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19201, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r19202);
        mpfr_init(r19203);
        mpfr_init(r19204);
        mpfr_init_set_str(r19205, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19206, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19207);
        mpfr_init_set_str(r19208, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19209);
        mpfr_init(r19210);
        mpfr_init(r19211);
        mpfr_init(r19212);
        mpfr_init(r19213);
        mpfr_init_set_str(r19214, "1.2691858416929063", 10, MPFR_RNDN);
        mpfr_init_set_str(r19215, "4", 10, MPFR_RNDN);
        mpfr_init(r19216);
        mpfr_init(r19217);
        mpfr_init(r19218);
        mpfr_init(r19219);
        mpfr_init(r19220);
        mpfr_init(r19221);
        mpfr_init(r19222);
        mpfr_init(r19223);
        mpfr_init(r19224);
        mpfr_init(r19225);
        mpfr_init(r19226);
        mpfr_init(r19227);
        mpfr_init(r19228);
        mpfr_init(r19229);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r19194, x, MPFR_RNDN);
        mpfr_abs(r19195, r19194, MPFR_RNDN);
        ;
        mpfr_mul(r19197, r19195, r19196, MPFR_RNDN);
        mpfr_add(r19198, r19197, r19193, MPFR_RNDN);
        mpfr_div(r19199, r19193, r19198, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19202, r19201, r19198, MPFR_RNDN);
        mpfr_add(r19203, r19200, r19202, MPFR_RNDN);
        mpfr_sqr(r19204, r19199, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19207, r19206, r19206, MPFR_RNDN);
        ;
        mpfr_div(r19209, r19208, r19198, MPFR_RNDN);
        mpfr_mul(r19210, r19209, r19209, MPFR_RNDN);
        mpfr_add(r19211, r19207, r19210, MPFR_RNDN);
        mpfr_div(r19212, r19199, r19211, MPFR_RNDN);
        mpfr_sqr(r19213, r19207, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r19216, r19198, r19215, MPFR_RNDN);
        mpfr_div(r19217, r19214, r19216, MPFR_RNDN);
        mpfr_sub(r19218, r19213, r19217, MPFR_RNDN);
        mpfr_sub(r19219, r19206, r19209, MPFR_RNDN);
        mpfr_div(r19220, r19218, r19219, MPFR_RNDN);
        mpfr_mul(r19221, r19212, r19220, MPFR_RNDN);
        mpfr_add(r19222, r19205, r19221, MPFR_RNDN);
        mpfr_mul(r19223, r19204, r19222, MPFR_RNDN);
        mpfr_add(r19224, r19203, r19223, MPFR_RNDN);
        mpfr_mul(r19225, r19199, r19224, MPFR_RNDN);
        mpfr_mul(r19226, r19195, r19195, MPFR_RNDN);
        mpfr_exp(r19227, r19226, MPFR_RNDN);
        mpfr_div(r19228, r19225, r19227, MPFR_RNDN);
        mpfr_sub(r19229, r19193, r19228, MPFR_RNDN);
        return mpfr_get_d(r19229, MPFR_RNDN);
}

static mpfr_t r19230, r19231, r19232, r19233, r19234, r19235, r19236, r19237, r19238, r19239, r19240, r19241, r19242, r19243, r19244, r19245, r19246, r19247, r19248, r19249, r19250, r19251, r19252, r19253, r19254, r19255, r19256, r19257, r19258, r19259, r19260, r19261, r19262, r19263, r19264, r19265, r19266;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19230, "1", 10, MPFR_RNDN);
        mpfr_init(r19231);
        mpfr_init(r19232);
        mpfr_init_set_str(r19233, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r19234);
        mpfr_init(r19235);
        mpfr_init(r19236);
        mpfr_init_set_str(r19237, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r19238, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init(r19239);
        mpfr_init(r19240);
        mpfr_init(r19241);
        mpfr_init_set_str(r19242, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r19243, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r19244);
        mpfr_init_set_str(r19245, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r19246);
        mpfr_init(r19247);
        mpfr_init(r19248);
        mpfr_init(r19249);
        mpfr_init(r19250);
        mpfr_init_set_str(r19251, "1.2691858416929063", 10, MPFR_RNDN);
        mpfr_init_set_str(r19252, "4", 10, MPFR_RNDN);
        mpfr_init(r19253);
        mpfr_init(r19254);
        mpfr_init(r19255);
        mpfr_init(r19256);
        mpfr_init(r19257);
        mpfr_init(r19258);
        mpfr_init(r19259);
        mpfr_init(r19260);
        mpfr_init(r19261);
        mpfr_init(r19262);
        mpfr_init(r19263);
        mpfr_init(r19264);
        mpfr_init(r19265);
        mpfr_init(r19266);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r19231, x, MPFR_RNDN);
        mpfr_abs(r19232, r19231, MPFR_RNDN);
        ;
        mpfr_mul(r19234, r19232, r19233, MPFR_RNDN);
        mpfr_add(r19235, r19234, r19230, MPFR_RNDN);
        mpfr_div(r19236, r19230, r19235, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19239, r19238, r19235, MPFR_RNDN);
        mpfr_add(r19240, r19237, r19239, MPFR_RNDN);
        mpfr_sqr(r19241, r19236, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19244, r19243, r19243, MPFR_RNDN);
        ;
        mpfr_div(r19246, r19245, r19235, MPFR_RNDN);
        mpfr_mul(r19247, r19246, r19246, MPFR_RNDN);
        mpfr_add(r19248, r19244, r19247, MPFR_RNDN);
        mpfr_div(r19249, r19236, r19248, MPFR_RNDN);
        mpfr_sqr(r19250, r19244, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r19253, r19235, r19252, MPFR_RNDN);
        mpfr_div(r19254, r19251, r19253, MPFR_RNDN);
        mpfr_sub(r19255, r19250, r19254, MPFR_RNDN);
        mpfr_sub(r19256, r19243, r19246, MPFR_RNDN);
        mpfr_div(r19257, r19255, r19256, MPFR_RNDN);
        mpfr_mul(r19258, r19249, r19257, MPFR_RNDN);
        mpfr_add(r19259, r19242, r19258, MPFR_RNDN);
        mpfr_mul(r19260, r19241, r19259, MPFR_RNDN);
        mpfr_add(r19261, r19240, r19260, MPFR_RNDN);
        mpfr_mul(r19262, r19236, r19261, MPFR_RNDN);
        mpfr_mul(r19263, r19232, r19232, MPFR_RNDN);
        mpfr_exp(r19264, r19263, MPFR_RNDN);
        mpfr_div(r19265, r19262, r19264, MPFR_RNDN);
        mpfr_sub(r19266, r19230, r19265, MPFR_RNDN);
        return mpfr_get_d(r19266, MPFR_RNDN);
}

