#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 r27705 = 1;
        float r27706 = 0.3275911;
        float r27707 = x;
        float r27708 = fabs(r27707);
        float r27709 = r27706 * r27708;
        float r27710 = r27705 + r27709;
        float r27711 = r27705 / r27710;
        float r27712 = 0.254829592;
        float r27713 = -0.284496736;
        float r27714 = 1.421413741;
        float r27715 = -1.453152027;
        float r27716 = 1.061405429;
        float r27717 = r27711 * r27716;
        float r27718 = r27715 + r27717;
        float r27719 = r27711 * r27718;
        float r27720 = r27714 + r27719;
        float r27721 = r27711 * r27720;
        float r27722 = r27713 + r27721;
        float r27723 = r27711 * r27722;
        float r27724 = r27712 + r27723;
        float r27725 = r27711 * r27724;
        float r27726 = r27708 * r27708;
        float r27727 = -r27726;
        float r27728 = exp(r27727);
        float r27729 = r27725 * r27728;
        float r27730 = r27705 - r27729;
        return r27730;
}

double f_id(double x) {
        double r27731 = 1;
        double r27732 = 0.3275911;
        double r27733 = x;
        double r27734 = fabs(r27733);
        double r27735 = r27732 * r27734;
        double r27736 = r27731 + r27735;
        double r27737 = r27731 / r27736;
        double r27738 = 0.254829592;
        double r27739 = -0.284496736;
        double r27740 = 1.421413741;
        double r27741 = -1.453152027;
        double r27742 = 1.061405429;
        double r27743 = r27737 * r27742;
        double r27744 = r27741 + r27743;
        double r27745 = r27737 * r27744;
        double r27746 = r27740 + r27745;
        double r27747 = r27737 * r27746;
        double r27748 = r27739 + r27747;
        double r27749 = r27737 * r27748;
        double r27750 = r27738 + r27749;
        double r27751 = r27737 * r27750;
        double r27752 = r27734 * r27734;
        double r27753 = -r27752;
        double r27754 = exp(r27753);
        double r27755 = r27751 * r27754;
        double r27756 = r27731 - r27755;
        return r27756;
}


double f_of(float x) {
        float r27757 = 1;
        float r27758 = 0.254829592;
        float r27759 = r27758 * r27758;
        float r27760 = 0.3275911;
        float r27761 = x;
        float r27762 = fabs(r27761);
        float r27763 = r27760 * r27762;
        float r27764 = r27757 + r27763;
        float r27765 = r27757 / r27764;
        float r27766 = -0.284496736;
        float r27767 = 1.421413741;
        float r27768 = -1.453152027;
        float r27769 = 1.061405429;
        float r27770 = r27765 * r27769;
        float r27771 = r27768 + r27770;
        float r27772 = r27765 * r27771;
        float r27773 = r27767 + r27772;
        float r27774 = r27765 * r27773;
        float r27775 = r27766 + r27774;
        float r27776 = r27765 * r27775;
        float r27777 = r27776 * r27776;
        float r27778 = r27759 - r27777;
        float r27779 = r27757 * r27778;
        float r27780 = sqrt(r27764);
        float r27781 = r27757 / r27780;
        float r27782 = r27781 / r27780;
        float r27783 = r27782 * r27769;
        float r27784 = r27768 + r27783;
        float r27785 = r27765 * r27784;
        float r27786 = r27767 + r27785;
        float r27787 = r27765 * r27786;
        float r27788 = r27766 + r27787;
        float r27789 = r27765 * r27788;
        float r27790 = r27758 - r27789;
        float r27791 = r27764 * r27790;
        float r27792 = r27779 / r27791;
        float r27793 = r27762 * r27762;
        float r27794 = -r27793;
        float r27795 = exp(r27794);
        float r27796 = r27792 * r27795;
        float r27797 = r27757 - r27796;
        return r27797;
}

