#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 r30780 = 1;
        float r30781 = 0.3275911;
        float r30782 = x;
        float r30783 = fabs(r30782);
        float r30784 = r30781 * r30783;
        float r30785 = r30780 + r30784;
        float r30786 = r30780 / r30785;
        float r30787 = 0.254829592;
        float r30788 = -0.284496736;
        float r30789 = 1.421413741;
        float r30790 = -1.453152027;
        float r30791 = 1.061405429;
        float r30792 = r30786 * r30791;
        float r30793 = r30790 + r30792;
        float r30794 = r30786 * r30793;
        float r30795 = r30789 + r30794;
        float r30796 = r30786 * r30795;
        float r30797 = r30788 + r30796;
        float r30798 = r30786 * r30797;
        float r30799 = r30787 + r30798;
        float r30800 = r30786 * r30799;
        float r30801 = r30783 * r30783;
        float r30802 = -r30801;
        float r30803 = exp(r30802);
        float r30804 = r30800 * r30803;
        float r30805 = r30780 - r30804;
        return r30805;
}

double f_id(double x) {
        double r30806 = 1;
        double r30807 = 0.3275911;
        double r30808 = x;
        double r30809 = fabs(r30808);
        double r30810 = r30807 * r30809;
        double r30811 = r30806 + r30810;
        double r30812 = r30806 / r30811;
        double r30813 = 0.254829592;
        double r30814 = -0.284496736;
        double r30815 = 1.421413741;
        double r30816 = -1.453152027;
        double r30817 = 1.061405429;
        double r30818 = r30812 * r30817;
        double r30819 = r30816 + r30818;
        double r30820 = r30812 * r30819;
        double r30821 = r30815 + r30820;
        double r30822 = r30812 * r30821;
        double r30823 = r30814 + r30822;
        double r30824 = r30812 * r30823;
        double r30825 = r30813 + r30824;
        double r30826 = r30812 * r30825;
        double r30827 = r30809 * r30809;
        double r30828 = -r30827;
        double r30829 = exp(r30828);
        double r30830 = r30826 * r30829;
        double r30831 = r30806 - r30830;
        return r30831;
}


double f_of(float x) {
        float r30832 = 1;
        float r30833 = 0.3275911;
        float r30834 = x;
        float r30835 = fabs(r30834);
        float r30836 = r30833 * r30835;
        float r30837 = r30832 + r30836;
        float r30838 = r30832 / r30837;
        float r30839 = 0.254829592;
        float r30840 = -0.284496736;
        float r30841 = 1.421413741;
        float r30842 = -1.453152027;
        float r30843 = 1.061405429;
        float r30844 = r30838 * r30843;
        float r30845 = r30842 + r30844;
        float r30846 = r30838 * r30845;
        float r30847 = r30841 + r30846;
        float r30848 = r30838 * r30847;
        float r30849 = r30840 + r30848;
        float r30850 = r30838 * r30849;
        float r30851 = r30839 + r30850;
        float r30852 = r30838 * r30851;
        float r30853 = r30835 * r30835;
        float r30854 = -r30853;
        float r30855 = exp(r30854);
        float r30856 = r30852 * r30855;
        float r30857 = r30832 - r30856;
        float r30858 = exp(r30857);
        float r30859 = log(r30858);
        float r30860 = log(r30859);
        float r30861 = cbrt(r30860);
        float r30862 = r30861 * r30861;
        float r30863 = exp(r30862);
        float r30864 = cbrt(r30857);
        float r30865 = r30864 * r30864;
        float r30866 = exp(r30865);
        float r30867 = log(r30866);
        float r30868 = r30864 * r30867;
        float r30869 = log(r30868);
        float r30870 = cbrt(r30869);
        float r30871 = pow(r30863, r30870);
        return r30871;
}

