#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Jmat.Real.erfi, branch x less than or equal to 0.5";

double f_if(float x) {
        float r27014 = 1;
        float r27015 = atan2(1.0, 0.0);
        float r27016 = sqrt(r27015);
        float r27017 = r27014 / r27016;
        float r27018 = 2;
        float r27019 = x;
        float r27020 = fabs(r27019);
        float r27021 = r27018 * r27020;
        float r27022 = 3;
        float r27023 = r27018 / r27022;
        float r27024 = r27020 * r27020;
        float r27025 = r27024 * r27020;
        float r27026 = r27023 * r27025;
        float r27027 = r27021 + r27026;
        float r27028 = 5;
        float r27029 = r27014 / r27028;
        float r27030 = r27025 * r27020;
        float r27031 = r27030 * r27020;
        float r27032 = r27029 * r27031;
        float r27033 = r27027 + r27032;
        float r27034 = 21;
        float r27035 = r27014 / r27034;
        float r27036 = r27031 * r27020;
        float r27037 = r27036 * r27020;
        float r27038 = r27035 * r27037;
        float r27039 = r27033 + r27038;
        float r27040 = r27017 * r27039;
        float r27041 = fabs(r27040);
        return r27041;
}

double f_id(double x) {
        double r27042 = 1;
        double r27043 = atan2(1.0, 0.0);
        double r27044 = sqrt(r27043);
        double r27045 = r27042 / r27044;
        double r27046 = 2;
        double r27047 = x;
        double r27048 = fabs(r27047);
        double r27049 = r27046 * r27048;
        double r27050 = 3;
        double r27051 = r27046 / r27050;
        double r27052 = r27048 * r27048;
        double r27053 = r27052 * r27048;
        double r27054 = r27051 * r27053;
        double r27055 = r27049 + r27054;
        double r27056 = 5;
        double r27057 = r27042 / r27056;
        double r27058 = r27053 * r27048;
        double r27059 = r27058 * r27048;
        double r27060 = r27057 * r27059;
        double r27061 = r27055 + r27060;
        double r27062 = 21;
        double r27063 = r27042 / r27062;
        double r27064 = r27059 * r27048;
        double r27065 = r27064 * r27048;
        double r27066 = r27063 * r27065;
        double r27067 = r27061 + r27066;
        double r27068 = r27045 * r27067;
        double r27069 = fabs(r27068);
        return r27069;
}


