#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 r30845 = 1;
        float r30846 = 0.3275911;
        float r30847 = x;
        float r30848 = fabs(r30847);
        float r30849 = r30846 * r30848;
        float r30850 = r30845 + r30849;
        float r30851 = r30845 / r30850;
        float r30852 = 0.254829592;
        float r30853 = -0.284496736;
        float r30854 = 1.421413741;
        float r30855 = -1.453152027;
        float r30856 = 1.061405429;
        float r30857 = r30851 * r30856;
        float r30858 = r30855 + r30857;
        float r30859 = r30851 * r30858;
        float r30860 = r30854 + r30859;
        float r30861 = r30851 * r30860;
        float r30862 = r30853 + r30861;
        float r30863 = r30851 * r30862;
        float r30864 = r30852 + r30863;
        float r30865 = r30851 * r30864;
        float r30866 = r30848 * r30848;
        float r30867 = -r30866;
        float r30868 = exp(r30867);
        float r30869 = r30865 * r30868;
        float r30870 = r30845 - r30869;
        return r30870;
}

double f_id(double x) {
        double r30871 = 1;
        double r30872 = 0.3275911;
        double r30873 = x;
        double r30874 = fabs(r30873);
        double r30875 = r30872 * r30874;
        double r30876 = r30871 + r30875;
        double r30877 = r30871 / r30876;
        double r30878 = 0.254829592;
        double r30879 = -0.284496736;
        double r30880 = 1.421413741;
        double r30881 = -1.453152027;
        double r30882 = 1.061405429;
        double r30883 = r30877 * r30882;
        double r30884 = r30881 + r30883;
        double r30885 = r30877 * r30884;
        double r30886 = r30880 + r30885;
        double r30887 = r30877 * r30886;
        double r30888 = r30879 + r30887;
        double r30889 = r30877 * r30888;
        double r30890 = r30878 + r30889;
        double r30891 = r30877 * r30890;
        double r30892 = r30874 * r30874;
        double r30893 = -r30892;
        double r30894 = exp(r30893);
        double r30895 = r30891 * r30894;
        double r30896 = r30871 - r30895;
        return r30896;
}


double f_of(float x) {
        float r30897 = 1;
        float r30898 = 0.3275911;
        float r30899 = x;
        float r30900 = fabs(r30899);
        float r30901 = r30898 * r30900;
        float r30902 = r30897 + r30901;
        float r30903 = r30897 / r30902;
        float r30904 = 0.254829592;
        float r30905 = -0.284496736;
        float r30906 = 1.421413741;
        float r30907 = -1.453152027;
        float r30908 = 1.061405429;
        float r30909 = r30903 * r30908;
        float r30910 = r30907 + r30909;
        float r30911 = r30903 * r30910;
        float r30912 = r30906 + r30911;
        float r30913 = r30903 * r30912;
        float r30914 = r30905 + r30913;
        float r30915 = r30903 * r30914;
        float r30916 = r30904 + r30915;
        float r30917 = r30903 * r30916;
        float r30918 = r30900 * r30900;
        float r30919 = -r30918;
        float r30920 = exp(r30919);
        float r30921 = r30917 * r30920;
        float r30922 = r30897 - r30921;
        float r30923 = exp(r30922);
        float r30924 = log(r30923);
        float r30925 = log(r30924);
        float r30926 = cbrt(r30925);
        float r30927 = r30926 * r30926;
        float r30928 = exp(r30927);
        float r30929 = pow(r30928, r30926);
        return r30929;
}