double f_od(double x) {
        double r30872 = 1;
        double r30873 = 0.3275911;
        double r30874 = x;
        double r30875 = fabs(r30874);
        double r30876 = r30873 * r30875;
        double r30877 = r30872 + r30876;
        double r30878 = r30872 / r30877;
        double r30879 = 0.254829592;
        double r30880 = -0.284496736;
        double r30881 = 1.421413741;
        double r30882 = -1.453152027;
        double r30883 = 1.061405429;
        double r30884 = r30878 * r30883;
        double r30885 = r30882 + r30884;
        double r30886 = r30878 * r30885;
        double r30887 = r30881 + r30886;
        double r30888 = r30878 * r30887;
        double r30889 = r30880 + r30888;
        double r30890 = r30878 * r30889;
        double r30891 = r30879 + r30890;
        double r30892 = r30878 * r30891;
        double r30893 = r30875 * r30875;
        double r30894 = -r30893;
        double r30895 = exp(r30894);
        double r30896 = r30892 * r30895;
        double r30897 = r30872 - r30896;
        double r30898 = exp(r30897);
        double r30899 = log(r30898);
        double r30900 = log(r30899);
        double r30901 = cbrt(r30900);
        double r30902 = r30901 * r30901;
        double r30903 = exp(r30902);
        double r30904 = cbrt(r30897);
        double r30905 = r30904 * r30904;
        double r30906 = exp(r30905);
        double r30907 = log(r30906);
        double r30908 = r30904 * r30907;
        double r30909 = log(r30908);
        double r30910 = cbrt(r30909);
        double r30911 = pow(r30903, r30910);
        return r30911;
}

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 r30912, r30913, r30914, r30915, r30916, r30917, r30918, r30919, r30920, r30921, r30922, r30923, r30924, r30925, r30926, r30927, r30928, r30929, r30930, r30931, r30932, r30933, r30934, r30935, r30936, r30937;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30912, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r30913, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r30914);
        mpfr_init(r30915);
        mpfr_init(r30916);
        mpfr_init(r30917);
        mpfr_init(r30918);
        mpfr_init_set_str(r30919, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r30920, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r30921, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r30922, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r30923, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r30924);
        mpfr_init(r30925);
        mpfr_init(r30926);
        mpfr_init(r30927);
        mpfr_init(r30928);
        mpfr_init(r30929);
        mpfr_init(r30930);
        mpfr_init(r30931);
        mpfr_init(r30932);
        mpfr_init(r30933);
        mpfr_init(r30934);
        mpfr_init(r30935);
        mpfr_init(r30936);
        mpfr_init(r30937);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r30914, x, MPFR_RNDN);
        mpfr_abs(r30915, r30914, MPFR_RNDN);
        mpfr_mul(r30916, r30913, r30915, MPFR_RNDN);
        mpfr_add(r30917, r30912, r30916, MPFR_RNDN);
        mpfr_div(r30918, r30912, r30917, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r30924, r30918, r30923, MPFR_RNDN);
        mpfr_add(r30925, r30922, r30924, MPFR_RNDN);
        mpfr_mul(r30926, r30918, r30925, MPFR_RNDN);
        mpfr_add(r30927, r30921, r30926, MPFR_RNDN);
        mpfr_mul(r30928, r30918, r30927, MPFR_RNDN);
        mpfr_add(r30929, r30920, r30928, MPFR_RNDN);
        mpfr_mul(r30930, r30918, r30929, MPFR_RNDN);
        mpfr_add(r30931, r30919, r30930, MPFR_RNDN);
        mpfr_mul(r30932, r30918, r30931, MPFR_RNDN);
        mpfr_mul(r30933, r30915, r30915, MPFR_RNDN);
        mpfr_neg(r30934, r30933, MPFR_RNDN);
        mpfr_exp(r30935, r30934, MPFR_RNDN);
        mpfr_mul(r30936, r30932, r30935, MPFR_RNDN);
        mpfr_sub(r30937, r30912, r30936, MPFR_RNDN);
        return mpfr_get_d(r30937, MPFR_RNDN);
}

static mpfr_t r30938, r30939, r30940, r30941, r30942, r30943, r30944, r30945, r30946, r30947, r30948, r30949, r30950, r30951, r30952, r30953, r30954, r30955, r30956, r30957, r30958, r30959, r30960, r30961, r30962, r30963, r30964, r30965, r30966, r30967, r30968, r30969, r30970, r30971, r30972, r30973, r30974, r30975, r30976, r30977;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30938, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r30939, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r30940);
        mpfr_init(r30941);
        mpfr_init(r30942);
        mpfr_init(r30943);
        mpfr_init(r30944);
        mpfr_init_set_str(r30945, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r30946, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r30947, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r30948, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r30949, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r30950);
        mpfr_init(r30951);
        mpfr_init(r30952);
        mpfr_init(r30953);
        mpfr_init(r30954);
        mpfr_init(r30955);
        mpfr_init(r30956);
        mpfr_init(r30957);
        mpfr_init(r30958);
        mpfr_init(r30959);
        mpfr_init(r30960);
        mpfr_init(r30961);
        mpfr_init(r30962);
        mpfr_init(r30963);
        mpfr_init(r30964);
        mpfr_init(r30965);
        mpfr_init(r30966);
        mpfr_init(r30967);
        mpfr_init(r30968);
        mpfr_init(r30969);
        mpfr_init(r30970);
        mpfr_init(r30971);
        mpfr_init(r30972);
        mpfr_init(r30973);
        mpfr_init(r30974);
        mpfr_init(r30975);
        mpfr_init(r30976);
        mpfr_init(r30977);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r30940, x, MPFR_RNDN);
        mpfr_abs(r30941, r30940, MPFR_RNDN);
        mpfr_mul(r30942, r30939, r30941, MPFR_RNDN);
        mpfr_add(r30943, r30938, r30942, MPFR_RNDN);
        mpfr_div(r30944, r30938, r30943, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r30950, r30944, r30949, MPFR_RNDN);
        mpfr_add(r30951, r30948, r30950, MPFR_RNDN);
        mpfr_mul(r30952, r30944, r30951, MPFR_RNDN);
        mpfr_add(r30953, r30947, r30952, MPFR_RNDN);
        mpfr_mul(r30954, r30944, r30953, MPFR_RNDN);
        mpfr_add(r30955, r30946, r30954, MPFR_RNDN);
        mpfr_mul(r30956, r30944, r30955, MPFR_RNDN);
        mpfr_add(r30957, r30945, r30956, MPFR_RNDN);
        mpfr_mul(r30958, r30944, r30957, MPFR_RNDN);
        mpfr_mul(r30959, r30941, r30941, MPFR_RNDN);
        mpfr_neg(r30960, r30959, MPFR_RNDN);
        mpfr_exp(r30961, r30960, MPFR_RNDN);
        mpfr_mul(r30962, r30958, r30961, MPFR_RNDN);
        mpfr_sub(r30963, r30938, r30962, MPFR_RNDN);
        mpfr_exp(r30964, r30963, MPFR_RNDN);
        mpfr_log(r30965, r30964, MPFR_RNDN);
        mpfr_log(r30966, r30965, MPFR_RNDN);
        mpfr_cbrt(r30967, r30966, MPFR_RNDN);
        mpfr_mul(r30968, r30967, r30967, MPFR_RNDN);
        mpfr_exp(r30969, r30968, MPFR_RNDN);
        mpfr_cbrt(r30970, r30963, MPFR_RNDN);
        mpfr_mul(r30971, r30970, r30970, MPFR_RNDN);
        mpfr_exp(r30972, r30971, MPFR_RNDN);
        mpfr_log(r30973, r30972, MPFR_RNDN);
        mpfr_mul(r30974, r30970, r30973, MPFR_RNDN);
        mpfr_log(r30975, r30974, MPFR_RNDN);
        mpfr_cbrt(r30976, r30975, MPFR_RNDN);
        mpfr_pow(r30977, r30969, r30976, MPFR_RNDN);
        return mpfr_get_d(r30977, MPFR_RNDN);
}

