#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 r19052 = 1.0f;
        float r19053 = atan2(1.0, 0.0);
        float r19054 = sqrt(r19053);
        float r19055 = r19052 / r19054;
        float r19056 = x;
        float r19057 = fabs(r19056);
        float r19058 = r19057 * r19057;
        float r19059 = exp(r19058);
        float r19060 = r19055 * r19059;
        float r19061 = r19052 / r19057;
        float r19062 = 2.0f;
        float r19063 = r19052 / r19062;
        float r19064 = r19061 * r19061;
        float r19065 = r19064 * r19061;
        float r19066 = r19063 * r19065;
        float r19067 = r19061 + r19066;
        float r19068 = 3.0f;
        float r19069 = 4.0f;
        float r19070 = r19068 / r19069;
        float r19071 = r19065 * r19061;
        float r19072 = r19071 * r19061;
        float r19073 = r19070 * r19072;
        float r19074 = r19067 + r19073;
        float r19075 = 15.0f;
        float r19076 = 8.0f;
        float r19077 = r19075 / r19076;
        float r19078 = r19072 * r19061;
        float r19079 = r19078 * r19061;
        float r19080 = r19077 * r19079;
        float r19081 = r19074 + r19080;
        float r19082 = r19060 * r19081;
        return r19082;
}

double f_id(double x) {
        double r19083 = 1.0;
        double r19084 = atan2(1.0, 0.0);
        double r19085 = sqrt(r19084);
        double r19086 = r19083 / r19085;
        double r19087 = x;
        double r19088 = fabs(r19087);
        double r19089 = r19088 * r19088;
        double r19090 = exp(r19089);
        double r19091 = r19086 * r19090;
        double r19092 = r19083 / r19088;
        double r19093 = 2.0;
        double r19094 = r19083 / r19093;
        double r19095 = r19092 * r19092;
        double r19096 = r19095 * r19092;
        double r19097 = r19094 * r19096;
        double r19098 = r19092 + r19097;
        double r19099 = 3.0;
        double r19100 = 4.0;
        double r19101 = r19099 / r19100;
        double r19102 = r19096 * r19092;
        double r19103 = r19102 * r19092;
        double r19104 = r19101 * r19103;
        double r19105 = r19098 + r19104;
        double r19106 = 15.0;
        double r19107 = 8.0;
        double r19108 = r19106 / r19107;
        double r19109 = r19103 * r19092;
        double r19110 = r19109 * r19092;
        double r19111 = r19108 * r19110;
        double r19112 = r19105 + r19111;
        double r19113 = r19091 * r19112;
        return r19113;
}


double f_of(float x) {
        float r19114 = 0.5f;
        float r19115 = x;
        float r19116 = fabs(r19115);
        float r19117 = r19116 * (r19116 * r19116);
        float r19118 = r19114 / r19117;
        float r19119 = 15.0f;
        float r19120 = 8.0f;
        float r19121 = r19119 / r19120;
        float r19122 = 3.0f;
        float r19123 = 1.0f;
        float r19124 = r19122 + r19123;
        float r19125 = pow(r19116, r19124);
        float r19126 = r19117 * r19125;
        float r19127 = r19121 / r19126;
        float r19128 = r19118 + r19127;
        float r19129 = 4.0f;
        float r19130 = r19122 / r19129;
        float r19131 = r19130 / r19116;
        float r19132 = r19131 / r19117;
        float r19133 = r19123 + r19132;
        float r19134 = r19133 / r19116;
        float r19135 = r19128 + r19134;
        float r19136 = atan2(1.0, 0.0);
        float r19137 = sqrt(r19136);
        float r19138 = r19116 * r19116;
        float r19139 = exp(r19138);
        float r19140 = r19137 / r19139;
        float r19141 = r19135 / r19140;
        return r19141;
}

