#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 r27064 = 1;
        float r27065 = atan2(1.0, 0.0);
        float r27066 = sqrt(r27065);
        float r27067 = r27064 / r27066;
        float r27068 = x;
        float r27069 = fabs(r27068);
        float r27070 = r27069 * r27069;
        float r27071 = exp(r27070);
        float r27072 = r27067 * r27071;
        float r27073 = r27064 / r27069;
        float r27074 = 2;
        float r27075 = r27064 / r27074;
        float r27076 = r27073 * r27073;
        float r27077 = r27076 * r27073;
        float r27078 = r27075 * r27077;
        float r27079 = r27073 + r27078;
        float r27080 = 3;
        float r27081 = 4;
        float r27082 = r27080 / r27081;
        float r27083 = r27077 * r27073;
        float r27084 = r27083 * r27073;
        float r27085 = r27082 * r27084;
        float r27086 = r27079 + r27085;
        float r27087 = 15;
        float r27088 = 8;
        float r27089 = r27087 / r27088;
        float r27090 = r27084 * r27073;
        float r27091 = r27090 * r27073;
        float r27092 = r27089 * r27091;
        float r27093 = r27086 + r27092;
        float r27094 = r27072 * r27093;
        return r27094;
}

double f_id(double x) {
        double r27095 = 1;
        double r27096 = atan2(1.0, 0.0);
        double r27097 = sqrt(r27096);
        double r27098 = r27095 / r27097;
        double r27099 = x;
        double r27100 = fabs(r27099);
        double r27101 = r27100 * r27100;
        double r27102 = exp(r27101);
        double r27103 = r27098 * r27102;
        double r27104 = r27095 / r27100;
        double r27105 = 2;
        double r27106 = r27095 / r27105;
        double r27107 = r27104 * r27104;
        double r27108 = r27107 * r27104;
        double r27109 = r27106 * r27108;
        double r27110 = r27104 + r27109;
        double r27111 = 3;
        double r27112 = 4;
        double r27113 = r27111 / r27112;
        double r27114 = r27108 * r27104;
        double r27115 = r27114 * r27104;
        double r27116 = r27113 * r27115;
        double r27117 = r27110 + r27116;
        double r27118 = 15;
        double r27119 = 8;
        double r27120 = r27118 / r27119;
        double r27121 = r27115 * r27104;
        double r27122 = r27121 * r27104;
        double r27123 = r27120 * r27122;
        double r27124 = r27117 + r27123;
        double r27125 = r27103 * r27124;
        return r27125;
}


double f_of(float x) {
        float r27126 = x;
        float r27127 = fabs(r27126);
        float r27128 = r27127 * r27127;
        float r27129 = exp(r27128);
        float r27130 = atan2(1.0, 0.0);
        float r27131 = sqrt(r27130);
        float r27132 = r27129 / r27131;
        float r27133 = 1;
        float r27134 = r27133 / r27127;
        float r27135 = 3;
        float r27136 = 4;
        float r27137 = r27135 / r27136;
        float r27138 = r27134 * r27137;
        float r27139 = r27134 / r27127;
        float r27140 = r27138 * r27139;
        float r27141 = 2;
        float r27142 = r27134 / r27141;
        float r27143 = fma(r27139, r27142, r27134);
        float r27144 = fma(r27140, r27139, r27143);
        float r27145 = -1;
        float r27146 = r27145 - r27135;
        float r27147 = pow(r27127, r27146);
        float r27148 = -r27135;
        float r27149 = pow(r27127, r27148);
        float r27150 = r27147 * r27149;
        float r27151 = r27133 / r27131;
        float r27152 = 15;
        float r27153 = 8;
        float r27154 = r27152 / r27153;
        float r27155 = r27151 * r27154;
        float r27156 = r27129 * r27155;
        float r27157 = r27150 * r27156;
        float r27158 = fma(r27132, r27144, r27157);
        return r27158;
}

