#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 r26946 = 1;
        float r26947 = atan2(1.0, 0.0);
        float r26948 = sqrt(r26947);
        float r26949 = r26946 / r26948;
        float r26950 = 2;
        float r26951 = x;
        float r26952 = fabs(r26951);
        float r26953 = r26950 * r26952;
        float r26954 = 3;
        float r26955 = r26950 / r26954;
        float r26956 = r26952 * r26952;
        float r26957 = r26956 * r26952;
        float r26958 = r26955 * r26957;
        float r26959 = r26953 + r26958;
        float r26960 = 5;
        float r26961 = r26946 / r26960;
        float r26962 = r26957 * r26952;
        float r26963 = r26962 * r26952;
        float r26964 = r26961 * r26963;
        float r26965 = r26959 + r26964;
        float r26966 = 21;
        float r26967 = r26946 / r26966;
        float r26968 = r26963 * r26952;
        float r26969 = r26968 * r26952;
        float r26970 = r26967 * r26969;
        float r26971 = r26965 + r26970;
        float r26972 = r26949 * r26971;
        float r26973 = fabs(r26972);
        return r26973;
}

double f_id(double x) {
        double r26974 = 1;
        double r26975 = atan2(1.0, 0.0);
        double r26976 = sqrt(r26975);
        double r26977 = r26974 / r26976;
        double r26978 = 2;
        double r26979 = x;
        double r26980 = fabs(r26979);
        double r26981 = r26978 * r26980;
        double r26982 = 3;
        double r26983 = r26978 / r26982;
        double r26984 = r26980 * r26980;
        double r26985 = r26984 * r26980;
        double r26986 = r26983 * r26985;
        double r26987 = r26981 + r26986;
        double r26988 = 5;
        double r26989 = r26974 / r26988;
        double r26990 = r26985 * r26980;
        double r26991 = r26990 * r26980;
        double r26992 = r26989 * r26991;
        double r26993 = r26987 + r26992;
        double r26994 = 21;
        double r26995 = r26974 / r26994;
        double r26996 = r26991 * r26980;
        double r26997 = r26996 * r26980;
        double r26998 = r26995 * r26997;
        double r26999 = r26993 + r26998;
        double r27000 = r26977 * r26999;
        double r27001 = fabs(r27000);
        return r27001;
}


double f_of(float x) {
        float r27002 = 1;
        float r27003 = atan2(1.0, 0.0);
        float r27004 = sqrt(r27003);
        float r27005 = r27002 / r27004;
        float r27006 = x;
        float r27007 = fabs(r27006);
        float r27008 = 5;
        float r27009 = r27007 / r27008;
        float r27010 = r27007 * r27007;
        float r27011 = r27010 * r27010;
        float r27012 = 3;
        float r27013 = 2;
        float r27014 = r27012 / r27013;
        float r27015 = r27007 / r27014;
        float r27016 = r27013 * r27007;
        float r27017 = fma(r27010, r27015, r27016);
        float r27018 = fma(r27009, r27011, r27017);
        float r27019 = r27007 / r27004;
        float r27020 = 21;
        float r27021 = r27019 / r27020;
        float r27022 = pow(r27007, r27012);
        float r27023 = r27022 * r27022;
        float r27024 = r27021 * r27023;
        float r27025 = fma(r27005, r27018, r27024);
        float r27026 = fabs(r27025);
        return r27026;
}