double f_of(float x) {
        float r27070 = 1;
        float r27071 = atan2(1.0, 0.0);
        float r27072 = sqrt(r27071);
        float r27073 = r27070 / r27072;
        float r27074 = 2;
        float r27075 = x;
        float r27076 = fabs(r27075);
        float r27077 = r27074 * r27076;
        float r27078 = 3;
        float r27079 = r27074 / r27078;
        float r27080 = r27076 * r27076;
        float r27081 = r27080 * r27076;
        float r27082 = r27079 * r27081;
        float r27083 = r27077 + r27082;
        float r27084 = 5;
        float r27085 = r27070 / r27084;
        float r27086 = r27081 * r27076;
        float r27087 = r27086 * r27076;
        float r27088 = r27085 * r27087;
        float r27089 = r27083 + r27088;
        float r27090 = 21;
        float r27091 = r27070 / r27090;
        float r27092 = r27087 * r27076;
        float r27093 = r27092 * r27076;
        float r27094 = r27091 * r27093;
        float r27095 = r27089 + r27094;
        float r27096 = r27073 * r27095;
        float r27097 = fabs(r27096);
        return r27097;
}

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

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 r27126, r27127, r27128, r27129, r27130, r27131, r27132, r27133, r27134, r27135, r27136, r27137, r27138, r27139, r27140, r27141, r27142, r27143, r27144, r27145, r27146, r27147, r27148, r27149, r27150, r27151, r27152, r27153;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27126, "1", 10, MPFR_RNDN);
        mpfr_init(r27127);
        mpfr_init(r27128);
        mpfr_init(r27129);
        mpfr_init_set_str(r27130, "2", 10, MPFR_RNDN);
        mpfr_init(r27131);
        mpfr_init(r27132);
        mpfr_init(r27133);
        mpfr_init_set_str(r27134, "3", 10, MPFR_RNDN);
        mpfr_init(r27135);
        mpfr_init(r27136);
        mpfr_init(r27137);
        mpfr_init(r27138);
        mpfr_init(r27139);
        mpfr_init_set_str(r27140, "5", 10, MPFR_RNDN);
        mpfr_init(r27141);
        mpfr_init(r27142);
        mpfr_init(r27143);
        mpfr_init(r27144);
        mpfr_init(r27145);
        mpfr_init_set_str(r27146, "21", 10, MPFR_RNDN);
        mpfr_init(r27147);
        mpfr_init(r27148);
        mpfr_init(r27149);
        mpfr_init(r27150);
        mpfr_init(r27151);
        mpfr_init(r27152);
        mpfr_init(r27153);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27127, MPFR_RNDN);
        mpfr_sqrt(r27128, r27127, MPFR_RNDN);
        mpfr_div(r27129, r27126, r27128, MPFR_RNDN);
        ;
        mpfr_set_d(r27131, x, MPFR_RNDN);
        mpfr_abs(r27132, r27131, MPFR_RNDN);
        mpfr_mul(r27133, r27130, r27132, MPFR_RNDN);
        ;
        mpfr_div(r27135, r27130, r27134, MPFR_RNDN);
        mpfr_mul(r27136, r27132, r27132, MPFR_RNDN);
        mpfr_mul(r27137, r27136, r27132, MPFR_RNDN);
        mpfr_mul(r27138, r27135, r27137, MPFR_RNDN);
        mpfr_add(r27139, r27133, r27138, MPFR_RNDN);
        ;
        mpfr_div(r27141, r27126, r27140, MPFR_RNDN);
        mpfr_mul(r27142, r27137, r27132, MPFR_RNDN);
        mpfr_mul(r27143, r27142, r27132, MPFR_RNDN);
        mpfr_mul(r27144, r27141, r27143, MPFR_RNDN);
        mpfr_add(r27145, r27139, r27144, MPFR_RNDN);
        ;
        mpfr_div(r27147, r27126, r27146, MPFR_RNDN);
        mpfr_mul(r27148, r27143, r27132, MPFR_RNDN);
        mpfr_mul(r27149, r27148, r27132, MPFR_RNDN);
        mpfr_mul(r27150, r27147, r27149, MPFR_RNDN);
        mpfr_add(r27151, r27145, r27150, MPFR_RNDN);
        mpfr_mul(r27152, r27129, r27151, MPFR_RNDN);
        mpfr_abs(r27153, r27152, MPFR_RNDN);
        return mpfr_get_d(r27153, MPFR_RNDN);
}

static mpfr_t r27154, r27155, r27156, r27157, r27158, r27159, r27160, r27161, r27162, r27163, r27164, r27165, r27166, r27167, r27168, r27169, r27170, r27171, r27172, r27173, r27174, r27175, r27176, r27177, r27178, r27179, r27180, r27181;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27154, "1", 10, MPFR_RNDN);
        mpfr_init(r27155);
        mpfr_init(r27156);
        mpfr_init(r27157);
        mpfr_init_set_str(r27158, "2", 10, MPFR_RNDN);
        mpfr_init(r27159);
        mpfr_init(r27160);
        mpfr_init(r27161);
        mpfr_init_set_str(r27162, "3", 10, MPFR_RNDN);
        mpfr_init(r27163);
        mpfr_init(r27164);
        mpfr_init(r27165);
        mpfr_init(r27166);
        mpfr_init(r27167);
        mpfr_init_set_str(r27168, "5", 10, MPFR_RNDN);
        mpfr_init(r27169);
        mpfr_init(r27170);
        mpfr_init(r27171);
        mpfr_init(r27172);
        mpfr_init(r27173);
        mpfr_init_set_str(r27174, "21", 10, MPFR_RNDN);
        mpfr_init(r27175);
        mpfr_init(r27176);
        mpfr_init(r27177);
        mpfr_init(r27178);
        mpfr_init(r27179);
        mpfr_init(r27180);
        mpfr_init(r27181);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r27155, MPFR_RNDN);
        mpfr_sqrt(r27156, r27155, MPFR_RNDN);
        mpfr_div(r27157, r27154, r27156, MPFR_RNDN);
        ;
        mpfr_set_d(r27159, x, MPFR_RNDN);
        mpfr_abs(r27160, r27159, MPFR_RNDN);
        mpfr_mul(r27161, r27158, r27160, MPFR_RNDN);
        ;
        mpfr_div(r27163, r27158, r27162, MPFR_RNDN);
        mpfr_mul(r27164, r27160, r27160, MPFR_RNDN);
        mpfr_mul(r27165, r27164, r27160, MPFR_RNDN);
        mpfr_mul(r27166, r27163, r27165, MPFR_RNDN);
        mpfr_add(r27167, r27161, r27166, MPFR_RNDN);
        ;
        mpfr_div(r27169, r27154, r27168, MPFR_RNDN);
        mpfr_mul(r27170, r27165, r27160, MPFR_RNDN);
        mpfr_mul(r27171, r27170, r27160, MPFR_RNDN);
        mpfr_mul(r27172, r27169, r27171, MPFR_RNDN);
        mpfr_add(r27173, r27167, r27172, MPFR_RNDN);
        ;
        mpfr_div(r27175, r27154, r27174, MPFR_RNDN);
        mpfr_mul(r27176, r27171, r27160, MPFR_RNDN);
        mpfr_mul(r27177, r27176, r27160, MPFR_RNDN);
        mpfr_mul(r27178, r27175, r27177, MPFR_RNDN);
        mpfr_add(r27179, r27173, r27178, MPFR_RNDN);
        mpfr_mul(r27180, r27157, r27179, MPFR_RNDN);
        mpfr_abs(r27181, r27180, MPFR_RNDN);
        return mpfr_get_d(r27181, MPFR_RNDN);
}