double f_od(double x) {
        double r27159 = x;
        double r27160 = fabs(r27159);
        double r27161 = r27160 * r27160;
        double r27162 = exp(r27161);
        double r27163 = atan2(1.0, 0.0);
        double r27164 = sqrt(r27163);
        double r27165 = r27162 / r27164;
        double r27166 = 1;
        double r27167 = r27166 / r27160;
        double r27168 = 3;
        double r27169 = 4;
        double r27170 = r27168 / r27169;
        double r27171 = r27167 * r27170;
        double r27172 = r27167 / r27160;
        double r27173 = r27171 * r27172;
        double r27174 = 2;
        double r27175 = r27167 / r27174;
        double r27176 = fma(r27172, r27175, r27167);
        double r27177 = fma(r27173, r27172, r27176);
        double r27178 = -1;
        double r27179 = r27178 - r27168;
        double r27180 = pow(r27160, r27179);
        double r27181 = -r27168;
        double r27182 = pow(r27160, r27181);
        double r27183 = r27180 * r27182;
        double r27184 = r27166 / r27164;
        double r27185 = 15;
        double r27186 = 8;
        double r27187 = r27185 / r27186;
        double r27188 = r27184 * r27187;
        double r27189 = r27162 * r27188;
        double r27190 = r27183 * r27189;
        double r27191 = fma(r27165, r27177, r27190);
        return r27191;
}

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 r27192, r27193, r27194, r27195, r27196, r27197, r27198, r27199, r27200, r27201, r27202, r27203, r27204, r27205, r27206, r27207, r27208, r27209, r27210, r27211, r27212, r27213, r27214, r27215, r27216, r27217, r27218, r27219, r27220, r27221, r27222;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27192, "1", 10, MPFR_RNDN);
        mpfr_init(r27193);
        mpfr_init(r27194);
        mpfr_init(r27195);
        mpfr_init(r27196);
        mpfr_init(r27197);
        mpfr_init(r27198);
        mpfr_init(r27199);
        mpfr_init(r27200);
        mpfr_init(r27201);
        mpfr_init_set_str(r27202, "2", 10, MPFR_RNDN);
        mpfr_init(r27203);
        mpfr_init(r27204);
        mpfr_init(r27205);
        mpfr_init(r27206);
        mpfr_init(r27207);
        mpfr_init_set_str(r27208, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27209, "4", 10, MPFR_RNDN);
        mpfr_init(r27210);
        mpfr_init(r27211);
        mpfr_init(r27212);
        mpfr_init(r27213);
        mpfr_init(r27214);
        mpfr_init_set_str(r27215, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27216, "8", 10, MPFR_RNDN);
        mpfr_init(r27217);
        mpfr_init(r27218);
        mpfr_init(r27219);
        mpfr_init(r27220);
        mpfr_init(r27221);
        mpfr_init(r27222);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27193, MPFR_RNDN);
        mpfr_sqrt(r27194, r27193, MPFR_RNDN);
        mpfr_div(r27195, r27192, r27194, MPFR_RNDN);
        mpfr_set_d(r27196, x, MPFR_RNDN);
        mpfr_abs(r27197, r27196, MPFR_RNDN);
        mpfr_mul(r27198, r27197, r27197, MPFR_RNDN);
        mpfr_exp(r27199, r27198, MPFR_RNDN);
        mpfr_mul(r27200, r27195, r27199, MPFR_RNDN);
        mpfr_div(r27201, r27192, r27197, MPFR_RNDN);
        ;
        mpfr_div(r27203, r27192, r27202, MPFR_RNDN);
        mpfr_mul(r27204, r27201, r27201, MPFR_RNDN);
        mpfr_mul(r27205, r27204, r27201, MPFR_RNDN);
        mpfr_mul(r27206, r27203, r27205, MPFR_RNDN);
        mpfr_add(r27207, r27201, r27206, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27210, r27208, r27209, MPFR_RNDN);
        mpfr_mul(r27211, r27205, r27201, MPFR_RNDN);
        mpfr_mul(r27212, r27211, r27201, MPFR_RNDN);
        mpfr_mul(r27213, r27210, r27212, MPFR_RNDN);
        mpfr_add(r27214, r27207, r27213, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27217, r27215, r27216, MPFR_RNDN);
        mpfr_mul(r27218, r27212, r27201, MPFR_RNDN);
        mpfr_mul(r27219, r27218, r27201, MPFR_RNDN);
        mpfr_mul(r27220, r27217, r27219, MPFR_RNDN);
        mpfr_add(r27221, r27214, r27220, MPFR_RNDN);
        mpfr_mul(r27222, r27200, r27221, MPFR_RNDN);
        return mpfr_get_d(r27222, MPFR_RNDN);
}