double f_od(double x) {
        double r27027 = 1;
        double r27028 = atan2(1.0, 0.0);
        double r27029 = sqrt(r27028);
        double r27030 = r27027 / r27029;
        double r27031 = x;
        double r27032 = fabs(r27031);
        double r27033 = 5;
        double r27034 = r27032 / r27033;
        double r27035 = r27032 * r27032;
        double r27036 = r27035 * r27035;
        double r27037 = 3;
        double r27038 = 2;
        double r27039 = r27037 / r27038;
        double r27040 = r27032 / r27039;
        double r27041 = r27038 * r27032;
        double r27042 = fma(r27035, r27040, r27041);
        double r27043 = fma(r27034, r27036, r27042);
        double r27044 = r27032 / r27029;
        double r27045 = 21;
        double r27046 = r27044 / r27045;
        double r27047 = pow(r27032, r27037);
        double r27048 = r27047 * r27047;
        double r27049 = r27046 * r27048;
        double r27050 = fma(r27030, r27043, r27049);
        double r27051 = fabs(r27050);
        return r27051;
}

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 r27052, r27053, r27054, r27055, r27056, r27057, r27058, r27059, r27060, r27061, r27062, r27063, r27064, r27065, r27066, r27067, r27068, r27069, r27070, r27071, r27072, r27073, r27074, r27075, r27076, r27077, r27078, r27079;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27052, "1", 10, MPFR_RNDN);
        mpfr_init(r27053);
        mpfr_init(r27054);
        mpfr_init(r27055);
        mpfr_init_set_str(r27056, "2", 10, MPFR_RNDN);
        mpfr_init(r27057);
        mpfr_init(r27058);
        mpfr_init(r27059);
        mpfr_init_set_str(r27060, "3", 10, MPFR_RNDN);
        mpfr_init(r27061);
        mpfr_init(r27062);
        mpfr_init(r27063);
        mpfr_init(r27064);
        mpfr_init(r27065);
        mpfr_init_set_str(r27066, "5", 10, MPFR_RNDN);
        mpfr_init(r27067);
        mpfr_init(r27068);
        mpfr_init(r27069);
        mpfr_init(r27070);
        mpfr_init(r27071);
        mpfr_init_set_str(r27072, "21", 10, MPFR_RNDN);
        mpfr_init(r27073);
        mpfr_init(r27074);
        mpfr_init(r27075);
        mpfr_init(r27076);
        mpfr_init(r27077);
        mpfr_init(r27078);
        mpfr_init(r27079);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27053, MPFR_RNDN);
        mpfr_sqrt(r27054, r27053, MPFR_RNDN);
        mpfr_div(r27055, r27052, r27054, MPFR_RNDN);
        ;
        mpfr_set_d(r27057, x, MPFR_RNDN);
        mpfr_abs(r27058, r27057, MPFR_RNDN);
        mpfr_mul(r27059, r27056, r27058, MPFR_RNDN);
        ;
        mpfr_div(r27061, r27056, r27060, MPFR_RNDN);
        mpfr_mul(r27062, r27058, r27058, MPFR_RNDN);
        mpfr_mul(r27063, r27062, r27058, MPFR_RNDN);
        mpfr_mul(r27064, r27061, r27063, MPFR_RNDN);
        mpfr_add(r27065, r27059, r27064, MPFR_RNDN);
        ;
        mpfr_div(r27067, r27052, r27066, MPFR_RNDN);
        mpfr_mul(r27068, r27063, r27058, MPFR_RNDN);
        mpfr_mul(r27069, r27068, r27058, MPFR_RNDN);
        mpfr_mul(r27070, r27067, r27069, MPFR_RNDN);
        mpfr_add(r27071, r27065, r27070, MPFR_RNDN);
        ;
        mpfr_div(r27073, r27052, r27072, MPFR_RNDN);
        mpfr_mul(r27074, r27069, r27058, MPFR_RNDN);
        mpfr_mul(r27075, r27074, r27058, MPFR_RNDN);
        mpfr_mul(r27076, r27073, r27075, MPFR_RNDN);
        mpfr_add(r27077, r27071, r27076, MPFR_RNDN);
        mpfr_mul(r27078, r27055, r27077, MPFR_RNDN);
        mpfr_abs(r27079, r27078, MPFR_RNDN);
        return mpfr_get_d(r27079, MPFR_RNDN);
}

