#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 r10945 = 1;
        float r10946 = atan2(1.0, 0.0);
        float r10947 = sqrt(r10946);
        float r10948 = r10945 / r10947;
        float r10949 = x;
        float r10950 = fabs(r10949);
        float r10951 = r10950 * r10950;
        float r10952 = exp(r10951);
        float r10953 = r10948 * r10952;
        float r10954 = r10945 / r10950;
        float r10955 = 2;
        float r10956 = r10945 / r10955;
        float r10957 = r10954 * r10954;
        float r10958 = r10957 * r10954;
        float r10959 = r10956 * r10958;
        float r10960 = r10954 + r10959;
        float r10961 = 3;
        float r10962 = 4;
        float r10963 = r10961 / r10962;
        float r10964 = r10958 * r10954;
        float r10965 = r10964 * r10954;
        float r10966 = r10963 * r10965;
        float r10967 = r10960 + r10966;
        float r10968 = 15;
        float r10969 = 8;
        float r10970 = r10968 / r10969;
        float r10971 = r10965 * r10954;
        float r10972 = r10971 * r10954;
        float r10973 = r10970 * r10972;
        float r10974 = r10967 + r10973;
        float r10975 = r10953 * r10974;
        return r10975;
}

double f_id(double x) {
        double r10976 = 1;
        double r10977 = atan2(1.0, 0.0);
        double r10978 = sqrt(r10977);
        double r10979 = r10976 / r10978;
        double r10980 = x;
        double r10981 = fabs(r10980);
        double r10982 = r10981 * r10981;
        double r10983 = exp(r10982);
        double r10984 = r10979 * r10983;
        double r10985 = r10976 / r10981;
        double r10986 = 2;
        double r10987 = r10976 / r10986;
        double r10988 = r10985 * r10985;
        double r10989 = r10988 * r10985;
        double r10990 = r10987 * r10989;
        double r10991 = r10985 + r10990;
        double r10992 = 3;
        double r10993 = 4;
        double r10994 = r10992 / r10993;
        double r10995 = r10989 * r10985;
        double r10996 = r10995 * r10985;
        double r10997 = r10994 * r10996;
        double r10998 = r10991 + r10997;
        double r10999 = 15;
        double r11000 = 8;
        double r11001 = r10999 / r11000;
        double r11002 = r10996 * r10985;
        double r11003 = r11002 * r10985;
        double r11004 = r11001 * r11003;
        double r11005 = r10998 + r11004;
        double r11006 = r10984 * r11005;
        return r11006;
}


double f_of(float x) {
        float r11007 = x;
        float r11008 = fabs(r11007);
        float r11009 = r11008 * r11008;
        float r11010 = exp(r11009);
        float r11011 = atan2(1.0, 0.0);
        float r11012 = sqrt(r11011);
        float r11013 = sqrt(r11012);
        float r11014 = r11013 * r11013;
        float r11015 = r11010 / r11014;
        float r11016 = 3;
        float r11017 = 4;
        float r11018 = r11016 / r11017;
        float r11019 = 1;
        float r11020 = r11019 / r11008;
        float r11021 = r11018 * r11020;
        float r11022 = r11020 / r11008;
        float r11023 = r11021 * r11022;
        float r11024 = 2;
        float r11025 = r11019 / r11024;
        float r11026 = r11025 / r11008;
        float r11027 = fma(r11020, r11026, r11019);
        float r11028 = r11020 * r11027;
        float r11029 = cbrt(r11028);
        float r11030 = r11029 * r11029;
        float r11031 = r11020 / r11024;
        float r11032 = fma(r11031, r11022, r11020);
        float r11033 = cbrt(r11032);
        float r11034 = r11030 * r11033;
        float r11035 = fma(r11023, r11022, r11034);
        float r11036 = r11019 / r11012;
        float r11037 = 15;
        float r11038 = 8;
        float r11039 = r11037 / r11038;
        float r11040 = r11036 * r11039;
        float r11041 = r11010 * r11040;
        float r11042 = -1;
        float r11043 = r11042 - r11016;
        float r11044 = pow(r11008, r11043);
        float r11045 = -r11016;
        float r11046 = pow(r11008, r11045);
        float r11047 = r11044 * r11046;
        float r11048 = r11041 * r11047;
        float r11049 = fma(r11015, r11035, r11048);
        return r11049;
}