static mpfr_t r27223, r27224, r27225, r27226, r27227, r27228, r27229, r27230, r27231, r27232, r27233, r27234, r27235, r27236, r27237, r27238, r27239, r27240, r27241, r27242, r27243, r27244, r27245, r27246, r27247, r27248, r27249, r27250, r27251, r27252, r27253, r27254, r27255;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27223);
        mpfr_init(r27224);
        mpfr_init(r27225);
        mpfr_init(r27226);
        mpfr_init(r27227);
        mpfr_init(r27228);
        mpfr_init(r27229);
        mpfr_init_set_str(r27230, "1", 10, MPFR_RNDN);
        mpfr_init(r27231);
        mpfr_init_set_str(r27232, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27233, "4", 10, MPFR_RNDN);
        mpfr_init(r27234);
        mpfr_init(r27235);
        mpfr_init(r27236);
        mpfr_init(r27237);
        mpfr_init_set_str(r27238, "2", 10, MPFR_RNDN);
        mpfr_init(r27239);
        mpfr_init(r27240);
        mpfr_init(r27241);
        mpfr_init_set_str(r27242, "-1", 10, MPFR_RNDN);
        mpfr_init(r27243);
        mpfr_init(r27244);
        mpfr_init(r27245);
        mpfr_init(r27246);
        mpfr_init(r27247);
        mpfr_init(r27248);
        mpfr_init_set_str(r27249, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27250, "8", 10, MPFR_RNDN);
        mpfr_init(r27251);
        mpfr_init(r27252);
        mpfr_init(r27253);
        mpfr_init(r27254);
        mpfr_init(r27255);
}

double f_fm(double x) {
        mpfr_set_d(r27223, x, MPFR_RNDN);
        mpfr_abs(r27224, r27223, MPFR_RNDN);
        mpfr_mul(r27225, r27224, r27224, MPFR_RNDN);
        mpfr_exp(r27226, r27225, MPFR_RNDN);
        mpfr_const_pi(r27227, MPFR_RNDN);
        mpfr_sqrt(r27228, r27227, MPFR_RNDN);
        mpfr_div(r27229, r27226, r27228, MPFR_RNDN);
        ;
        mpfr_div(r27231, r27230, r27224, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27234, r27232, r27233, MPFR_RNDN);
        mpfr_mul(r27235, r27231, r27234, MPFR_RNDN);
        mpfr_div(r27236, r27231, r27224, MPFR_RNDN);
        mpfr_mul(r27237, r27235, r27236, MPFR_RNDN);
        ;
        mpfr_div(r27239, r27231, r27238, MPFR_RNDN);
        mpfr_fma(r27240, r27236, r27239, r27231, MPFR_RNDN);
        mpfr_fma(r27241, r27237, r27236, r27240, MPFR_RNDN);
        ;
        mpfr_sub(r27243, r27242, r27232, MPFR_RNDN);
        mpfr_pow(r27244, r27224, r27243, MPFR_RNDN);
        mpfr_neg(r27245, r27232, MPFR_RNDN);
        mpfr_pow(r27246, r27224, r27245, MPFR_RNDN);
        mpfr_mul(r27247, r27244, r27246, MPFR_RNDN);
        mpfr_div(r27248, r27230, r27228, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27251, r27249, r27250, MPFR_RNDN);
        mpfr_mul(r27252, r27248, r27251, MPFR_RNDN);
        mpfr_mul(r27253, r27226, r27252, MPFR_RNDN);
        mpfr_mul(r27254, r27247, r27253, MPFR_RNDN);
        mpfr_fma(r27255, r27229, r27241, r27254, MPFR_RNDN);
        return mpfr_get_d(r27255, MPFR_RNDN);
}