double f_od(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;
        double r30956 = exp(r30955);
        double r30957 = log(r30956);
        double r30958 = log(r30957);
        double r30959 = cbrt(r30958);
        double r30960 = r30959 * r30959;
        double r30961 = exp(r30960);
        double r30962 = pow(r30961, r30959);
        return r30962;
}

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 r30963, r30964, r30965, r30966, r30967, r30968, r30969, r30970, r30971, r30972, r30973, r30974, r30975, r30976, r30977, r30978, r30979, r30980, r30981, r30982, r30983, r30984, r30985, r30986, r30987, r30988;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30963, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r30964, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r30965);
        mpfr_init(r30966);
        mpfr_init(r30967);
        mpfr_init(r30968);
        mpfr_init(r30969);
        mpfr_init_set_str(r30970, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r30971, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r30972, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r30973, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r30974, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r30975);
        mpfr_init(r30976);
        mpfr_init(r30977);
        mpfr_init(r30978);
        mpfr_init(r30979);
        mpfr_init(r30980);
        mpfr_init(r30981);
        mpfr_init(r30982);
        mpfr_init(r30983);
        mpfr_init(r30984);
        mpfr_init(r30985);
        mpfr_init(r30986);
        mpfr_init(r30987);
        mpfr_init(r30988);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r30965, x, MPFR_RNDN);
        mpfr_abs(r30966, r30965, MPFR_RNDN);
        mpfr_mul(r30967, r30964, r30966, MPFR_RNDN);
        mpfr_add(r30968, r30963, r30967, MPFR_RNDN);
        mpfr_div(r30969, r30963, r30968, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r30975, r30969, r30974, MPFR_RNDN);
        mpfr_add(r30976, r30973, r30975, MPFR_RNDN);
        mpfr_mul(r30977, r30969, r30976, MPFR_RNDN);
        mpfr_add(r30978, r30972, r30977, MPFR_RNDN);
        mpfr_mul(r30979, r30969, r30978, MPFR_RNDN);
        mpfr_add(r30980, r30971, r30979, MPFR_RNDN);
        mpfr_mul(r30981, r30969, r30980, MPFR_RNDN);
        mpfr_add(r30982, r30970, r30981, MPFR_RNDN);
        mpfr_mul(r30983, r30969, r30982, MPFR_RNDN);
        mpfr_mul(r30984, r30966, r30966, MPFR_RNDN);
        mpfr_neg(r30985, r30984, MPFR_RNDN);
        mpfr_exp(r30986, r30985, MPFR_RNDN);
        mpfr_mul(r30987, r30983, r30986, MPFR_RNDN);
        mpfr_sub(r30988, r30963, r30987, MPFR_RNDN);
        return mpfr_get_d(r30988, MPFR_RNDN);
}

static mpfr_t r30989, r30990, r30991, r30992, r30993, r30994, r30995, r30996, r30997, r30998, r30999, r31000, r31001, r31002, r31003, r31004, r31005, r31006, r31007, r31008, r31009, r31010, r31011, r31012, r31013, r31014, r31015, r31016, r31017, r31018, r31019, r31020, r31021;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30989, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r30990, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r30991);
        mpfr_init(r30992);
        mpfr_init(r30993);
        mpfr_init(r30994);
        mpfr_init(r30995);
        mpfr_init_set_str(r30996, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r30997, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r30998, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r30999, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r31000, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r31001);
        mpfr_init(r31002);
        mpfr_init(r31003);
        mpfr_init(r31004);
        mpfr_init(r31005);
        mpfr_init(r31006);
        mpfr_init(r31007);
        mpfr_init(r31008);
        mpfr_init(r31009);
        mpfr_init(r31010);
        mpfr_init(r31011);
        mpfr_init(r31012);
        mpfr_init(r31013);
        mpfr_init(r31014);
        mpfr_init(r31015);
        mpfr_init(r31016);
        mpfr_init(r31017);
        mpfr_init(r31018);
        mpfr_init(r31019);
        mpfr_init(r31020);
        mpfr_init(r31021);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r30991, x, MPFR_RNDN);
        mpfr_abs(r30992, r30991, MPFR_RNDN);
        mpfr_mul(r30993, r30990, r30992, MPFR_RNDN);
        mpfr_add(r30994, r30989, r30993, MPFR_RNDN);
        mpfr_div(r30995, r30989, r30994, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r31001, r30995, r31000, MPFR_RNDN);
        mpfr_add(r31002, r30999, r31001, MPFR_RNDN);
        mpfr_mul(r31003, r30995, r31002, MPFR_RNDN);
        mpfr_add(r31004, r30998, r31003, MPFR_RNDN);
        mpfr_mul(r31005, r30995, r31004, MPFR_RNDN);
        mpfr_add(r31006, r30997, r31005, MPFR_RNDN);
        mpfr_mul(r31007, r30995, r31006, MPFR_RNDN);
        mpfr_add(r31008, r30996, r31007, MPFR_RNDN);
        mpfr_mul(r31009, r30995, r31008, MPFR_RNDN);
        mpfr_mul(r31010, r30992, r30992, MPFR_RNDN);
        mpfr_neg(r31011, r31010, MPFR_RNDN);
        mpfr_exp(r31012, r31011, MPFR_RNDN);
        mpfr_mul(r31013, r31009, r31012, MPFR_RNDN);
        mpfr_sub(r31014, r30989, r31013, MPFR_RNDN);
        mpfr_exp(r31015, r31014, MPFR_RNDN);
        mpfr_log(r31016, r31015, MPFR_RNDN);
        mpfr_log(r31017, r31016, MPFR_RNDN);
        mpfr_cbrt(r31018, r31017, MPFR_RNDN);
        mpfr_mul(r31019, r31018, r31018, MPFR_RNDN);
        mpfr_exp(r31020, r31019, MPFR_RNDN);
        mpfr_pow(r31021, r31020, r31018, MPFR_RNDN);
        return mpfr_get_d(r31021, MPFR_RNDN);
}

