#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 r30980 = 1;
        float r30981 = atan2(1.0, 0.0);
        float r30982 = sqrt(r30981);
        float r30983 = r30980 / r30982;
        float r30984 = 2;
        float r30985 = x;
        float r30986 = fabs(r30985);
        float r30987 = r30984 * r30986;
        float r30988 = 3;
        float r30989 = r30984 / r30988;
        float r30990 = r30986 * r30986;
        float r30991 = r30990 * r30986;
        float r30992 = r30989 * r30991;
        float r30993 = r30987 + r30992;
        float r30994 = 5;
        float r30995 = r30980 / r30994;
        float r30996 = r30991 * r30986;
        float r30997 = r30996 * r30986;
        float r30998 = r30995 * r30997;
        float r30999 = r30993 + r30998;
        float r31000 = 21;
        float r31001 = r30980 / r31000;
        float r31002 = r30997 * r30986;
        float r31003 = r31002 * r30986;
        float r31004 = r31001 * r31003;
        float r31005 = r30999 + r31004;
        float r31006 = r30983 * r31005;
        float r31007 = fabs(r31006);
        return r31007;
}

double f_id(double x) {
        double r31008 = 1;
        double r31009 = atan2(1.0, 0.0);
        double r31010 = sqrt(r31009);
        double r31011 = r31008 / r31010;
        double r31012 = 2;
        double r31013 = x;
        double r31014 = fabs(r31013);
        double r31015 = r31012 * r31014;
        double r31016 = 3;
        double r31017 = r31012 / r31016;
        double r31018 = r31014 * r31014;
        double r31019 = r31018 * r31014;
        double r31020 = r31017 * r31019;
        double r31021 = r31015 + r31020;
        double r31022 = 5;
        double r31023 = r31008 / r31022;
        double r31024 = r31019 * r31014;
        double r31025 = r31024 * r31014;
        double r31026 = r31023 * r31025;
        double r31027 = r31021 + r31026;
        double r31028 = 21;
        double r31029 = r31008 / r31028;
        double r31030 = r31025 * r31014;
        double r31031 = r31030 * r31014;
        double r31032 = r31029 * r31031;
        double r31033 = r31027 + r31032;
        double r31034 = r31011 * r31033;
        double r31035 = fabs(r31034);
        return r31035;
}


double f_of(float x) {
        float r31036 = 2/3;
        float r31037 = x;
        float r31038 = fabs(r31037);
        float r31039 = 3;
        float r31040 = pow(r31038, r31039);
        float r31041 = r31036 * r31040;
        float r31042 = 2;
        float r31043 = r31042 * r31038;
        float r31044 = 1/21;
        float r31045 = 7;
        float r31046 = pow(r31038, r31045);
        float r31047 = r31044 * r31046;
        float r31048 = 1/5;
        float r31049 = 5;
        float r31050 = pow(r31038, r31049);
        float r31051 = r31048 * r31050;
        float r31052 = r31047 + r31051;
        float r31053 = r31043 + r31052;
        float r31054 = r31041 + r31053;
        float r31055 = 1;
        float r31056 = atan2(1.0, 0.0);
        float r31057 = r31055 / r31056;
        float r31058 = sqrt(r31057);
        float r31059 = r31054 * r31058;
        float r31060 = fabs(r31059);
        return r31060;
}

