#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 r18741 = 1.0f;
        float r18742 = 0.32759109139442444f;
        float r18743 = x;
        float r18744 = fabs(r18743);
        float r18745 = r18742 * r18744;
        float r18746 = r18741 + r18745;
        float r18747 = r18741 / r18746;
        float r18748 = 0.2548295855522156f;
        float r18749 = -0.2844967246055603f;
        float r18750 = 1.421413779258728f;
        float r18751 = -1.453152060508728f;
        float r18752 = 1.0614054203033447f;
        float r18753 = r18747 * r18752;
        float r18754 = r18751 + r18753;
        float r18755 = r18747 * r18754;
        float r18756 = r18750 + r18755;
        float r18757 = r18747 * r18756;
        float r18758 = r18749 + r18757;
        float r18759 = r18747 * r18758;
        float r18760 = r18748 + r18759;
        float r18761 = r18747 * r18760;
        float r18762 = r18744 * r18744;
        float r18763 = -r18762;
        float r18764 = exp(r18763);
        float r18765 = r18761 * r18764;
        float r18766 = r18741 - r18765;
        return r18766;
}

double f_id(double x) {
        double r18767 = 1.0;
        double r18768 = 0.32759109139442444;
        double r18769 = x;
        double r18770 = fabs(r18769);
        double r18771 = r18768 * r18770;
        double r18772 = r18767 + r18771;
        double r18773 = r18767 / r18772;
        double r18774 = 0.2548295855522156;
        double r18775 = -0.2844967246055603;
        double r18776 = 1.421413779258728;
        double r18777 = -1.453152060508728;
        double r18778 = 1.0614054203033447;
        double r18779 = r18773 * r18778;
        double r18780 = r18777 + r18779;
        double r18781 = r18773 * r18780;
        double r18782 = r18776 + r18781;
        double r18783 = r18773 * r18782;
        double r18784 = r18775 + r18783;
        double r18785 = r18773 * r18784;
        double r18786 = r18774 + r18785;
        double r18787 = r18773 * r18786;
        double r18788 = r18770 * r18770;
        double r18789 = -r18788;
        double r18790 = exp(r18789);
        double r18791 = r18787 * r18790;
        double r18792 = r18767 - r18791;
        return r18792;
}


double f_of(float x) {
        float r18793 = 1.0f;
        float r18794 = 0.32759109139442444f;
        float r18795 = x;
        float r18796 = fabs(r18795);
        float r18797 = r18794 * r18796;
        float r18798 = r18793 + r18797;
        float r18799 = r18793 / r18798;
        float r18800 = 0.2548295855522156f;
        float r18801 = -0.2844967246055603f;
        float r18802 = 1.421413779258728f;
        float r18803 = -1.453152060508728f;
        float r18804 = r18803 * r18803;
        float r18805 = 1.0614054203033447f;
        float r18806 = r18799 * r18805;
        float r18807 = r18806 * r18806;
        float r18808 = r18804 - r18807;
        float r18809 = pow(r18808, r18793);
        float r18810 = r18796 * r18794;
        float r18811 = r18793 + r18810;
        float r18812 = r18805 / r18811;
        float r18813 = r18803 - r18812;
        float r18814 = r18809 / r18813;
        float r18815 = r18799 * r18814;
        float r18816 = r18802 + r18815;
        float r18817 = r18799 * r18816;
        float r18818 = r18801 + r18817;
        float r18819 = r18799 * r18818;
        float r18820 = r18800 + r18819;
        float r18821 = r18799 * r18820;
        float r18822 = r18796 * r18796;
        float r18823 = -r18822;
        float r18824 = exp(r18823);
        float r18825 = r18821 * r18824;
        float r18826 = r18793 - r18825;
        return r18826;
}