static mpfr_t r30978, r30979, r30980, r30981, r30982, r30983, r30984, r30985, r30986, r30987, r30988, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30978, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r30979, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r30980);
        mpfr_init(r30981);
        mpfr_init(r30982);
        mpfr_init(r30983);
        mpfr_init(r30984);
        mpfr_init_set_str(r30985, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r30986, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r30987, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r30988, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r30989, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r30990);
        mpfr_init(r30991);
        mpfr_init(r30992);
        mpfr_init(r30993);
        mpfr_init(r30994);
        mpfr_init(r30995);
        mpfr_init(r30996);
        mpfr_init(r30997);
        mpfr_init(r30998);
        mpfr_init(r30999);
        mpfr_init(r31000);
        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);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r30980, x, MPFR_RNDN);
        mpfr_abs(r30981, r30980, MPFR_RNDN);
        mpfr_mul(r30982, r30979, r30981, MPFR_RNDN);
        mpfr_add(r30983, r30978, r30982, MPFR_RNDN);
        mpfr_div(r30984, r30978, r30983, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r30990, r30984, r30989, MPFR_RNDN);
        mpfr_add(r30991, r30988, r30990, MPFR_RNDN);
        mpfr_mul(r30992, r30984, r30991, MPFR_RNDN);
        mpfr_add(r30993, r30987, r30992, MPFR_RNDN);
        mpfr_mul(r30994, r30984, r30993, MPFR_RNDN);
        mpfr_add(r30995, r30986, r30994, MPFR_RNDN);
        mpfr_mul(r30996, r30984, r30995, MPFR_RNDN);
        mpfr_add(r30997, r30985, r30996, MPFR_RNDN);
        mpfr_mul(r30998, r30984, r30997, MPFR_RNDN);
        mpfr_mul(r30999, r30981, r30981, MPFR_RNDN);
        mpfr_neg(r31000, r30999, MPFR_RNDN);
        mpfr_exp(r31001, r31000, MPFR_RNDN);
        mpfr_mul(r31002, r30998, r31001, MPFR_RNDN);
        mpfr_sub(r31003, r30978, r31002, MPFR_RNDN);
        mpfr_exp(r31004, r31003, MPFR_RNDN);
        mpfr_log(r31005, r31004, MPFR_RNDN);
        mpfr_log(r31006, r31005, MPFR_RNDN);
        mpfr_cbrt(r31007, r31006, MPFR_RNDN);
        mpfr_mul(r31008, r31007, r31007, MPFR_RNDN);
        mpfr_exp(r31009, r31008, MPFR_RNDN);
        mpfr_cbrt(r31010, r31003, MPFR_RNDN);
        mpfr_mul(r31011, r31010, r31010, MPFR_RNDN);
        mpfr_exp(r31012, r31011, MPFR_RNDN);
        mpfr_log(r31013, r31012, MPFR_RNDN);
        mpfr_mul(r31014, r31010, r31013, MPFR_RNDN);
        mpfr_log(r31015, r31014, MPFR_RNDN);
        mpfr_cbrt(r31016, r31015, MPFR_RNDN);
        mpfr_pow(r31017, r31009, r31016, MPFR_RNDN);
        return mpfr_get_d(r31017, MPFR_RNDN);
}