double f_od(double x) {
        double r31061 = 2/3;
        double r31062 = x;
        double r31063 = fabs(r31062);
        double r31064 = 3;
        double r31065 = pow(r31063, r31064);
        double r31066 = r31061 * r31065;
        double r31067 = 2;
        double r31068 = r31067 * r31063;
        double r31069 = 1/21;
        double r31070 = 7;
        double r31071 = pow(r31063, r31070);
        double r31072 = r31069 * r31071;
        double r31073 = 1/5;
        double r31074 = 5;
        double r31075 = pow(r31063, r31074);
        double r31076 = r31073 * r31075;
        double r31077 = r31072 + r31076;
        double r31078 = r31068 + r31077;
        double r31079 = r31066 + r31078;
        double r31080 = 1;
        double r31081 = atan2(1.0, 0.0);
        double r31082 = r31080 / r31081;
        double r31083 = sqrt(r31082);
        double r31084 = r31079 * r31083;
        double r31085 = fabs(r31084);
        return r31085;
}

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 r31086, r31087, r31088, r31089, r31090, r31091, r31092, r31093, r31094, r31095, r31096, r31097, r31098, r31099, r31100, r31101, r31102, r31103, r31104, r31105, r31106, r31107, r31108, r31109, r31110, r31111, r31112, r31113;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31086, "1", 10, MPFR_RNDN);
        mpfr_init(r31087);
        mpfr_init(r31088);
        mpfr_init(r31089);
        mpfr_init_set_str(r31090, "2", 10, MPFR_RNDN);
        mpfr_init(r31091);
        mpfr_init(r31092);
        mpfr_init(r31093);
        mpfr_init_set_str(r31094, "3", 10, MPFR_RNDN);
        mpfr_init(r31095);
        mpfr_init(r31096);
        mpfr_init(r31097);
        mpfr_init(r31098);
        mpfr_init(r31099);
        mpfr_init_set_str(r31100, "5", 10, MPFR_RNDN);
        mpfr_init(r31101);
        mpfr_init(r31102);
        mpfr_init(r31103);
        mpfr_init(r31104);
        mpfr_init(r31105);
        mpfr_init_set_str(r31106, "21", 10, MPFR_RNDN);
        mpfr_init(r31107);
        mpfr_init(r31108);
        mpfr_init(r31109);
        mpfr_init(r31110);
        mpfr_init(r31111);
        mpfr_init(r31112);
        mpfr_init(r31113);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r31087, MPFR_RNDN);
        mpfr_sqrt(r31088, r31087, MPFR_RNDN);
        mpfr_div(r31089, r31086, r31088, MPFR_RNDN);
        ;
        mpfr_set_d(r31091, x, MPFR_RNDN);
        mpfr_abs(r31092, r31091, MPFR_RNDN);
        mpfr_mul(r31093, r31090, r31092, MPFR_RNDN);
        ;
        mpfr_div(r31095, r31090, r31094, MPFR_RNDN);
        mpfr_mul(r31096, r31092, r31092, MPFR_RNDN);
        mpfr_mul(r31097, r31096, r31092, MPFR_RNDN);
        mpfr_mul(r31098, r31095, r31097, MPFR_RNDN);
        mpfr_add(r31099, r31093, r31098, MPFR_RNDN);
        ;
        mpfr_div(r31101, r31086, r31100, MPFR_RNDN);
        mpfr_mul(r31102, r31097, r31092, MPFR_RNDN);
        mpfr_mul(r31103, r31102, r31092, MPFR_RNDN);
        mpfr_mul(r31104, r31101, r31103, MPFR_RNDN);
        mpfr_add(r31105, r31099, r31104, MPFR_RNDN);
        ;
        mpfr_div(r31107, r31086, r31106, MPFR_RNDN);
        mpfr_mul(r31108, r31103, r31092, MPFR_RNDN);
        mpfr_mul(r31109, r31108, r31092, MPFR_RNDN);
        mpfr_mul(r31110, r31107, r31109, MPFR_RNDN);
        mpfr_add(r31111, r31105, r31110, MPFR_RNDN);
        mpfr_mul(r31112, r31089, r31111, MPFR_RNDN);
        mpfr_abs(r31113, r31112, MPFR_RNDN);
        return mpfr_get_d(r31113, MPFR_RNDN);
}