double f_od(double x) {
        double r11050 = x;
        double r11051 = fabs(r11050);
        double r11052 = r11051 * r11051;
        double r11053 = exp(r11052);
        double r11054 = atan2(1.0, 0.0);
        double r11055 = sqrt(r11054);
        double r11056 = sqrt(r11055);
        double r11057 = r11056 * r11056;
        double r11058 = r11053 / r11057;
        double r11059 = 3;
        double r11060 = 4;
        double r11061 = r11059 / r11060;
        double r11062 = 1;
        double r11063 = r11062 / r11051;
        double r11064 = r11061 * r11063;
        double r11065 = r11063 / r11051;
        double r11066 = r11064 * r11065;
        double r11067 = 2;
        double r11068 = r11062 / r11067;
        double r11069 = r11068 / r11051;
        double r11070 = fma(r11063, r11069, r11062);
        double r11071 = r11063 * r11070;
        double r11072 = cbrt(r11071);
        double r11073 = r11072 * r11072;
        double r11074 = r11063 / r11067;
        double r11075 = fma(r11074, r11065, r11063);
        double r11076 = cbrt(r11075);
        double r11077 = r11073 * r11076;
        double r11078 = fma(r11066, r11065, r11077);
        double r11079 = r11062 / r11055;
        double r11080 = 15;
        double r11081 = 8;
        double r11082 = r11080 / r11081;
        double r11083 = r11079 * r11082;
        double r11084 = r11053 * r11083;
        double r11085 = -1;
        double r11086 = r11085 - r11059;
        double r11087 = pow(r11051, r11086);
        double r11088 = -r11059;
        double r11089 = pow(r11051, r11088);
        double r11090 = r11087 * r11089;
        double r11091 = r11084 * r11090;
        double r11092 = fma(r11058, r11078, r11091);
        return r11092;
}

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 r11093, r11094, r11095, r11096, r11097, r11098, r11099, r11100, r11101, r11102, r11103, r11104, r11105, r11106, r11107, r11108, r11109, r11110, r11111, r11112, r11113, r11114, r11115, r11116, r11117, r11118, r11119, r11120, r11121, r11122, r11123;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11093, "1", 10, MPFR_RNDN);
        mpfr_init(r11094);
        mpfr_init(r11095);
        mpfr_init(r11096);
        mpfr_init(r11097);
        mpfr_init(r11098);
        mpfr_init(r11099);
        mpfr_init(r11100);
        mpfr_init(r11101);
        mpfr_init(r11102);
        mpfr_init_set_str(r11103, "2", 10, MPFR_RNDN);
        mpfr_init(r11104);
        mpfr_init(r11105);
        mpfr_init(r11106);
        mpfr_init(r11107);
        mpfr_init(r11108);
        mpfr_init_set_str(r11109, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11110, "4", 10, MPFR_RNDN);
        mpfr_init(r11111);
        mpfr_init(r11112);
        mpfr_init(r11113);
        mpfr_init(r11114);
        mpfr_init(r11115);
        mpfr_init_set_str(r11116, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11117, "8", 10, MPFR_RNDN);
        mpfr_init(r11118);
        mpfr_init(r11119);
        mpfr_init(r11120);
        mpfr_init(r11121);
        mpfr_init(r11122);
        mpfr_init(r11123);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r11094, MPFR_RNDN);
        mpfr_sqrt(r11095, r11094, MPFR_RNDN);
        mpfr_div(r11096, r11093, r11095, MPFR_RNDN);
        mpfr_set_d(r11097, x, MPFR_RNDN);
        mpfr_abs(r11098, r11097, MPFR_RNDN);
        mpfr_mul(r11099, r11098, r11098, MPFR_RNDN);
        mpfr_exp(r11100, r11099, MPFR_RNDN);
        mpfr_mul(r11101, r11096, r11100, MPFR_RNDN);
        mpfr_div(r11102, r11093, r11098, MPFR_RNDN);
        ;
        mpfr_div(r11104, r11093, r11103, MPFR_RNDN);
        mpfr_mul(r11105, r11102, r11102, MPFR_RNDN);
        mpfr_mul(r11106, r11105, r11102, MPFR_RNDN);
        mpfr_mul(r11107, r11104, r11106, MPFR_RNDN);
        mpfr_add(r11108, r11102, r11107, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11111, r11109, r11110, MPFR_RNDN);
        mpfr_mul(r11112, r11106, r11102, MPFR_RNDN);
        mpfr_mul(r11113, r11112, r11102, MPFR_RNDN);
        mpfr_mul(r11114, r11111, r11113, MPFR_RNDN);
        mpfr_add(r11115, r11108, r11114, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11118, r11116, r11117, MPFR_RNDN);
        mpfr_mul(r11119, r11113, r11102, MPFR_RNDN);
        mpfr_mul(r11120, r11119, r11102, MPFR_RNDN);
        mpfr_mul(r11121, r11118, r11120, MPFR_RNDN);
        mpfr_add(r11122, r11115, r11121, MPFR_RNDN);
        mpfr_mul(r11123, r11101, r11122, MPFR_RNDN);
        return mpfr_get_d(r11123, MPFR_RNDN);
}

