#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 r10961 = 1;
        float r10962 = atan2(1.0, 0.0);
        float r10963 = sqrt(r10962);
        float r10964 = r10961 / r10963;
        float r10965 = 2;
        float r10966 = x;
        float r10967 = fabs(r10966);
        float r10968 = r10965 * r10967;
        float r10969 = 3;
        float r10970 = r10965 / r10969;
        float r10971 = r10967 * r10967;
        float r10972 = r10971 * r10967;
        float r10973 = r10970 * r10972;
        float r10974 = r10968 + r10973;
        float r10975 = 5;
        float r10976 = r10961 / r10975;
        float r10977 = r10972 * r10967;
        float r10978 = r10977 * r10967;
        float r10979 = r10976 * r10978;
        float r10980 = r10974 + r10979;
        float r10981 = 21;
        float r10982 = r10961 / r10981;
        float r10983 = r10978 * r10967;
        float r10984 = r10983 * r10967;
        float r10985 = r10982 * r10984;
        float r10986 = r10980 + r10985;
        float r10987 = r10964 * r10986;
        float r10988 = fabs(r10987);
        return r10988;
}

double f_id(double x) {
        double r10989 = 1;
        double r10990 = atan2(1.0, 0.0);
        double r10991 = sqrt(r10990);
        double r10992 = r10989 / r10991;
        double r10993 = 2;
        double r10994 = x;
        double r10995 = fabs(r10994);
        double r10996 = r10993 * r10995;
        double r10997 = 3;
        double r10998 = r10993 / r10997;
        double r10999 = r10995 * r10995;
        double r11000 = r10999 * r10995;
        double r11001 = r10998 * r11000;
        double r11002 = r10996 + r11001;
        double r11003 = 5;
        double r11004 = r10989 / r11003;
        double r11005 = r11000 * r10995;
        double r11006 = r11005 * r10995;
        double r11007 = r11004 * r11006;
        double r11008 = r11002 + r11007;
        double r11009 = 21;
        double r11010 = r10989 / r11009;
        double r11011 = r11006 * r10995;
        double r11012 = r11011 * r10995;
        double r11013 = r11010 * r11012;
        double r11014 = r11008 + r11013;
        double r11015 = r10992 * r11014;
        double r11016 = fabs(r11015);
        return r11016;
}


double f_of(float x) {
        float r11017 = 1;
        float r11018 = atan2(1.0, 0.0);
        float r11019 = sqrt(r11018);
        float r11020 = r11017 / r11019;
        float r11021 = 2;
        float r11022 = x;
        float r11023 = fabs(r11022);
        float r11024 = r11021 * r11023;
        float r11025 = 3;
        float r11026 = r11021 / r11025;
        float r11027 = r11023 * r11023;
        float r11028 = r11027 * r11023;
        float r11029 = r11026 * r11028;
        float r11030 = r11024 + r11029;
        float r11031 = 5;
        float r11032 = r11017 / r11031;
        float r11033 = r11028 * r11023;
        float r11034 = r11033 * r11023;
        float r11035 = r11032 * r11034;
        float r11036 = r11030 + r11035;
        float r11037 = pow(r11023, r11025);
        float r11038 = 21;
        float r11039 = r11023 / r11038;
        float r11040 = r11037 * r11039;
        float r11041 = r11040 * r11037;
        float r11042 = pow(r11041, r11017);
        float r11043 = r11036 + r11042;
        float r11044 = r11020 * r11043;
        float r11045 = fabs(r11044);
        return r11045;
}