static mpfr_t r27182, r27183, r27184, r27185, r27186, r27187, r27188, r27189, r27190, r27191, r27192, r27193, r27194, r27195, r27196, r27197, r27198, r27199, r27200, r27201, r27202, r27203, r27204, r27205, r27206, r27207, r27208, r27209;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27182, "1", 10, MPFR_RNDN);
        mpfr_init(r27183);
        mpfr_init(r27184);
        mpfr_init(r27185);
        mpfr_init_set_str(r27186, "2", 10, MPFR_RNDN);
        mpfr_init(r27187);
        mpfr_init(r27188);
        mpfr_init(r27189);
        mpfr_init_set_str(r27190, "3", 10, MPFR_RNDN);
        mpfr_init(r27191);
        mpfr_init(r27192);
        mpfr_init(r27193);
        mpfr_init(r27194);
        mpfr_init(r27195);
        mpfr_init_set_str(r27196, "5", 10, MPFR_RNDN);
        mpfr_init(r27197);
        mpfr_init(r27198);
        mpfr_init(r27199);
        mpfr_init(r27200);
        mpfr_init(r27201);
        mpfr_init_set_str(r27202, "21", 10, MPFR_RNDN);
        mpfr_init(r27203);
        mpfr_init(r27204);
        mpfr_init(r27205);
        mpfr_init(r27206);
        mpfr_init(r27207);
        mpfr_init(r27208);
        mpfr_init(r27209);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r27183, MPFR_RNDN);
        mpfr_sqrt(r27184, r27183, MPFR_RNDN);
        mpfr_div(r27185, r27182, r27184, MPFR_RNDN);
        ;
        mpfr_set_d(r27187, x, MPFR_RNDN);
        mpfr_abs(r27188, r27187, MPFR_RNDN);
        mpfr_mul(r27189, r27186, r27188, MPFR_RNDN);
        ;
        mpfr_div(r27191, r27186, r27190, MPFR_RNDN);
        mpfr_mul(r27192, r27188, r27188, MPFR_RNDN);
        mpfr_mul(r27193, r27192, r27188, MPFR_RNDN);
        mpfr_mul(r27194, r27191, r27193, MPFR_RNDN);
        mpfr_add(r27195, r27189, r27194, MPFR_RNDN);
        ;
        mpfr_div(r27197, r27182, r27196, MPFR_RNDN);
        mpfr_mul(r27198, r27193, r27188, MPFR_RNDN);
        mpfr_mul(r27199, r27198, r27188, MPFR_RNDN);
        mpfr_mul(r27200, r27197, r27199, MPFR_RNDN);
        mpfr_add(r27201, r27195, r27200, MPFR_RNDN);
        ;
        mpfr_div(r27203, r27182, r27202, MPFR_RNDN);
        mpfr_mul(r27204, r27199, r27188, MPFR_RNDN);
        mpfr_mul(r27205, r27204, r27188, MPFR_RNDN);
        mpfr_mul(r27206, r27203, r27205, MPFR_RNDN);
        mpfr_add(r27207, r27201, r27206, MPFR_RNDN);
        mpfr_mul(r27208, r27185, r27207, MPFR_RNDN);
        mpfr_abs(r27209, r27208, MPFR_RNDN);
        return mpfr_get_d(r27209, MPFR_RNDN);
}