double f_od(double x) {
        double r27798 = 1;
        double r27799 = 0.254829592;
        double r27800 = r27799 * r27799;
        double r27801 = 0.3275911;
        double r27802 = x;
        double r27803 = fabs(r27802);
        double r27804 = r27801 * r27803;
        double r27805 = r27798 + r27804;
        double r27806 = r27798 / r27805;
        double r27807 = -0.284496736;
        double r27808 = 1.421413741;
        double r27809 = -1.453152027;
        double r27810 = 1.061405429;
        double r27811 = r27806 * r27810;
        double r27812 = r27809 + r27811;
        double r27813 = r27806 * r27812;
        double r27814 = r27808 + r27813;
        double r27815 = r27806 * r27814;
        double r27816 = r27807 + r27815;
        double r27817 = r27806 * r27816;
        double r27818 = r27817 * r27817;
        double r27819 = r27800 - r27818;
        double r27820 = r27798 * r27819;
        double r27821 = sqrt(r27805);
        double r27822 = r27798 / r27821;
        double r27823 = r27822 / r27821;
        double r27824 = r27823 * r27810;
        double r27825 = r27809 + r27824;
        double r27826 = r27806 * r27825;
        double r27827 = r27808 + r27826;
        double r27828 = r27806 * r27827;
        double r27829 = r27807 + r27828;
        double r27830 = r27806 * r27829;
        double r27831 = r27799 - r27830;
        double r27832 = r27805 * r27831;
        double r27833 = r27820 / r27832;
        double r27834 = r27803 * r27803;
        double r27835 = -r27834;
        double r27836 = exp(r27835);
        double r27837 = r27833 * r27836;
        double r27838 = r27798 - r27837;
        return r27838;
}

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 r27839, r27840, r27841, r27842, r27843, r27844, r27845, r27846, r27847, r27848, r27849, r27850, r27851, r27852, r27853, r27854, r27855, r27856, r27857, r27858, r27859, r27860, r27861, r27862, r27863, r27864;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27839, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27840, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27841);
        mpfr_init(r27842);
        mpfr_init(r27843);
        mpfr_init(r27844);
        mpfr_init(r27845);
        mpfr_init_set_str(r27846, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r27847, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27848, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r27849, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27850, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r27851);
        mpfr_init(r27852);
        mpfr_init(r27853);
        mpfr_init(r27854);
        mpfr_init(r27855);
        mpfr_init(r27856);
        mpfr_init(r27857);
        mpfr_init(r27858);
        mpfr_init(r27859);
        mpfr_init(r27860);
        mpfr_init(r27861);
        mpfr_init(r27862);
        mpfr_init(r27863);
        mpfr_init(r27864);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r27841, x, MPFR_RNDN);
        mpfr_abs(r27842, r27841, MPFR_RNDN);
        mpfr_mul(r27843, r27840, r27842, MPFR_RNDN);
        mpfr_add(r27844, r27839, r27843, MPFR_RNDN);
        mpfr_div(r27845, r27839, r27844, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r27851, r27845, r27850, MPFR_RNDN);
        mpfr_add(r27852, r27849, r27851, MPFR_RNDN);
        mpfr_mul(r27853, r27845, r27852, MPFR_RNDN);
        mpfr_add(r27854, r27848, r27853, MPFR_RNDN);
        mpfr_mul(r27855, r27845, r27854, MPFR_RNDN);
        mpfr_add(r27856, r27847, r27855, MPFR_RNDN);
        mpfr_mul(r27857, r27845, r27856, MPFR_RNDN);
        mpfr_add(r27858, r27846, r27857, MPFR_RNDN);
        mpfr_mul(r27859, r27845, r27858, MPFR_RNDN);
        mpfr_mul(r27860, r27842, r27842, MPFR_RNDN);
        mpfr_neg(r27861, r27860, MPFR_RNDN);
        mpfr_exp(r27862, r27861, MPFR_RNDN);
        mpfr_mul(r27863, r27859, r27862, MPFR_RNDN);
        mpfr_sub(r27864, r27839, r27863, MPFR_RNDN);
        return mpfr_get_d(r27864, MPFR_RNDN);
}

