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

char *name = "Jmat.Real.erf";

double f_if(float x) {
        float r30904 = 1;
        float r30905 = 0.3275911;
        float r30906 = x;
        float r30907 = fabs(r30906);
        float r30908 = r30905 * r30907;
        float r30909 = r30904 + r30908;
        float r30910 = r30904 / r30909;
        float r30911 = 0.254829592;
        float r30912 = -0.284496736;
        float r30913 = 1.421413741;
        float r30914 = -1.453152027;
        float r30915 = 1.061405429;
        float r30916 = r30910 * r30915;
        float r30917 = r30914 + r30916;
        float r30918 = r30910 * r30917;
        float r30919 = r30913 + r30918;
        float r30920 = r30910 * r30919;
        float r30921 = r30912 + r30920;
        float r30922 = r30910 * r30921;
        float r30923 = r30911 + r30922;
        float r30924 = r30910 * r30923;
        float r30925 = r30907 * r30907;
        float r30926 = -r30925;
        float r30927 = exp(r30926);
        float r30928 = r30924 * r30927;
        float r30929 = r30904 - r30928;
        return r30929;
}

double f_id(double x) {
        double r30930 = 1;
        double r30931 = 0.3275911;
        double r30932 = x;
        double r30933 = fabs(r30932);
        double r30934 = r30931 * r30933;
        double r30935 = r30930 + r30934;
        double r30936 = r30930 / r30935;
        double r30937 = 0.254829592;
        double r30938 = -0.284496736;
        double r30939 = 1.421413741;
        double r30940 = -1.453152027;
        double r30941 = 1.061405429;
        double r30942 = r30936 * r30941;
        double r30943 = r30940 + r30942;
        double r30944 = r30936 * r30943;
        double r30945 = r30939 + r30944;
        double r30946 = r30936 * r30945;
        double r30947 = r30938 + r30946;
        double r30948 = r30936 * r30947;
        double r30949 = r30937 + r30948;
        double r30950 = r30936 * r30949;
        double r30951 = r30933 * r30933;
        double r30952 = -r30951;
        double r30953 = exp(r30952);
        double r30954 = r30950 * r30953;
        double r30955 = r30930 - r30954;
        return r30955;
}


double f_of(float x) {
        float r30956 = 1;
        float r30957 = 0.3275911;
        float r30958 = x;
        float r30959 = fabs(r30958);
        float r30960 = r30957 * r30959;
        float r30961 = r30956 + r30960;
        float r30962 = r30956 / r30961;
        float r30963 = 0.254829592;
        float r30964 = -0.284496736;
        float r30965 = 1.421413741;
        float r30966 = -1.453152027;
        float r30967 = 1.061405429;
        float r30968 = r30962 * r30967;
        float r30969 = r30966 + r30968;
        float r30970 = r30962 * r30969;
        float r30971 = r30965 + r30970;
        float r30972 = r30962 * r30971;
        float r30973 = r30964 + r30972;
        float r30974 = r30962 * r30973;
        float r30975 = r30963 + r30974;
        float r30976 = r30962 * r30975;
        float r30977 = r30959 * r30959;
        float r30978 = -r30977;
        float r30979 = exp(r30978);
        float r30980 = r30976 * r30979;
        float r30981 = r30956 - r30980;
        float r30982 = exp(r30981);
        float r30983 = log(r30982);
        float r30984 = log(r30983);
        float r30985 = cbrt(r30984);
        float r30986 = r30985 * r30985;
        float r30987 = exp(r30986);
        float r30988 = cbrt(r30981);
        float r30989 = r30988 * r30988;
        float r30990 = exp(r30989);
        float r30991 = log(r30990);
        float r30992 = r30988 * r30991;
        float r30993 = log(r30992);
        float r30994 = cbrt(r30993);
        float r30995 = pow(r30987, r30994);
        return r30995;
}