static mpfr_t r27256, r27257, r27258, r27259, r27260, r27261, r27262, r27263, r27264, r27265, r27266, r27267, r27268, r27269, r27270, r27271, r27272, r27273, r27274, r27275, r27276, r27277, r27278, r27279, r27280, r27281, r27282, r27283, r27284, r27285, r27286, r27287, r27288;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27256);
        mpfr_init(r27257);
        mpfr_init(r27258);
        mpfr_init(r27259);
        mpfr_init(r27260);
        mpfr_init(r27261);
        mpfr_init(r27262);
        mpfr_init_set_str(r27263, "1", 10, MPFR_RNDN);
        mpfr_init(r27264);
        mpfr_init_set_str(r27265, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27266, "4", 10, MPFR_RNDN);
        mpfr_init(r27267);
        mpfr_init(r27268);
        mpfr_init(r27269);
        mpfr_init(r27270);
        mpfr_init_set_str(r27271, "2", 10, MPFR_RNDN);
        mpfr_init(r27272);
        mpfr_init(r27273);
        mpfr_init(r27274);
        mpfr_init_set_str(r27275, "-1", 10, MPFR_RNDN);
        mpfr_init(r27276);
        mpfr_init(r27277);
        mpfr_init(r27278);
        mpfr_init(r27279);
        mpfr_init(r27280);
        mpfr_init(r27281);
        mpfr_init_set_str(r27282, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27283, "8", 10, MPFR_RNDN);
        mpfr_init(r27284);
        mpfr_init(r27285);
        mpfr_init(r27286);
        mpfr_init(r27287);
        mpfr_init(r27288);
}

double f_dm(double x) {
        mpfr_set_d(r27256, x, MPFR_RNDN);
        mpfr_abs(r27257, r27256, MPFR_RNDN);
        mpfr_mul(r27258, r27257, r27257, MPFR_RNDN);
        mpfr_exp(r27259, r27258, MPFR_RNDN);
        mpfr_const_pi(r27260, MPFR_RNDN);
        mpfr_sqrt(r27261, r27260, MPFR_RNDN);
        mpfr_div(r27262, r27259, r27261, MPFR_RNDN);
        ;
        mpfr_div(r27264, r27263, r27257, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27267, r27265, r27266, MPFR_RNDN);
        mpfr_mul(r27268, r27264, r27267, MPFR_RNDN);
        mpfr_div(r27269, r27264, r27257, MPFR_RNDN);
        mpfr_mul(r27270, r27268, r27269, MPFR_RNDN);
        ;
        mpfr_div(r27272, r27264, r27271, MPFR_RNDN);
        mpfr_fma(r27273, r27269, r27272, r27264, MPFR_RNDN);
        mpfr_fma(r27274, r27270, r27269, r27273, MPFR_RNDN);
        ;
        mpfr_sub(r27276, r27275, r27265, MPFR_RNDN);
        mpfr_pow(r27277, r27257, r27276, MPFR_RNDN);
        mpfr_neg(r27278, r27265, MPFR_RNDN);
        mpfr_pow(r27279, r27257, r27278, MPFR_RNDN);
        mpfr_mul(r27280, r27277, r27279, MPFR_RNDN);
        mpfr_div(r27281, r27263, r27261, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27284, r27282, r27283, MPFR_RNDN);
        mpfr_mul(r27285, r27281, r27284, MPFR_RNDN);
        mpfr_mul(r27286, r27259, r27285, MPFR_RNDN);
        mpfr_mul(r27287, r27280, r27286, MPFR_RNDN);
        mpfr_fma(r27288, r27262, r27274, r27287, MPFR_RNDN);
        return mpfr_get_d(r27288, MPFR_RNDN);
}