static mpfr_t r11124, r11125, r11126, r11127, r11128, r11129, r11130, r11131, r11132, r11133, r11134, r11135, r11136, r11137, r11138, r11139, r11140, r11141, r11142, r11143, r11144, r11145, r11146, r11147, r11148, r11149, r11150, r11151, r11152, r11153, r11154, r11155, r11156, r11157, r11158, r11159, r11160, r11161, r11162, r11163, r11164, r11165, r11166;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11124);
        mpfr_init(r11125);
        mpfr_init(r11126);
        mpfr_init(r11127);
        mpfr_init(r11128);
        mpfr_init(r11129);
        mpfr_init(r11130);
        mpfr_init(r11131);
        mpfr_init(r11132);
        mpfr_init_set_str(r11133, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11134, "4", 10, MPFR_RNDN);
        mpfr_init(r11135);
        mpfr_init_set_str(r11136, "1", 10, MPFR_RNDN);
        mpfr_init(r11137);
        mpfr_init(r11138);
        mpfr_init(r11139);
        mpfr_init(r11140);
        mpfr_init_set_str(r11141, "2", 10, MPFR_RNDN);
        mpfr_init(r11142);
        mpfr_init(r11143);
        mpfr_init(r11144);
        mpfr_init(r11145);
        mpfr_init(r11146);
        mpfr_init(r11147);
        mpfr_init(r11148);
        mpfr_init(r11149);
        mpfr_init(r11150);
        mpfr_init(r11151);
        mpfr_init(r11152);
        mpfr_init(r11153);
        mpfr_init_set_str(r11154, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11155, "8", 10, MPFR_RNDN);
        mpfr_init(r11156);
        mpfr_init(r11157);
        mpfr_init(r11158);
        mpfr_init_set_str(r11159, "-1", 10, MPFR_RNDN);
        mpfr_init(r11160);
        mpfr_init(r11161);
        mpfr_init(r11162);
        mpfr_init(r11163);
        mpfr_init(r11164);
        mpfr_init(r11165);
        mpfr_init(r11166);
}