double f_od(double x) {
        double r30996 = 1;
        double r30997 = 0.3275911;
        double r30998 = x;
        double r30999 = fabs(r30998);
        double r31000 = r30997 * r30999;
        double r31001 = r30996 + r31000;
        double r31002 = r30996 / r31001;
        double r31003 = 0.254829592;
        double r31004 = -0.284496736;
        double r31005 = 1.421413741;
        double r31006 = -1.453152027;
        double r31007 = 1.061405429;
        double r31008 = r31002 * r31007;
        double r31009 = r31006 + r31008;
        double r31010 = r31002 * r31009;
        double r31011 = r31005 + r31010;
        double r31012 = r31002 * r31011;
        double r31013 = r31004 + r31012;
        double r31014 = r31002 * r31013;
        double r31015 = r31003 + r31014;
        double r31016 = r31002 * r31015;
        double r31017 = r30999 * r30999;
        double r31018 = -r31017;
        double r31019 = exp(r31018);
        double r31020 = r31016 * r31019;
        double r31021 = r30996 - r31020;
        double r31022 = exp(r31021);
        double r31023 = log(r31022);
        double r31024 = log(r31023);
        double r31025 = cbrt(r31024);
        double r31026 = r31025 * r31025;
        double r31027 = exp(r31026);
        double r31028 = cbrt(r31021);
        double r31029 = r31028 * r31028;
        double r31030 = exp(r31029);
        double r31031 = log(r31030);
        double r31032 = r31028 * r31031;
        double r31033 = log(r31032);
        double r31034 = cbrt(r31033);
        double r31035 = pow(r31027, r31034);
        return r31035;
}

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 r31036, r31037, r31038, r31039, r31040, r31041, r31042, r31043, r31044, r31045, r31046, r31047, r31048, r31049, r31050, r31051, r31052, r31053, r31054, r31055, r31056, r31057, r31058, r31059, r31060, r31061;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31036, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r31037, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r31038);
        mpfr_init(r31039);
        mpfr_init(r31040);
        mpfr_init(r31041);
        mpfr_init(r31042);
        mpfr_init_set_str(r31043, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r31044, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r31045, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r31046, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r31047, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r31048);
        mpfr_init(r31049);
        mpfr_init(r31050);
        mpfr_init(r31051);
        mpfr_init(r31052);
        mpfr_init(r31053);
        mpfr_init(r31054);
        mpfr_init(r31055);
        mpfr_init(r31056);
        mpfr_init(r31057);
        mpfr_init(r31058);
        mpfr_init(r31059);
        mpfr_init(r31060);
        mpfr_init(r31061);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r31038, x, MPFR_RNDN);
        mpfr_abs(r31039, r31038, MPFR_RNDN);
        mpfr_mul(r31040, r31037, r31039, MPFR_RNDN);
        mpfr_add(r31041, r31036, r31040, MPFR_RNDN);
        mpfr_div(r31042, r31036, r31041, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r31048, r31042, r31047, MPFR_RNDN);
        mpfr_add(r31049, r31046, r31048, MPFR_RNDN);
        mpfr_mul(r31050, r31042, r31049, MPFR_RNDN);
        mpfr_add(r31051, r31045, r31050, MPFR_RNDN);
        mpfr_mul(r31052, r31042, r31051, MPFR_RNDN);
        mpfr_add(r31053, r31044, r31052, MPFR_RNDN);
        mpfr_mul(r31054, r31042, r31053, MPFR_RNDN);
        mpfr_add(r31055, r31043, r31054, MPFR_RNDN);
        mpfr_mul(r31056, r31042, r31055, MPFR_RNDN);
        mpfr_mul(r31057, r31039, r31039, MPFR_RNDN);
        mpfr_neg(r31058, r31057, MPFR_RNDN);
        mpfr_exp(r31059, r31058, MPFR_RNDN);
        mpfr_mul(r31060, r31056, r31059, MPFR_RNDN);
        mpfr_sub(r31061, r31036, r31060, MPFR_RNDN);
        return mpfr_get_d(r31061, MPFR_RNDN);
}