double f_od(double x) {
        double r18827 = 1.0;
        double r18828 = 0.32759109139442444;
        double r18829 = x;
        double r18830 = fabs(r18829);
        double r18831 = r18828 * r18830;
        double r18832 = r18827 + r18831;
        double r18833 = r18827 / r18832;
        double r18834 = 0.2548295855522156;
        double r18835 = -0.2844967246055603;
        double r18836 = 1.421413779258728;
        double r18837 = -1.453152060508728;
        double r18838 = r18837 * r18837;
        double r18839 = 1.0614054203033447;
        double r18840 = r18833 * r18839;
        double r18841 = r18840 * r18840;
        double r18842 = r18838 - r18841;
        double r18843 = pow(r18842, r18827);
        double r18844 = r18830 * r18828;
        double r18845 = r18827 + r18844;
        double r18846 = r18839 / r18845;
        double r18847 = r18837 - r18846;
        double r18848 = r18843 / r18847;
        double r18849 = r18833 * r18848;
        double r18850 = r18836 + r18849;
        double r18851 = r18833 * r18850;
        double r18852 = r18835 + r18851;
        double r18853 = r18833 * r18852;
        double r18854 = r18834 + r18853;
        double r18855 = r18833 * r18854;
        double r18856 = r18830 * r18830;
        double r18857 = -r18856;
        double r18858 = exp(r18857);
        double r18859 = r18855 * r18858;
        double r18860 = r18827 - r18859;
        return r18860;
}

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 r18861, r18862, r18863, r18864, r18865, r18866, r18867, r18868, r18869, r18870, r18871, r18872, r18873, r18874, r18875, r18876, r18877, r18878, r18879, r18880, r18881, r18882, r18883, r18884, r18885, r18886;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18861, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18862, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18863);
        mpfr_init(r18864);
        mpfr_init(r18865);
        mpfr_init(r18866);
        mpfr_init(r18867);
        mpfr_init_set_str(r18868, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18869, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18870, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18871, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init_set_str(r18872, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18873);
        mpfr_init(r18874);
        mpfr_init(r18875);
        mpfr_init(r18876);
        mpfr_init(r18877);
        mpfr_init(r18878);
        mpfr_init(r18879);
        mpfr_init(r18880);
        mpfr_init(r18881);
        mpfr_init(r18882);
        mpfr_init(r18883);
        mpfr_init(r18884);
        mpfr_init(r18885);
        mpfr_init(r18886);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r18863, x, MPFR_RNDN);
        mpfr_abs(r18864, r18863, MPFR_RNDN);
        mpfr_mul(r18865, r18862, r18864, MPFR_RNDN);
        mpfr_add(r18866, r18861, r18865, MPFR_RNDN);
        mpfr_div(r18867, r18861, r18866, MPFR_RNDN);
        ;
        ;
        ;
        ;
        ;
        mpfr_mul(r18873, r18867, r18872, MPFR_RNDN);
        mpfr_add(r18874, r18871, r18873, MPFR_RNDN);
        mpfr_mul(r18875, r18867, r18874, MPFR_RNDN);
        mpfr_add(r18876, r18870, r18875, MPFR_RNDN);
        mpfr_mul(r18877, r18867, r18876, MPFR_RNDN);
        mpfr_add(r18878, r18869, r18877, MPFR_RNDN);
        mpfr_mul(r18879, r18867, r18878, MPFR_RNDN);
        mpfr_add(r18880, r18868, r18879, MPFR_RNDN);
        mpfr_mul(r18881, r18867, r18880, MPFR_RNDN);
        mpfr_mul(r18882, r18864, r18864, MPFR_RNDN);
        mpfr_neg(r18883, r18882, MPFR_RNDN);
        mpfr_exp(r18884, r18883, MPFR_RNDN);
        mpfr_mul(r18885, r18881, r18884, MPFR_RNDN);
        mpfr_sub(r18886, r18861, r18885, MPFR_RNDN);
        return mpfr_get_d(r18886, MPFR_RNDN);
}

static mpfr_t r18887, r18888, r18889, r18890, r18891, r18892, r18893, r18894, r18895, r18896, r18897, r18898, r18899, r18900, r18901, r18902, r18903, r18904, r18905, r18906, r18907, r18908, r18909, r18910, r18911, r18912, r18913, r18914, r18915, r18916, r18917, r18918, r18919, r18920;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18887, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18888, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18889);
        mpfr_init(r18890);
        mpfr_init(r18891);
        mpfr_init(r18892);
        mpfr_init(r18893);
        mpfr_init_set_str(r18894, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18895, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18896, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18897, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18898);
        mpfr_init_set_str(r18899, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18900);
        mpfr_init(r18901);
        mpfr_init(r18902);
        mpfr_init(r18903);
        mpfr_init(r18904);
        mpfr_init(r18905);
        mpfr_init(r18906);
        mpfr_init(r18907);
        mpfr_init(r18908);
        mpfr_init(r18909);
        mpfr_init(r18910);
        mpfr_init(r18911);
        mpfr_init(r18912);
        mpfr_init(r18913);
        mpfr_init(r18914);
        mpfr_init(r18915);
        mpfr_init(r18916);
        mpfr_init(r18917);
        mpfr_init(r18918);
        mpfr_init(r18919);
        mpfr_init(r18920);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r18889, x, MPFR_RNDN);
        mpfr_abs(r18890, r18889, MPFR_RNDN);
        mpfr_mul(r18891, r18888, r18890, MPFR_RNDN);
        mpfr_add(r18892, r18887, r18891, MPFR_RNDN);
        mpfr_div(r18893, r18887, r18892, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r18898, r18897, MPFR_RNDN);
        ;
        mpfr_mul(r18900, r18893, r18899, MPFR_RNDN);
        mpfr_sqr(r18901, r18900, MPFR_RNDN);
        mpfr_sub(r18902, r18898, r18901, MPFR_RNDN);
        mpfr_pow(r18903, r18902, r18887, MPFR_RNDN);
        mpfr_mul(r18904, r18890, r18888, MPFR_RNDN);
        mpfr_add(r18905, r18887, r18904, MPFR_RNDN);
        mpfr_div(r18906, r18899, r18905, MPFR_RNDN);
        mpfr_sub(r18907, r18897, r18906, MPFR_RNDN);
        mpfr_div(r18908, r18903, r18907, MPFR_RNDN);
        mpfr_mul(r18909, r18893, r18908, MPFR_RNDN);
        mpfr_add(r18910, r18896, r18909, MPFR_RNDN);
        mpfr_mul(r18911, r18893, r18910, MPFR_RNDN);
        mpfr_add(r18912, r18895, r18911, MPFR_RNDN);
        mpfr_mul(r18913, r18893, r18912, MPFR_RNDN);
        mpfr_add(r18914, r18894, r18913, MPFR_RNDN);
        mpfr_mul(r18915, r18893, r18914, MPFR_RNDN);
        mpfr_mul(r18916, r18890, r18890, MPFR_RNDN);
        mpfr_neg(r18917, r18916, MPFR_RNDN);
        mpfr_exp(r18918, r18917, MPFR_RNDN);
        mpfr_mul(r18919, r18915, r18918, MPFR_RNDN);
        mpfr_sub(r18920, r18887, r18919, MPFR_RNDN);
        return mpfr_get_d(r18920, MPFR_RNDN);
}