static mpfr_t r31114, r31115, r31116, r31117, r31118, r31119, r31120, r31121, r31122, r31123, r31124, r31125, r31126, r31127, r31128, r31129, r31130, r31131, r31132, r31133, r31134, r31135, r31136, r31137, r31138;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31114, "2/3", 10, MPFR_RNDN);
        mpfr_init(r31115);
        mpfr_init(r31116);
        mpfr_init_set_str(r31117, "3", 10, MPFR_RNDN);
        mpfr_init(r31118);
        mpfr_init(r31119);
        mpfr_init_set_str(r31120, "2", 10, MPFR_RNDN);
        mpfr_init(r31121);
        mpfr_init_set_str(r31122, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r31123, "7", 10, MPFR_RNDN);
        mpfr_init(r31124);
        mpfr_init(r31125);
        mpfr_init_set_str(r31126, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r31127, "5", 10, MPFR_RNDN);
        mpfr_init(r31128);
        mpfr_init(r31129);
        mpfr_init(r31130);
        mpfr_init(r31131);
        mpfr_init(r31132);
        mpfr_init_set_str(r31133, "1", 10, MPFR_RNDN);
        mpfr_init(r31134);
        mpfr_init(r31135);
        mpfr_init(r31136);
        mpfr_init(r31137);
        mpfr_init(r31138);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r31115, x, MPFR_RNDN);
        mpfr_abs(r31116, r31115, MPFR_RNDN);
        ;
        mpfr_pow(r31118, r31116, r31117, MPFR_RNDN);
        mpfr_mul(r31119, r31114, r31118, MPFR_RNDN);
        ;
        mpfr_mul(r31121, r31120, r31116, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r31124, r31116, r31123, MPFR_RNDN);
        mpfr_mul(r31125, r31122, r31124, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r31128, r31116, r31127, MPFR_RNDN);
        mpfr_mul(r31129, r31126, r31128, MPFR_RNDN);
        mpfr_add(r31130, r31125, r31129, MPFR_RNDN);
        mpfr_add(r31131, r31121, r31130, MPFR_RNDN);
        mpfr_add(r31132, r31119, r31131, MPFR_RNDN);
        ;
        mpfr_const_pi(r31134, MPFR_RNDN);
        mpfr_div(r31135, r31133, r31134, MPFR_RNDN);
        mpfr_sqrt(r31136, r31135, MPFR_RNDN);
        mpfr_mul(r31137, r31132, r31136, MPFR_RNDN);
        mpfr_abs(r31138, r31137, MPFR_RNDN);
        return mpfr_get_d(r31138, MPFR_RNDN);
}

static mpfr_t r31139, r31140, r31141, r31142, r31143, r31144, r31145, r31146, r31147, r31148, r31149, r31150, r31151, r31152, r31153, r31154, r31155, r31156, r31157, r31158, r31159, r31160, r31161, r31162, r31163;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31139, "2/3", 10, MPFR_RNDN);
        mpfr_init(r31140);
        mpfr_init(r31141);
        mpfr_init_set_str(r31142, "3", 10, MPFR_RNDN);
        mpfr_init(r31143);
        mpfr_init(r31144);
        mpfr_init_set_str(r31145, "2", 10, MPFR_RNDN);
        mpfr_init(r31146);
        mpfr_init_set_str(r31147, "1/21", 10, MPFR_RNDN);
        mpfr_init_set_str(r31148, "7", 10, MPFR_RNDN);
        mpfr_init(r31149);
        mpfr_init(r31150);
        mpfr_init_set_str(r31151, "1/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r31152, "5", 10, MPFR_RNDN);
        mpfr_init(r31153);
        mpfr_init(r31154);
        mpfr_init(r31155);
        mpfr_init(r31156);
        mpfr_init(r31157);
        mpfr_init_set_str(r31158, "1", 10, MPFR_RNDN);
        mpfr_init(r31159);
        mpfr_init(r31160);
        mpfr_init(r31161);
        mpfr_init(r31162);
        mpfr_init(r31163);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r31140, x, MPFR_RNDN);
        mpfr_abs(r31141, r31140, MPFR_RNDN);
        ;
        mpfr_pow(r31143, r31141, r31142, MPFR_RNDN);
        mpfr_mul(r31144, r31139, r31143, MPFR_RNDN);
        ;
        mpfr_mul(r31146, r31145, r31141, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r31149, r31141, r31148, MPFR_RNDN);
        mpfr_mul(r31150, r31147, r31149, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r31153, r31141, r31152, MPFR_RNDN);
        mpfr_mul(r31154, r31151, r31153, MPFR_RNDN);
        mpfr_add(r31155, r31150, r31154, MPFR_RNDN);
        mpfr_add(r31156, r31146, r31155, MPFR_RNDN);
        mpfr_add(r31157, r31144, r31156, MPFR_RNDN);
        ;
        mpfr_const_pi(r31159, MPFR_RNDN);
        mpfr_div(r31160, r31158, r31159, MPFR_RNDN);
        mpfr_sqrt(r31161, r31160, MPFR_RNDN);
        mpfr_mul(r31162, r31157, r31161, MPFR_RNDN);
        mpfr_abs(r31163, r31162, MPFR_RNDN);
        return mpfr_get_d(r31163, MPFR_RNDN);
}