double f_od(double x) {
        double r19142 = 0.5;
        double r19143 = x;
        double r19144 = fabs(r19143);
        double r19145 = r19144 * (r19144 * r19144);
        double r19146 = r19142 / r19145;
        double r19147 = 15.0;
        double r19148 = 8.0;
        double r19149 = r19147 / r19148;
        double r19150 = 3.0;
        double r19151 = 1.0;
        double r19152 = r19150 + r19151;
        double r19153 = pow(r19144, r19152);
        double r19154 = r19145 * r19153;
        double r19155 = r19149 / r19154;
        double r19156 = r19146 + r19155;
        double r19157 = 4.0;
        double r19158 = r19150 / r19157;
        double r19159 = r19158 / r19144;
        double r19160 = r19159 / r19145;
        double r19161 = r19151 + r19160;
        double r19162 = r19161 / r19144;
        double r19163 = r19156 + r19162;
        double r19164 = atan2(1.0, 0.0);
        double r19165 = sqrt(r19164);
        double r19166 = r19144 * r19144;
        double r19167 = exp(r19166);
        double r19168 = r19165 / r19167;
        double r19169 = r19163 / r19168;
        return r19169;
}

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 r19170, r19171, r19172, r19173, r19174, r19175, r19176, r19177, r19178, r19179, r19180, r19181, r19182, r19183, r19184, r19185, r19186, r19187, r19188, r19189, r19190, r19191, r19192, r19193, r19194, r19195, r19196, r19197, r19198, r19199, r19200;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19170, "1", 10, MPFR_RNDN);
        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_set_str(r19180, "2", 10, MPFR_RNDN);
        mpfr_init(r19181);
        mpfr_init(r19182);
        mpfr_init(r19183);
        mpfr_init(r19184);
        mpfr_init(r19185);
        mpfr_init_set_str(r19186, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r19187, "4", 10, MPFR_RNDN);
        mpfr_init(r19188);
        mpfr_init(r19189);
        mpfr_init(r19190);
        mpfr_init(r19191);
        mpfr_init(r19192);
        mpfr_init_set_str(r19193, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r19194, "8", 10, MPFR_RNDN);
        mpfr_init(r19195);
        mpfr_init(r19196);
        mpfr_init(r19197);
        mpfr_init(r19198);
        mpfr_init(r19199);
        mpfr_init(r19200);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r19171, MPFR_RNDN);
        mpfr_sqrt(r19172, r19171, MPFR_RNDN);
        mpfr_div(r19173, r19170, r19172, MPFR_RNDN);
        mpfr_set_d(r19174, x, MPFR_RNDN);
        mpfr_abs(r19175, r19174, MPFR_RNDN);
        mpfr_mul(r19176, r19175, r19175, MPFR_RNDN);
        mpfr_exp(r19177, r19176, MPFR_RNDN);
        mpfr_mul(r19178, r19173, r19177, MPFR_RNDN);
        mpfr_div(r19179, r19170, r19175, MPFR_RNDN);
        ;
        mpfr_div(r19181, r19170, r19180, MPFR_RNDN);
        mpfr_mul(r19182, r19179, r19179, MPFR_RNDN);
        mpfr_mul(r19183, r19182, r19179, MPFR_RNDN);
        mpfr_mul(r19184, r19181, r19183, MPFR_RNDN);
        mpfr_add(r19185, r19179, r19184, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19188, r19186, r19187, MPFR_RNDN);
        mpfr_mul(r19189, r19183, r19179, MPFR_RNDN);
        mpfr_mul(r19190, r19189, r19179, MPFR_RNDN);
        mpfr_mul(r19191, r19188, r19190, MPFR_RNDN);
        mpfr_add(r19192, r19185, r19191, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19195, r19193, r19194, MPFR_RNDN);
        mpfr_mul(r19196, r19190, r19179, MPFR_RNDN);
        mpfr_mul(r19197, r19196, r19179, MPFR_RNDN);
        mpfr_mul(r19198, r19195, r19197, MPFR_RNDN);
        mpfr_add(r19199, r19192, r19198, MPFR_RNDN);
        mpfr_mul(r19200, r19178, r19199, MPFR_RNDN);
        return mpfr_get_d(r19200, MPFR_RNDN);
}