static mpfr_t r18921, r18922, r18923, r18924, r18925, r18926, r18927, r18928, r18929, r18930, r18931, r18932, r18933, r18934, r18935, r18936, r18937, r18938, r18939, r18940, r18941, r18942, r18943, r18944, r18945, r18946, r18947, r18948, r18949, r18950, r18951, r18952, r18953, r18954;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18921, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18922, "0.3275911", 10, MPFR_RNDN);
        mpfr_init(r18923);
        mpfr_init(r18924);
        mpfr_init(r18925);
        mpfr_init(r18926);
        mpfr_init(r18927);
        mpfr_init_set_str(r18928, "0.254829592", 10, MPFR_RNDN);
        mpfr_init_set_str(r18929, "-0.284496736", 10, MPFR_RNDN);
        mpfr_init_set_str(r18930, "1.421413741", 10, MPFR_RNDN);
        mpfr_init_set_str(r18931, "-1.453152027", 10, MPFR_RNDN);
        mpfr_init(r18932);
        mpfr_init_set_str(r18933, "1.061405429", 10, MPFR_RNDN);
        mpfr_init(r18934);
        mpfr_init(r18935);
        mpfr_init(r18936);
        mpfr_init(r18937);
        mpfr_init(r18938);
        mpfr_init(r18939);
        mpfr_init(r18940);
        mpfr_init(r18941);
        mpfr_init(r18942);
        mpfr_init(r18943);
        mpfr_init(r18944);
        mpfr_init(r18945);
        mpfr_init(r18946);
        mpfr_init(r18947);
        mpfr_init(r18948);
        mpfr_init(r18949);
        mpfr_init(r18950);
        mpfr_init(r18951);
        mpfr_init(r18952);
        mpfr_init(r18953);
        mpfr_init(r18954);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r18923, x, MPFR_RNDN);
        mpfr_abs(r18924, r18923, MPFR_RNDN);
        mpfr_mul(r18925, r18922, r18924, MPFR_RNDN);
        mpfr_add(r18926, r18921, r18925, MPFR_RNDN);
        mpfr_div(r18927, r18921, r18926, MPFR_RNDN);
        ;
        ;
        ;
        ;
        mpfr_sqr(r18932, r18931, MPFR_RNDN);
        ;
        mpfr_mul(r18934, r18927, r18933, MPFR_RNDN);
        mpfr_sqr(r18935, r18934, MPFR_RNDN);
        mpfr_sub(r18936, r18932, r18935, MPFR_RNDN);
        mpfr_pow(r18937, r18936, r18921, MPFR_RNDN);
        mpfr_mul(r18938, r18924, r18922, MPFR_RNDN);
        mpfr_add(r18939, r18921, r18938, MPFR_RNDN);
        mpfr_div(r18940, r18933, r18939, MPFR_RNDN);
        mpfr_sub(r18941, r18931, r18940, MPFR_RNDN);
        mpfr_div(r18942, r18937, r18941, MPFR_RNDN);
        mpfr_mul(r18943, r18927, r18942, MPFR_RNDN);
        mpfr_add(r18944, r18930, r18943, MPFR_RNDN);
        mpfr_mul(r18945, r18927, r18944, MPFR_RNDN);
        mpfr_add(r18946, r18929, r18945, MPFR_RNDN);
        mpfr_mul(r18947, r18927, r18946, MPFR_RNDN);
        mpfr_add(r18948, r18928, r18947, MPFR_RNDN);
        mpfr_mul(r18949, r18927, r18948, MPFR_RNDN);
        mpfr_mul(r18950, r18924, r18924, MPFR_RNDN);
        mpfr_neg(r18951, r18950, MPFR_RNDN);
        mpfr_exp(r18952, r18951, MPFR_RNDN);
        mpfr_mul(r18953, r18949, r18952, MPFR_RNDN);
        mpfr_sub(r18954, r18921, r18953, MPFR_RNDN);
        return mpfr_get_d(r18954, MPFR_RNDN);
}