static mpfr_t r27080, r27081, r27082, r27083, r27084, r27085, r27086, r27087, r27088, r27089, r27090, r27091, r27092, r27093, r27094, r27095, r27096, r27097, r27098, r27099, r27100, r27101, r27102, r27103, r27104;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27080, "1", 10, MPFR_RNDN);
        mpfr_init(r27081);
        mpfr_init(r27082);
        mpfr_init(r27083);
        mpfr_init(r27084);
        mpfr_init(r27085);
        mpfr_init_set_str(r27086, "5", 10, MPFR_RNDN);
        mpfr_init(r27087);
        mpfr_init(r27088);
        mpfr_init(r27089);
        mpfr_init_set_str(r27090, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27091, "2", 10, MPFR_RNDN);
        mpfr_init(r27092);
        mpfr_init(r27093);
        mpfr_init(r27094);
        mpfr_init(r27095);
        mpfr_init(r27096);
        mpfr_init(r27097);
        mpfr_init_set_str(r27098, "21", 10, MPFR_RNDN);
        mpfr_init(r27099);
        mpfr_init(r27100);
        mpfr_init(r27101);
        mpfr_init(r27102);
        mpfr_init(r27103);
        mpfr_init(r27104);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r27081, MPFR_RNDN);
        mpfr_sqrt(r27082, r27081, MPFR_RNDN);
        mpfr_div(r27083, r27080, r27082, MPFR_RNDN);
        mpfr_set_d(r27084, x, MPFR_RNDN);
        mpfr_abs(r27085, r27084, MPFR_RNDN);
        ;
        mpfr_div(r27087, r27085, r27086, MPFR_RNDN);
        mpfr_mul(r27088, r27085, r27085, MPFR_RNDN);
        mpfr_mul(r27089, r27088, r27088, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27092, r27090, r27091, MPFR_RNDN);
        mpfr_div(r27093, r27085, r27092, MPFR_RNDN);
        mpfr_mul(r27094, r27091, r27085, MPFR_RNDN);
        mpfr_fma(r27095, r27088, r27093, r27094, MPFR_RNDN);
        mpfr_fma(r27096, r27087, r27089, r27095, MPFR_RNDN);
        mpfr_div(r27097, r27085, r27082, MPFR_RNDN);
        ;
        mpfr_div(r27099, r27097, r27098, MPFR_RNDN);
        mpfr_pow(r27100, r27085, r27090, MPFR_RNDN);
        mpfr_mul(r27101, r27100, r27100, MPFR_RNDN);
        mpfr_mul(r27102, r27099, r27101, MPFR_RNDN);
        mpfr_fma(r27103, r27083, r27096, r27102, MPFR_RNDN);
        mpfr_abs(r27104, r27103, MPFR_RNDN);
        return mpfr_get_d(r27104, MPFR_RNDN);
}

static mpfr_t r27105, r27106, r27107, r27108, r27109, r27110, r27111, r27112, r27113, r27114, r27115, r27116, r27117, r27118, r27119, r27120, r27121, r27122, r27123, r27124, r27125, r27126, r27127, r27128, r27129;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27105, "1", 10, MPFR_RNDN);
        mpfr_init(r27106);
        mpfr_init(r27107);
        mpfr_init(r27108);
        mpfr_init(r27109);
        mpfr_init(r27110);
        mpfr_init_set_str(r27111, "5", 10, MPFR_RNDN);
        mpfr_init(r27112);
        mpfr_init(r27113);
        mpfr_init(r27114);
        mpfr_init_set_str(r27115, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27116, "2", 10, MPFR_RNDN);
        mpfr_init(r27117);
        mpfr_init(r27118);
        mpfr_init(r27119);
        mpfr_init(r27120);
        mpfr_init(r27121);
        mpfr_init(r27122);
        mpfr_init_set_str(r27123, "21", 10, MPFR_RNDN);
        mpfr_init(r27124);
        mpfr_init(r27125);
        mpfr_init(r27126);
        mpfr_init(r27127);
        mpfr_init(r27128);
        mpfr_init(r27129);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r27106, MPFR_RNDN);
        mpfr_sqrt(r27107, r27106, MPFR_RNDN);
        mpfr_div(r27108, r27105, r27107, MPFR_RNDN);
        mpfr_set_d(r27109, x, MPFR_RNDN);
        mpfr_abs(r27110, r27109, MPFR_RNDN);
        ;
        mpfr_div(r27112, r27110, r27111, MPFR_RNDN);
        mpfr_mul(r27113, r27110, r27110, MPFR_RNDN);
        mpfr_mul(r27114, r27113, r27113, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27117, r27115, r27116, MPFR_RNDN);
        mpfr_div(r27118, r27110, r27117, MPFR_RNDN);
        mpfr_mul(r27119, r27116, r27110, MPFR_RNDN);
        mpfr_fma(r27120, r27113, r27118, r27119, MPFR_RNDN);
        mpfr_fma(r27121, r27112, r27114, r27120, MPFR_RNDN);
        mpfr_div(r27122, r27110, r27107, MPFR_RNDN);
        ;
        mpfr_div(r27124, r27122, r27123, MPFR_RNDN);
        mpfr_pow(r27125, r27110, r27115, MPFR_RNDN);
        mpfr_mul(r27126, r27125, r27125, MPFR_RNDN);
        mpfr_mul(r27127, r27124, r27126, MPFR_RNDN);
        mpfr_fma(r27128, r27108, r27121, r27127, MPFR_RNDN);
        mpfr_abs(r27129, r27128, MPFR_RNDN);
        return mpfr_get_d(r27129, MPFR_RNDN);
}