static mpfr_t r31022, r31023, r31024, r31025, r31026, r31027, r31028, r31029, r31030, r31031, r31032, r31033, r31034, r31035, r31036, r31037, r31038, r31039, r31040, r31041, r31042, r31043, r31044, r31045, r31046, r31047, r31048, r31049, r31050, r31051, r31052, r31053, r31054;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r31022, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r31023, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r31024);
        mpfr_init(r31025);
        mpfr_init(r31026);
        mpfr_init(r31027);
        mpfr_init(r31028);
        mpfr_init_set_str(r31029, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r31030, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r31031, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r31032, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r31033, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r31034);
        mpfr_init(r31035);
        mpfr_init(r31036);
        mpfr_init(r31037);
        mpfr_init(r31038);
        mpfr_init(r31039);
        mpfr_init(r31040);
        mpfr_init(r31041);
        mpfr_init(r31042);
        mpfr_init(r31043);
        mpfr_init(r31044);
        mpfr_init(r31045);
        mpfr_init(r31046);
        mpfr_init(r31047);
        mpfr_init(r31048);
        mpfr_init(r31049);
        mpfr_init(r31050);
        mpfr_init(r31051);
        mpfr_init(r31052);
        mpfr_init(r31053);
        mpfr_init(r31054);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r31024, x, MPFR_RNDN);
        mpfr_abs(r31025, r31024, MPFR_RNDN);
        mpfr_mul(r31026, r31023, r31025, MPFR_RNDN);
        mpfr_add(r31027, r31022, r31026, MPFR_RNDN);
        mpfr_div(r31028, r31022, r31027, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r31034, r31028, r31033, MPFR_RNDN);
        mpfr_add(r31035, r31032, r31034, MPFR_RNDN);
        mpfr_mul(r31036, r31028, r31035, MPFR_RNDN);
        mpfr_add(r31037, r31031, r31036, MPFR_RNDN);
        mpfr_mul(r31038, r31028, r31037, MPFR_RNDN);
        mpfr_add(r31039, r31030, r31038, MPFR_RNDN);
        mpfr_mul(r31040, r31028, r31039, MPFR_RNDN);
        mpfr_add(r31041, r31029, r31040, MPFR_RNDN);
        mpfr_mul(r31042, r31028, r31041, MPFR_RNDN);
        mpfr_mul(r31043, r31025, r31025, MPFR_RNDN);
        mpfr_neg(r31044, r31043, MPFR_RNDN);
        mpfr_exp(r31045, r31044, MPFR_RNDN);
        mpfr_mul(r31046, r31042, r31045, MPFR_RNDN);
        mpfr_sub(r31047, r31022, r31046, MPFR_RNDN);
        mpfr_exp(r31048, r31047, MPFR_RNDN);
        mpfr_log(r31049, r31048, MPFR_RNDN);
        mpfr_log(r31050, r31049, MPFR_RNDN);
        mpfr_cbrt(r31051, r31050, MPFR_RNDN);
        mpfr_mul(r31052, r31051, r31051, MPFR_RNDN);
        mpfr_exp(r31053, r31052, MPFR_RNDN);
        mpfr_pow(r31054, r31053, r31051, MPFR_RNDN);
        return mpfr_get_d(r31054, MPFR_RNDN);
}