static mpfr_t 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19201, "1/2", 10, MPFR_RNDN);
        mpfr_init(r19202);
        mpfr_init(r19203);
        mpfr_init(r19204);
        mpfr_init(r19205);
        mpfr_init_set_str(r19206, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r19207, "8", 10, MPFR_RNDN);
        mpfr_init(r19208);
        mpfr_init_set_str(r19209, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r19210, "1", 10, MPFR_RNDN);
        mpfr_init(r19211);
        mpfr_init(r19212);
        mpfr_init(r19213);
        mpfr_init(r19214);
        mpfr_init(r19215);
        mpfr_init_set_str(r19216, "4", 10, MPFR_RNDN);
        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);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r19202, x, MPFR_RNDN);
        mpfr_abs(r19203, r19202, MPFR_RNDN);
        mpfr_mul(r19204, r19203, r19203, MPFR_RNDN); mpfr_mul(r19204, r19204, r19203, MPFR_RNDN);
        mpfr_div(r19205, r19201, r19204, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19208, r19206, r19207, MPFR_RNDN);
        ;
        ;
        mpfr_add(r19211, r19209, r19210, MPFR_RNDN);
        mpfr_pow(r19212, r19203, r19211, MPFR_RNDN);
        mpfr_mul(r19213, r19204, r19212, MPFR_RNDN);
        mpfr_div(r19214, r19208, r19213, MPFR_RNDN);
        mpfr_add(r19215, r19205, r19214, MPFR_RNDN);
        ;
        mpfr_div(r19217, r19209, r19216, MPFR_RNDN);
        mpfr_div(r19218, r19217, r19203, MPFR_RNDN);
        mpfr_div(r19219, r19218, r19204, MPFR_RNDN);
        mpfr_add(r19220, r19210, r19219, MPFR_RNDN);
        mpfr_div(r19221, r19220, r19203, MPFR_RNDN);
        mpfr_add(r19222, r19215, r19221, MPFR_RNDN);
        mpfr_const_pi(r19223, MPFR_RNDN);
        mpfr_sqrt(r19224, r19223, MPFR_RNDN);
        mpfr_mul(r19225, r19203, r19203, MPFR_RNDN);
        mpfr_exp(r19226, r19225, MPFR_RNDN);
        mpfr_div(r19227, r19224, r19226, MPFR_RNDN);
        mpfr_div(r19228, r19222, r19227, MPFR_RNDN);
        return mpfr_get_d(r19228, MPFR_RNDN);
}

static mpfr_t r19229, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19229, "1/2", 10, MPFR_RNDN);
        mpfr_init(r19230);
        mpfr_init(r19231);
        mpfr_init(r19232);
        mpfr_init(r19233);
        mpfr_init_set_str(r19234, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r19235, "8", 10, MPFR_RNDN);
        mpfr_init(r19236);
        mpfr_init_set_str(r19237, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r19238, "1", 10, MPFR_RNDN);
        mpfr_init(r19239);
        mpfr_init(r19240);
        mpfr_init(r19241);
        mpfr_init(r19242);
        mpfr_init(r19243);
        mpfr_init_set_str(r19244, "4", 10, MPFR_RNDN);
        mpfr_init(r19245);
        mpfr_init(r19246);
        mpfr_init(r19247);
        mpfr_init(r19248);
        mpfr_init(r19249);
        mpfr_init(r19250);
        mpfr_init(r19251);
        mpfr_init(r19252);
        mpfr_init(r19253);
        mpfr_init(r19254);
        mpfr_init(r19255);
        mpfr_init(r19256);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r19230, x, MPFR_RNDN);
        mpfr_abs(r19231, r19230, MPFR_RNDN);
        mpfr_mul(r19232, r19231, r19231, MPFR_RNDN); mpfr_mul(r19232, r19232, r19231, MPFR_RNDN);
        mpfr_div(r19233, r19229, r19232, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19236, r19234, r19235, MPFR_RNDN);
        ;
        ;
        mpfr_add(r19239, r19237, r19238, MPFR_RNDN);
        mpfr_pow(r19240, r19231, r19239, MPFR_RNDN);
        mpfr_mul(r19241, r19232, r19240, MPFR_RNDN);
        mpfr_div(r19242, r19236, r19241, MPFR_RNDN);
        mpfr_add(r19243, r19233, r19242, MPFR_RNDN);
        ;
        mpfr_div(r19245, r19237, r19244, MPFR_RNDN);
        mpfr_div(r19246, r19245, r19231, MPFR_RNDN);
        mpfr_div(r19247, r19246, r19232, MPFR_RNDN);
        mpfr_add(r19248, r19238, r19247, MPFR_RNDN);
        mpfr_div(r19249, r19248, r19231, MPFR_RNDN);
        mpfr_add(r19250, r19243, r19249, MPFR_RNDN);
        mpfr_const_pi(r19251, MPFR_RNDN);
        mpfr_sqrt(r19252, r19251, MPFR_RNDN);
        mpfr_mul(r19253, r19231, r19231, MPFR_RNDN);
        mpfr_exp(r19254, r19253, MPFR_RNDN);
        mpfr_div(r19255, r19252, r19254, MPFR_RNDN);
        mpfr_div(r19256, r19250, r19255, MPFR_RNDN);
        return mpfr_get_d(r19256, MPFR_RNDN);
}