static mpfr_t r31062, r31063, r31064, r31065, r31066, r31067, r31068, r31069, r31070, r31071, r31072, r31073, r31074, r31075, r31076, r31077, r31078, r31079, r31080, r31081, r31082, r31083, r31084, r31085, r31086, r31087, r31088, r31089, r31090, r31091, r31092, r31093, r31094, r31095, r31096, r31097, r31098, r31099, r31100, r31101;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31062, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r31063, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r31064);
        mpfr_init(r31065);
        mpfr_init(r31066);
        mpfr_init(r31067);
        mpfr_init(r31068);
        mpfr_init_set_str(r31069, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r31070, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r31071, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r31072, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r31073, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r31074);
        mpfr_init(r31075);
        mpfr_init(r31076);
        mpfr_init(r31077);
        mpfr_init(r31078);
        mpfr_init(r31079);
        mpfr_init(r31080);
        mpfr_init(r31081);
        mpfr_init(r31082);
        mpfr_init(r31083);
        mpfr_init(r31084);
        mpfr_init(r31085);
        mpfr_init(r31086);
        mpfr_init(r31087);
        mpfr_init(r31088);
        mpfr_init(r31089);
        mpfr_init(r31090);
        mpfr_init(r31091);
        mpfr_init(r31092);
        mpfr_init(r31093);
        mpfr_init(r31094);
        mpfr_init(r31095);
        mpfr_init(r31096);
        mpfr_init(r31097);
        mpfr_init(r31098);
        mpfr_init(r31099);
        mpfr_init(r31100);
        mpfr_init(r31101);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r31064, x, MPFR_RNDN);
        mpfr_abs(r31065, r31064, MPFR_RNDN);
        mpfr_mul(r31066, r31063, r31065, MPFR_RNDN);
        mpfr_add(r31067, r31062, r31066, MPFR_RNDN);
        mpfr_div(r31068, r31062, r31067, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r31074, r31068, r31073, MPFR_RNDN);
        mpfr_add(r31075, r31072, r31074, MPFR_RNDN);
        mpfr_mul(r31076, r31068, r31075, MPFR_RNDN);
        mpfr_add(r31077, r31071, r31076, MPFR_RNDN);
        mpfr_mul(r31078, r31068, r31077, MPFR_RNDN);
        mpfr_add(r31079, r31070, r31078, MPFR_RNDN);
        mpfr_mul(r31080, r31068, r31079, MPFR_RNDN);
        mpfr_add(r31081, r31069, r31080, MPFR_RNDN);
        mpfr_mul(r31082, r31068, r31081, MPFR_RNDN);
        mpfr_mul(r31083, r31065, r31065, MPFR_RNDN);
        mpfr_neg(r31084, r31083, MPFR_RNDN);
        mpfr_exp(r31085, r31084, MPFR_RNDN);
        mpfr_mul(r31086, r31082, r31085, MPFR_RNDN);
        mpfr_sub(r31087, r31062, r31086, MPFR_RNDN);
        mpfr_exp(r31088, r31087, MPFR_RNDN);
        mpfr_log(r31089, r31088, MPFR_RNDN);
        mpfr_log(r31090, r31089, MPFR_RNDN);
        mpfr_cbrt(r31091, r31090, MPFR_RNDN);
        mpfr_mul(r31092, r31091, r31091, MPFR_RNDN);
        mpfr_exp(r31093, r31092, MPFR_RNDN);
        mpfr_cbrt(r31094, r31087, MPFR_RNDN);
        mpfr_mul(r31095, r31094, r31094, MPFR_RNDN);
        mpfr_exp(r31096, r31095, MPFR_RNDN);
        mpfr_log(r31097, r31096, MPFR_RNDN);
        mpfr_mul(r31098, r31094, r31097, MPFR_RNDN);
        mpfr_log(r31099, r31098, MPFR_RNDN);
        mpfr_cbrt(r31100, r31099, MPFR_RNDN);
        mpfr_pow(r31101, r31093, r31100, MPFR_RNDN);
        return mpfr_get_d(r31101, MPFR_RNDN);
}