double f_od(double x) {
        double r11046 = 1;
        double r11047 = atan2(1.0, 0.0);
        double r11048 = sqrt(r11047);
        double r11049 = r11046 / r11048;
        double r11050 = 2;
        double r11051 = x;
        double r11052 = fabs(r11051);
        double r11053 = r11050 * r11052;
        double r11054 = 3;
        double r11055 = r11050 / r11054;
        double r11056 = r11052 * r11052;
        double r11057 = r11056 * r11052;
        double r11058 = r11055 * r11057;
        double r11059 = r11053 + r11058;
        double r11060 = 5;
        double r11061 = r11046 / r11060;
        double r11062 = r11057 * r11052;
        double r11063 = r11062 * r11052;
        double r11064 = r11061 * r11063;
        double r11065 = r11059 + r11064;
        double r11066 = pow(r11052, r11054);
        double r11067 = 21;
        double r11068 = r11052 / r11067;
        double r11069 = r11066 * r11068;
        double r11070 = r11069 * r11066;
        double r11071 = pow(r11070, r11046);
        double r11072 = r11065 + r11071;
        double r11073 = r11049 * r11072;
        double r11074 = fabs(r11073);
        return r11074;
}

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 r11075, r11076, r11077, r11078, r11079, r11080, r11081, r11082, r11083, r11084, r11085, r11086, r11087, r11088, r11089, r11090, r11091, r11092, r11093, r11094, r11095, r11096, r11097, r11098, r11099, r11100, r11101, r11102;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11075, "1", 10, MPFR_RNDN);
        mpfr_init(r11076);
        mpfr_init(r11077);
        mpfr_init(r11078);
        mpfr_init_set_str(r11079, "2", 10, MPFR_RNDN);
        mpfr_init(r11080);
        mpfr_init(r11081);
        mpfr_init(r11082);
        mpfr_init_set_str(r11083, "3", 10, MPFR_RNDN);
        mpfr_init(r11084);
        mpfr_init(r11085);
        mpfr_init(r11086);
        mpfr_init(r11087);
        mpfr_init(r11088);
        mpfr_init_set_str(r11089, "5", 10, MPFR_RNDN);
        mpfr_init(r11090);
        mpfr_init(r11091);
        mpfr_init(r11092);
        mpfr_init(r11093);
        mpfr_init(r11094);
        mpfr_init_set_str(r11095, "21", 10, MPFR_RNDN);
        mpfr_init(r11096);
        mpfr_init(r11097);
        mpfr_init(r11098);
        mpfr_init(r11099);
        mpfr_init(r11100);
        mpfr_init(r11101);
        mpfr_init(r11102);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r11076, MPFR_RNDN);
        mpfr_sqrt(r11077, r11076, MPFR_RNDN);
        mpfr_div(r11078, r11075, r11077, MPFR_RNDN);
        ;
        mpfr_set_d(r11080, x, MPFR_RNDN);
        mpfr_abs(r11081, r11080, MPFR_RNDN);
        mpfr_mul(r11082, r11079, r11081, MPFR_RNDN);
        ;
        mpfr_div(r11084, r11079, r11083, MPFR_RNDN);
        mpfr_mul(r11085, r11081, r11081, MPFR_RNDN);
        mpfr_mul(r11086, r11085, r11081, MPFR_RNDN);
        mpfr_mul(r11087, r11084, r11086, MPFR_RNDN);
        mpfr_add(r11088, r11082, r11087, MPFR_RNDN);
        ;
        mpfr_div(r11090, r11075, r11089, MPFR_RNDN);
        mpfr_mul(r11091, r11086, r11081, MPFR_RNDN);
        mpfr_mul(r11092, r11091, r11081, MPFR_RNDN);
        mpfr_mul(r11093, r11090, r11092, MPFR_RNDN);
        mpfr_add(r11094, r11088, r11093, MPFR_RNDN);
        ;
        mpfr_div(r11096, r11075, r11095, MPFR_RNDN);
        mpfr_mul(r11097, r11092, r11081, MPFR_RNDN);
        mpfr_mul(r11098, r11097, r11081, MPFR_RNDN);
        mpfr_mul(r11099, r11096, r11098, MPFR_RNDN);
        mpfr_add(r11100, r11094, r11099, MPFR_RNDN);
        mpfr_mul(r11101, r11078, r11100, MPFR_RNDN);
        mpfr_abs(r11102, r11101, MPFR_RNDN);
        return mpfr_get_d(r11102, MPFR_RNDN);
}