double f_fm(double x) {
        mpfr_set_d(r11124, x, MPFR_RNDN);
        mpfr_abs(r11125, r11124, MPFR_RNDN);
        mpfr_mul(r11126, r11125, r11125, MPFR_RNDN);
        mpfr_exp(r11127, r11126, MPFR_RNDN);
        mpfr_const_pi(r11128, MPFR_RNDN);
        mpfr_sqrt(r11129, r11128, MPFR_RNDN);
        mpfr_sqrt(r11130, r11129, MPFR_RNDN);
        mpfr_mul(r11131, r11130, r11130, MPFR_RNDN);
        mpfr_div(r11132, r11127, r11131, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11135, r11133, r11134, MPFR_RNDN);
        ;
        mpfr_div(r11137, r11136, r11125, MPFR_RNDN);
        mpfr_mul(r11138, r11135, r11137, MPFR_RNDN);
        mpfr_div(r11139, r11137, r11125, MPFR_RNDN);
        mpfr_mul(r11140, r11138, r11139, MPFR_RNDN);
        ;
        mpfr_div(r11142, r11136, r11141, MPFR_RNDN);
        mpfr_div(r11143, r11142, r11125, MPFR_RNDN);
        mpfr_fma(r11144, r11137, r11143, r11136, MPFR_RNDN);
        mpfr_mul(r11145, r11137, r11144, MPFR_RNDN);
        mpfr_cbrt(r11146, r11145, MPFR_RNDN);
        mpfr_mul(r11147, r11146, r11146, MPFR_RNDN);
        mpfr_div(r11148, r11137, r11141, MPFR_RNDN);
        mpfr_fma(r11149, r11148, r11139, r11137, MPFR_RNDN);
        mpfr_cbrt(r11150, r11149, MPFR_RNDN);
        mpfr_mul(r11151, r11147, r11150, MPFR_RNDN);
        mpfr_fma(r11152, r11140, r11139, r11151, MPFR_RNDN);
        mpfr_div(r11153, r11136, r11129, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11156, r11154, r11155, MPFR_RNDN);
        mpfr_mul(r11157, r11153, r11156, MPFR_RNDN);
        mpfr_mul(r11158, r11127, r11157, MPFR_RNDN);
        ;
        mpfr_sub(r11160, r11159, r11133, MPFR_RNDN);
        mpfr_pow(r11161, r11125, r11160, MPFR_RNDN);
        mpfr_neg(r11162, r11133, MPFR_RNDN);
        mpfr_pow(r11163, r11125, r11162, MPFR_RNDN);
        mpfr_mul(r11164, r11161, r11163, MPFR_RNDN);
        mpfr_mul(r11165, r11158, r11164, MPFR_RNDN);
        mpfr_fma(r11166, r11132, r11152, r11165, MPFR_RNDN);
        return mpfr_get_d(r11166, MPFR_RNDN);
}

static mpfr_t r11167, r11168, r11169, r11170, r11171, r11172, r11173, r11174, r11175, r11176, r11177, r11178, r11179, r11180, r11181, r11182, r11183, r11184, r11185, r11186, r11187, r11188, r11189, r11190, r11191, r11192, r11193, r11194, r11195, r11196, r11197, r11198, r11199, r11200, r11201, r11202, r11203, r11204, r11205, r11206, r11207, r11208, r11209;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11167);
        mpfr_init(r11168);
        mpfr_init(r11169);
        mpfr_init(r11170);
        mpfr_init(r11171);
        mpfr_init(r11172);
        mpfr_init(r11173);
        mpfr_init(r11174);
        mpfr_init(r11175);
        mpfr_init_set_str(r11176, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11177, "4", 10, MPFR_RNDN);
        mpfr_init(r11178);
        mpfr_init_set_str(r11179, "1", 10, MPFR_RNDN);
        mpfr_init(r11180);
        mpfr_init(r11181);
        mpfr_init(r11182);
        mpfr_init(r11183);
        mpfr_init_set_str(r11184, "2", 10, MPFR_RNDN);
        mpfr_init(r11185);
        mpfr_init(r11186);
        mpfr_init(r11187);
        mpfr_init(r11188);
        mpfr_init(r11189);
        mpfr_init(r11190);
        mpfr_init(r11191);
        mpfr_init(r11192);
        mpfr_init(r11193);
        mpfr_init(r11194);
        mpfr_init(r11195);
        mpfr_init(r11196);
        mpfr_init_set_str(r11197, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r11198, "8", 10, MPFR_RNDN);
        mpfr_init(r11199);
        mpfr_init(r11200);
        mpfr_init(r11201);
        mpfr_init_set_str(r11202, "-1", 10, MPFR_RNDN);
        mpfr_init(r11203);
        mpfr_init(r11204);
        mpfr_init(r11205);
        mpfr_init(r11206);
        mpfr_init(r11207);
        mpfr_init(r11208);
        mpfr_init(r11209);
}