static mpfr_t r31102, r31103, r31104, r31105, r31106, r31107, r31108, r31109, r31110, r31111, r31112, r31113, 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, r31139, r31140, r31141;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31102, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r31103, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r31104);
        mpfr_init(r31105);
        mpfr_init(r31106);
        mpfr_init(r31107);
        mpfr_init(r31108);
        mpfr_init_set_str(r31109, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r31110, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r31111, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r31112, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r31113, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r31114);
        mpfr_init(r31115);
        mpfr_init(r31116);
        mpfr_init(r31117);
        mpfr_init(r31118);
        mpfr_init(r31119);
        mpfr_init(r31120);
        mpfr_init(r31121);
        mpfr_init(r31122);
        mpfr_init(r31123);
        mpfr_init(r31124);
        mpfr_init(r31125);
        mpfr_init(r31126);
        mpfr_init(r31127);
        mpfr_init(r31128);
        mpfr_init(r31129);
        mpfr_init(r31130);
        mpfr_init(r31131);
        mpfr_init(r31132);
        mpfr_init(r31133);
        mpfr_init(r31134);
        mpfr_init(r31135);
        mpfr_init(r31136);
        mpfr_init(r31137);
        mpfr_init(r31138);
        mpfr_init(r31139);
        mpfr_init(r31140);
        mpfr_init(r31141);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r31104, x, MPFR_RNDN);
        mpfr_abs(r31105, r31104, MPFR_RNDN);
        mpfr_mul(r31106, r31103, r31105, MPFR_RNDN);
        mpfr_add(r31107, r31102, r31106, MPFR_RNDN);
        mpfr_div(r31108, r31102, r31107, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r31114, r31108, r31113, MPFR_RNDN);
        mpfr_add(r31115, r31112, r31114, MPFR_RNDN);
        mpfr_mul(r31116, r31108, r31115, MPFR_RNDN);
        mpfr_add(r31117, r31111, r31116, MPFR_RNDN);
        mpfr_mul(r31118, r31108, r31117, MPFR_RNDN);
        mpfr_add(r31119, r31110, r31118, MPFR_RNDN);
        mpfr_mul(r31120, r31108, r31119, MPFR_RNDN);
        mpfr_add(r31121, r31109, r31120, MPFR_RNDN);
        mpfr_mul(r31122, r31108, r31121, MPFR_RNDN);
        mpfr_mul(r31123, r31105, r31105, MPFR_RNDN);
        mpfr_neg(r31124, r31123, MPFR_RNDN);
        mpfr_exp(r31125, r31124, MPFR_RNDN);
        mpfr_mul(r31126, r31122, r31125, MPFR_RNDN);
        mpfr_sub(r31127, r31102, r31126, MPFR_RNDN);
        mpfr_exp(r31128, r31127, MPFR_RNDN);
        mpfr_log(r31129, r31128, MPFR_RNDN);
        mpfr_log(r31130, r31129, MPFR_RNDN);
        mpfr_cbrt(r31131, r31130, MPFR_RNDN);
        mpfr_mul(r31132, r31131, r31131, MPFR_RNDN);
        mpfr_exp(r31133, r31132, MPFR_RNDN);
        mpfr_cbrt(r31134, r31127, MPFR_RNDN);
        mpfr_mul(r31135, r31134, r31134, MPFR_RNDN);
        mpfr_exp(r31136, r31135, MPFR_RNDN);
        mpfr_log(r31137, r31136, MPFR_RNDN);
        mpfr_mul(r31138, r31134, r31137, MPFR_RNDN);
        mpfr_log(r31139, r31138, MPFR_RNDN);
        mpfr_cbrt(r31140, r31139, MPFR_RNDN);
        mpfr_pow(r31141, r31133, r31140, MPFR_RNDN);
        return mpfr_get_d(r31141, MPFR_RNDN);
}