static mpfr_t r11103, r11104, r11105, r11106, r11107, r11108, r11109, r11110, r11111, r11112, r11113, r11114, r11115, r11116, r11117, r11118, r11119, r11120, r11121, r11122, r11123, r11124, r11125, r11126, r11127, r11128, r11129, r11130, r11131;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11103, "1", 10, MPFR_RNDN);
        mpfr_init(r11104);
        mpfr_init(r11105);
        mpfr_init(r11106);
        mpfr_init_set_str(r11107, "2", 10, MPFR_RNDN);
        mpfr_init(r11108);
        mpfr_init(r11109);
        mpfr_init(r11110);
        mpfr_init_set_str(r11111, "3", 10, MPFR_RNDN);
        mpfr_init(r11112);
        mpfr_init(r11113);
        mpfr_init(r11114);
        mpfr_init(r11115);
        mpfr_init(r11116);
        mpfr_init_set_str(r11117, "5", 10, MPFR_RNDN);
        mpfr_init(r11118);
        mpfr_init(r11119);
        mpfr_init(r11120);
        mpfr_init(r11121);
        mpfr_init(r11122);
        mpfr_init(r11123);
        mpfr_init_set_str(r11124, "21", 10, MPFR_RNDN);
        mpfr_init(r11125);
        mpfr_init(r11126);
        mpfr_init(r11127);
        mpfr_init(r11128);
        mpfr_init(r11129);
        mpfr_init(r11130);
        mpfr_init(r11131);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r11104, MPFR_RNDN);
        mpfr_sqrt(r11105, r11104, MPFR_RNDN);
        mpfr_div(r11106, r11103, r11105, MPFR_RNDN);
        ;
        mpfr_set_d(r11108, x, MPFR_RNDN);
        mpfr_abs(r11109, r11108, MPFR_RNDN);
        mpfr_mul(r11110, r11107, r11109, MPFR_RNDN);
        ;
        mpfr_div(r11112, r11107, r11111, MPFR_RNDN);
        mpfr_mul(r11113, r11109, r11109, MPFR_RNDN);
        mpfr_mul(r11114, r11113, r11109, MPFR_RNDN);
        mpfr_mul(r11115, r11112, r11114, MPFR_RNDN);
        mpfr_add(r11116, r11110, r11115, MPFR_RNDN);
        ;
        mpfr_div(r11118, r11103, r11117, MPFR_RNDN);
        mpfr_mul(r11119, r11114, r11109, MPFR_RNDN);
        mpfr_mul(r11120, r11119, r11109, MPFR_RNDN);
        mpfr_mul(r11121, r11118, r11120, MPFR_RNDN);
        mpfr_add(r11122, r11116, r11121, MPFR_RNDN);
        mpfr_pow(r11123, r11109, r11111, MPFR_RNDN);
        ;
        mpfr_div(r11125, r11109, r11124, MPFR_RNDN);
        mpfr_mul(r11126, r11123, r11125, MPFR_RNDN);
        mpfr_mul(r11127, r11126, r11123, MPFR_RNDN);
        mpfr_pow(r11128, r11127, r11103, MPFR_RNDN);
        mpfr_add(r11129, r11122, r11128, MPFR_RNDN);
        mpfr_mul(r11130, r11106, r11129, MPFR_RNDN);
        mpfr_abs(r11131, r11130, MPFR_RNDN);
        return mpfr_get_d(r11131, MPFR_RNDN);
}

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

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11132, "1", 10, MPFR_RNDN);
        mpfr_init(r11133);
        mpfr_init(r11134);
        mpfr_init(r11135);
        mpfr_init_set_str(r11136, "2", 10, MPFR_RNDN);
        mpfr_init(r11137);
        mpfr_init(r11138);
        mpfr_init(r11139);
        mpfr_init_set_str(r11140, "3", 10, MPFR_RNDN);
        mpfr_init(r11141);
        mpfr_init(r11142);
        mpfr_init(r11143);
        mpfr_init(r11144);
        mpfr_init(r11145);
        mpfr_init_set_str(r11146, "5", 10, MPFR_RNDN);
        mpfr_init(r11147);
        mpfr_init(r11148);
        mpfr_init(r11149);
        mpfr_init(r11150);
        mpfr_init(r11151);
        mpfr_init(r11152);
        mpfr_init_set_str(r11153, "21", 10, MPFR_RNDN);
        mpfr_init(r11154);
        mpfr_init(r11155);
        mpfr_init(r11156);
        mpfr_init(r11157);
        mpfr_init(r11158);
        mpfr_init(r11159);
        mpfr_init(r11160);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r11133, MPFR_RNDN);
        mpfr_sqrt(r11134, r11133, MPFR_RNDN);
        mpfr_div(r11135, r11132, r11134, MPFR_RNDN);
        ;
        mpfr_set_d(r11137, x, MPFR_RNDN);
        mpfr_abs(r11138, r11137, MPFR_RNDN);
        mpfr_mul(r11139, r11136, r11138, MPFR_RNDN);
        ;
        mpfr_div(r11141, r11136, r11140, MPFR_RNDN);
        mpfr_mul(r11142, r11138, r11138, MPFR_RNDN);
        mpfr_mul(r11143, r11142, r11138, MPFR_RNDN);
        mpfr_mul(r11144, r11141, r11143, MPFR_RNDN);
        mpfr_add(r11145, r11139, r11144, MPFR_RNDN);
        ;
        mpfr_div(r11147, r11132, r11146, MPFR_RNDN);
        mpfr_mul(r11148, r11143, r11138, MPFR_RNDN);
        mpfr_mul(r11149, r11148, r11138, MPFR_RNDN);
        mpfr_mul(r11150, r11147, r11149, MPFR_RNDN);
        mpfr_add(r11151, r11145, r11150, MPFR_RNDN);
        mpfr_pow(r11152, r11138, r11140, MPFR_RNDN);
        ;
        mpfr_div(r11154, r11138, r11153, MPFR_RNDN);
        mpfr_mul(r11155, r11152, r11154, MPFR_RNDN);
        mpfr_mul(r11156, r11155, r11152, MPFR_RNDN);
        mpfr_pow(r11157, r11156, r11132, MPFR_RNDN);
        mpfr_add(r11158, r11151, r11157, MPFR_RNDN);
        mpfr_mul(r11159, r11135, r11158, MPFR_RNDN);
        mpfr_abs(r11160, r11159, MPFR_RNDN);
        return mpfr_get_d(r11160, MPFR_RNDN);
}