double f_dm(double x) {
        mpfr_set_d(r11167, x, MPFR_RNDN);
        mpfr_abs(r11168, r11167, MPFR_RNDN);
        mpfr_mul(r11169, r11168, r11168, MPFR_RNDN);
        mpfr_exp(r11170, r11169, MPFR_RNDN);
        mpfr_const_pi(r11171, MPFR_RNDN);
        mpfr_sqrt(r11172, r11171, MPFR_RNDN);
        mpfr_sqrt(r11173, r11172, MPFR_RNDN);
        mpfr_mul(r11174, r11173, r11173, MPFR_RNDN);
        mpfr_div(r11175, r11170, r11174, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11178, r11176, r11177, MPFR_RNDN);
        ;
        mpfr_div(r11180, r11179, r11168, MPFR_RNDN);
        mpfr_mul(r11181, r11178, r11180, MPFR_RNDN);
        mpfr_div(r11182, r11180, r11168, MPFR_RNDN);
        mpfr_mul(r11183, r11181, r11182, MPFR_RNDN);
        ;
        mpfr_div(r11185, r11179, r11184, MPFR_RNDN);
        mpfr_div(r11186, r11185, r11168, MPFR_RNDN);
        mpfr_fma(r11187, r11180, r11186, r11179, MPFR_RNDN);
        mpfr_mul(r11188, r11180, r11187, MPFR_RNDN);
        mpfr_cbrt(r11189, r11188, MPFR_RNDN);
        mpfr_mul(r11190, r11189, r11189, MPFR_RNDN);
        mpfr_div(r11191, r11180, r11184, MPFR_RNDN);
        mpfr_fma(r11192, r11191, r11182, r11180, MPFR_RNDN);
        mpfr_cbrt(r11193, r11192, MPFR_RNDN);
        mpfr_mul(r11194, r11190, r11193, MPFR_RNDN);
        mpfr_fma(r11195, r11183, r11182, r11194, MPFR_RNDN);
        mpfr_div(r11196, r11179, r11172, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11199, r11197, r11198, MPFR_RNDN);
        mpfr_mul(r11200, r11196, r11199, MPFR_RNDN);
        mpfr_mul(r11201, r11170, r11200, MPFR_RNDN);
        ;
        mpfr_sub(r11203, r11202, r11176, MPFR_RNDN);
        mpfr_pow(r11204, r11168, r11203, MPFR_RNDN);
        mpfr_neg(r11205, r11176, MPFR_RNDN);
        mpfr_pow(r11206, r11168, r11205, MPFR_RNDN);
        mpfr_mul(r11207, r11204, r11206, MPFR_RNDN);
        mpfr_mul(r11208, r11201, r11207, MPFR_RNDN);
        mpfr_fma(r11209, r11175, r11195, r11208, MPFR_RNDN);
        return mpfr_get_d(r11209, MPFR_RNDN);
}