static mpfr_t r27865, r27866, r27867, r27868, r27869, r27870, r27871, r27872, r27873, r27874, r27875, r27876, r27877, r27878, r27879, r27880, r27881, r27882, r27883, r27884, r27885, r27886, r27887, r27888, r27889, r27890, r27891, r27892, r27893, r27894, r27895, r27896, r27897, r27898, r27899, r27900, r27901, r27902, r27903, r27904, r27905;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27865, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27866, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r27867);
        mpfr_init_set_str(r27868, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27869);
        mpfr_init(r27870);
        mpfr_init(r27871);
        mpfr_init(r27872);
        mpfr_init(r27873);
        mpfr_init_set_str(r27874, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27875, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r27876, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27877, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r27878);
        mpfr_init(r27879);
        mpfr_init(r27880);
        mpfr_init(r27881);
        mpfr_init(r27882);
        mpfr_init(r27883);
        mpfr_init(r27884);
        mpfr_init(r27885);
        mpfr_init(r27886);
        mpfr_init(r27887);
        mpfr_init(r27888);
        mpfr_init(r27889);
        mpfr_init(r27890);
        mpfr_init(r27891);
        mpfr_init(r27892);
        mpfr_init(r27893);
        mpfr_init(r27894);
        mpfr_init(r27895);
        mpfr_init(r27896);
        mpfr_init(r27897);
        mpfr_init(r27898);
        mpfr_init(r27899);
        mpfr_init(r27900);
        mpfr_init(r27901);
        mpfr_init(r27902);
        mpfr_init(r27903);
        mpfr_init(r27904);
        mpfr_init(r27905);
}

double f_fm(double x) {
        ;
        ;
        mpfr_mul(r27867, r27866, r27866, MPFR_RNDN);
        ;
        mpfr_set_d(r27869, x, MPFR_RNDN);
        mpfr_abs(r27870, r27869, MPFR_RNDN);
        mpfr_mul(r27871, r27868, r27870, MPFR_RNDN);
        mpfr_add(r27872, r27865, r27871, MPFR_RNDN);
        mpfr_div(r27873, r27865, r27872, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_mul(r27878, r27873, r27877, MPFR_RNDN);
        mpfr_add(r27879, r27876, r27878, MPFR_RNDN);
        mpfr_mul(r27880, r27873, r27879, MPFR_RNDN);
        mpfr_add(r27881, r27875, r27880, MPFR_RNDN);
        mpfr_mul(r27882, r27873, r27881, MPFR_RNDN);
        mpfr_add(r27883, r27874, r27882, MPFR_RNDN);
        mpfr_mul(r27884, r27873, r27883, MPFR_RNDN);
        mpfr_mul(r27885, r27884, r27884, MPFR_RNDN);
        mpfr_sub(r27886, r27867, r27885, MPFR_RNDN);
        mpfr_mul(r27887, r27865, r27886, MPFR_RNDN);
        mpfr_sqrt(r27888, r27872, MPFR_RNDN);
        mpfr_div(r27889, r27865, r27888, MPFR_RNDN);
        mpfr_div(r27890, r27889, r27888, MPFR_RNDN);
        mpfr_mul(r27891, r27890, r27877, MPFR_RNDN);
        mpfr_add(r27892, r27876, r27891, MPFR_RNDN);
        mpfr_mul(r27893, r27873, r27892, MPFR_RNDN);
        mpfr_add(r27894, r27875, r27893, MPFR_RNDN);
        mpfr_mul(r27895, r27873, r27894, MPFR_RNDN);
        mpfr_add(r27896, r27874, r27895, MPFR_RNDN);
        mpfr_mul(r27897, r27873, r27896, MPFR_RNDN);
        mpfr_sub(r27898, r27866, r27897, MPFR_RNDN);
        mpfr_mul(r27899, r27872, r27898, MPFR_RNDN);
        mpfr_div(r27900, r27887, r27899, MPFR_RNDN);
        mpfr_mul(r27901, r27870, r27870, MPFR_RNDN);
        mpfr_neg(r27902, r27901, MPFR_RNDN);
        mpfr_exp(r27903, r27902, MPFR_RNDN);
        mpfr_mul(r27904, r27900, r27903, MPFR_RNDN);
        mpfr_sub(r27905, r27865, r27904, MPFR_RNDN);
        return mpfr_get_d(r27905, MPFR_RNDN);
}

static mpfr_t r27906, r27907, r27908, r27909, r27910, r27911, r27912, r27913, r27914, r27915, r27916, r27917, r27918, r27919, r27920, r27921, r27922, r27923, r27924, r27925, r27926, r27927, r27928, r27929, r27930, r27931, r27932, r27933, r27934, r27935, r27936, r27937, r27938, r27939, r27940, r27941, r27942, r27943, r27944, r27945, r27946;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27906, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27907, "0.254829592", 10, MPFR_RNDN);
        mpfr_init(r27908);
        mpfr_init_set_str(r27909, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r27910);
        mpfr_init(r27911);
        mpfr_init(r27912);
        mpfr_init(r27913);
        mpfr_init(r27914);
        mpfr_init_set_str(r27915, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r27916, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r27917, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r27918, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r27919);
        mpfr_init(r27920);
        mpfr_init(r27921);
        mpfr_init(r27922);
        mpfr_init(r27923);
        mpfr_init(r27924);
        mpfr_init(r27925);
        mpfr_init(r27926);
        mpfr_init(r27927);
        mpfr_init(r27928);
        mpfr_init(r27929);
        mpfr_init(r27930);
        mpfr_init(r27931);
        mpfr_init(r27932);
        mpfr_init(r27933);
        mpfr_init(r27934);
        mpfr_init(r27935);
        mpfr_init(r27936);
        mpfr_init(r27937);
        mpfr_init(r27938);
        mpfr_init(r27939);
        mpfr_init(r27940);
        mpfr_init(r27941);
        mpfr_init(r27942);
        mpfr_init(r27943);
        mpfr_init(r27944);
        mpfr_init(r27945);
        mpfr_init(r27946);
}

double f_dm(double x) {
        ;
        ;
        mpfr_mul(r27908, r27907, r27907, MPFR_RNDN);
        ;
        mpfr_set_d(r27910, x, MPFR_RNDN);
        mpfr_abs(r27911, r27910, MPFR_RNDN);
        mpfr_mul(r27912, r27909, r27911, MPFR_RNDN);
        mpfr_add(r27913, r27906, r27912, MPFR_RNDN);
        mpfr_div(r27914, r27906, r27913, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_mul(r27919, r27914, r27918, MPFR_RNDN);
        mpfr_add(r27920, r27917, r27919, MPFR_RNDN);
        mpfr_mul(r27921, r27914, r27920, MPFR_RNDN);
        mpfr_add(r27922, r27916, r27921, MPFR_RNDN);
        mpfr_mul(r27923, r27914, r27922, MPFR_RNDN);
        mpfr_add(r27924, r27915, r27923, MPFR_RNDN);
        mpfr_mul(r27925, r27914, r27924, MPFR_RNDN);
        mpfr_mul(r27926, r27925, r27925, MPFR_RNDN);
        mpfr_sub(r27927, r27908, r27926, MPFR_RNDN);
        mpfr_mul(r27928, r27906, r27927, MPFR_RNDN);
        mpfr_sqrt(r27929, r27913, MPFR_RNDN);
        mpfr_div(r27930, r27906, r27929, MPFR_RNDN);
        mpfr_div(r27931, r27930, r27929, MPFR_RNDN);
        mpfr_mul(r27932, r27931, r27918, MPFR_RNDN);
        mpfr_add(r27933, r27917, r27932, MPFR_RNDN);
        mpfr_mul(r27934, r27914, r27933, MPFR_RNDN);
        mpfr_add(r27935, r27916, r27934, MPFR_RNDN);
        mpfr_mul(r27936, r27914, r27935, MPFR_RNDN);
        mpfr_add(r27937, r27915, r27936, MPFR_RNDN);
        mpfr_mul(r27938, r27914, r27937, MPFR_RNDN);
        mpfr_sub(r27939, r27907, r27938, MPFR_RNDN);
        mpfr_mul(r27940, r27913, r27939, MPFR_RNDN);
        mpfr_div(r27941, r27928, r27940, MPFR_RNDN);
        mpfr_mul(r27942, r27911, r27911, MPFR_RNDN);
        mpfr_neg(r27943, r27942, MPFR_RNDN);
        mpfr_exp(r27944, r27943, MPFR_RNDN);
        mpfr_mul(r27945, r27941, r27944, MPFR_RNDN);
        mpfr_sub(r27946, r27906, r27945, MPFR_RNDN);
        return mpfr_get_d(r27946, MPFR_RNDN);
}

