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

char *name = "Jmat.Real.erfi, branch x greater than or equal to 5";

double f_if(float x) {
        float r27754 = 1;
        float r27755 = atan2(1.0, 0.0);
        float r27756 = sqrt(r27755);
        float r27757 = r27754 / r27756;
        float r27758 = x;
        float r27759 = fabs(r27758);
        float r27760 = r27759 * r27759;
        float r27761 = exp(r27760);
        float r27762 = r27757 * r27761;
        float r27763 = r27754 / r27759;
        float r27764 = 2;
        float r27765 = r27754 / r27764;
        float r27766 = r27763 * r27763;
        float r27767 = r27766 * r27763;
        float r27768 = r27765 * r27767;
        float r27769 = r27763 + r27768;
        float r27770 = 3;
        float r27771 = 4;
        float r27772 = r27770 / r27771;
        float r27773 = r27767 * r27763;
        float r27774 = r27773 * r27763;
        float r27775 = r27772 * r27774;
        float r27776 = r27769 + r27775;
        float r27777 = 15;
        float r27778 = 8;
        float r27779 = r27777 / r27778;
        float r27780 = r27774 * r27763;
        float r27781 = r27780 * r27763;
        float r27782 = r27779 * r27781;
        float r27783 = r27776 + r27782;
        float r27784 = r27762 * r27783;
        return r27784;
}

double f_id(double x) {
        double r27785 = 1;
        double r27786 = atan2(1.0, 0.0);
        double r27787 = sqrt(r27786);
        double r27788 = r27785 / r27787;
        double r27789 = x;
        double r27790 = fabs(r27789);
        double r27791 = r27790 * r27790;
        double r27792 = exp(r27791);
        double r27793 = r27788 * r27792;
        double r27794 = r27785 / r27790;
        double r27795 = 2;
        double r27796 = r27785 / r27795;
        double r27797 = r27794 * r27794;
        double r27798 = r27797 * r27794;
        double r27799 = r27796 * r27798;
        double r27800 = r27794 + r27799;
        double r27801 = 3;
        double r27802 = 4;
        double r27803 = r27801 / r27802;
        double r27804 = r27798 * r27794;
        double r27805 = r27804 * r27794;
        double r27806 = r27803 * r27805;
        double r27807 = r27800 + r27806;
        double r27808 = 15;
        double r27809 = 8;
        double r27810 = r27808 / r27809;
        double r27811 = r27805 * r27794;
        double r27812 = r27811 * r27794;
        double r27813 = r27810 * r27812;
        double r27814 = r27807 + r27813;
        double r27815 = r27793 * r27814;
        return r27815;
}


double f_of(float x) {
        float r27816 = x;
        float r27817 = fabs(r27816);
        float r27818 = r27817 * r27817;
        float r27819 = exp(r27818);
        float r27820 = atan2(1.0, 0.0);
        float r27821 = sqrt(r27820);
        float r27822 = 1;
        float r27823 = r27822 / r27817;
        float r27824 = r27821 / r27823;
        float r27825 = r27819 / r27824;
        float r27826 = 3;
        float r27827 = 4;
        float r27828 = r27826 / r27827;
        float r27829 = r27826 + r27822;
        float r27830 = pow(r27823, r27829);
        float r27831 = r27828 * r27830;
        float r27832 = 2;
        float r27833 = r27822 / r27832;
        float r27834 = r27833 / r27817;
        float r27835 = r27834 / r27817;
        float r27836 = r27835 + r27822;
        float r27837 = r27831 + r27836;
        float r27838 = r27825 * r27837;
        float r27839 = r27823 / r27818;
        float r27840 = -1;
        float r27841 = r27840 - r27826;
        float r27842 = pow(r27817, r27841);
        float r27843 = r27839 * r27842;
        float r27844 = 15;
        float r27845 = 8;
        float r27846 = r27844 / r27845;
        float r27847 = sqrt(r27821);
        float r27848 = r27847 * r27847;
        float r27849 = r27846 / r27848;
        float r27850 = r27849 * r27819;
        float r27851 = r27843 * r27850;
        float r27852 = r27838 + r27851;
        return r27852;
}

double f_od(double x) {
        double r27853 = x;
        double r27854 = fabs(r27853);
        double r27855 = r27854 * r27854;
        double r27856 = exp(r27855);
        double r27857 = atan2(1.0, 0.0);
        double r27858 = sqrt(r27857);
        double r27859 = 1;
        double r27860 = r27859 / r27854;
        double r27861 = r27858 / r27860;
        double r27862 = r27856 / r27861;
        double r27863 = 3;
        double r27864 = 4;
        double r27865 = r27863 / r27864;
        double r27866 = r27863 + r27859;
        double r27867 = pow(r27860, r27866);
        double r27868 = r27865 * r27867;
        double r27869 = 2;
        double r27870 = r27859 / r27869;
        double r27871 = r27870 / r27854;
        double r27872 = r27871 / r27854;
        double r27873 = r27872 + r27859;
        double r27874 = r27868 + r27873;
        double r27875 = r27862 * r27874;
        double r27876 = r27860 / r27855;
        double r27877 = -1;
        double r27878 = r27877 - r27863;
        double r27879 = pow(r27854, r27878);
        double r27880 = r27876 * r27879;
        double r27881 = 15;
        double r27882 = 8;
        double r27883 = r27881 / r27882;
        double r27884 = sqrt(r27858);
        double r27885 = r27884 * r27884;
        double r27886 = r27883 / r27885;
        double r27887 = r27886 * r27856;
        double r27888 = r27880 * r27887;
        double r27889 = r27875 + r27888;
        return r27889;
}

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 r27890, r27891, r27892, r27893, r27894, r27895, r27896, r27897, r27898, r27899, r27900, r27901, r27902, r27903, r27904, r27905, r27906, r27907, r27908, r27909, r27910, r27911, r27912, r27913, r27914, r27915, r27916, r27917, r27918, r27919, r27920;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27890, "1", 10, MPFR_RNDN);
        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_set_str(r27900, "2", 10, MPFR_RNDN);
        mpfr_init(r27901);
        mpfr_init(r27902);
        mpfr_init(r27903);
        mpfr_init(r27904);
        mpfr_init(r27905);
        mpfr_init_set_str(r27906, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27907, "4", 10, MPFR_RNDN);
        mpfr_init(r27908);
        mpfr_init(r27909);
        mpfr_init(r27910);
        mpfr_init(r27911);
        mpfr_init(r27912);
        mpfr_init_set_str(r27913, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27914, "8", 10, MPFR_RNDN);
        mpfr_init(r27915);
        mpfr_init(r27916);
        mpfr_init(r27917);
        mpfr_init(r27918);
        mpfr_init(r27919);
        mpfr_init(r27920);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27891, MPFR_RNDN);
        mpfr_sqrt(r27892, r27891, MPFR_RNDN);
        mpfr_div(r27893, r27890, r27892, MPFR_RNDN);
        mpfr_set_d(r27894, x, MPFR_RNDN);
        mpfr_abs(r27895, r27894, MPFR_RNDN);
        mpfr_mul(r27896, r27895, r27895, MPFR_RNDN);
        mpfr_exp(r27897, r27896, MPFR_RNDN);
        mpfr_mul(r27898, r27893, r27897, MPFR_RNDN);
        mpfr_div(r27899, r27890, r27895, MPFR_RNDN);
        ;
        mpfr_div(r27901, r27890, r27900, MPFR_RNDN);
        mpfr_mul(r27902, r27899, r27899, MPFR_RNDN);
        mpfr_mul(r27903, r27902, r27899, MPFR_RNDN);
        mpfr_mul(r27904, r27901, r27903, MPFR_RNDN);
        mpfr_add(r27905, r27899, r27904, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27908, r27906, r27907, MPFR_RNDN);
        mpfr_mul(r27909, r27903, r27899, MPFR_RNDN);
        mpfr_mul(r27910, r27909, r27899, MPFR_RNDN);
        mpfr_mul(r27911, r27908, r27910, MPFR_RNDN);
        mpfr_add(r27912, r27905, r27911, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27915, r27913, r27914, MPFR_RNDN);
        mpfr_mul(r27916, r27910, r27899, MPFR_RNDN);
        mpfr_mul(r27917, r27916, r27899, MPFR_RNDN);
        mpfr_mul(r27918, r27915, r27917, MPFR_RNDN);
        mpfr_add(r27919, r27912, r27918, MPFR_RNDN);
        mpfr_mul(r27920, r27898, r27919, MPFR_RNDN);
        return mpfr_get_d(r27920, MPFR_RNDN);
}

static mpfr_t 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, r27947, r27948, r27949, r27950, r27951, r27952, r27953, r27954, r27955, r27956, r27957;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27921);
        mpfr_init(r27922);
        mpfr_init(r27923);
        mpfr_init(r27924);
        mpfr_init(r27925);
        mpfr_init(r27926);
        mpfr_init_set_str(r27927, "1", 10, MPFR_RNDN);
        mpfr_init(r27928);
        mpfr_init(r27929);
        mpfr_init(r27930);
        mpfr_init_set_str(r27931, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27932, "4", 10, MPFR_RNDN);
        mpfr_init(r27933);
        mpfr_init(r27934);
        mpfr_init(r27935);
        mpfr_init(r27936);
        mpfr_init_set_str(r27937, "2", 10, MPFR_RNDN);
        mpfr_init(r27938);
        mpfr_init(r27939);
        mpfr_init(r27940);
        mpfr_init(r27941);
        mpfr_init(r27942);
        mpfr_init(r27943);
        mpfr_init(r27944);
        mpfr_init_set_str(r27945, "-1", 10, MPFR_RNDN);
        mpfr_init(r27946);
        mpfr_init(r27947);
        mpfr_init(r27948);
        mpfr_init_set_str(r27949, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27950, "8", 10, MPFR_RNDN);
        mpfr_init(r27951);
        mpfr_init(r27952);
        mpfr_init(r27953);
        mpfr_init(r27954);
        mpfr_init(r27955);
        mpfr_init(r27956);
        mpfr_init(r27957);
}

double f_fm(double x) {
        mpfr_set_d(r27921, x, MPFR_RNDN);
        mpfr_abs(r27922, r27921, MPFR_RNDN);
        mpfr_mul(r27923, r27922, r27922, MPFR_RNDN);
        mpfr_exp(r27924, r27923, MPFR_RNDN);
        mpfr_const_pi(r27925, MPFR_RNDN);
        mpfr_sqrt(r27926, r27925, MPFR_RNDN);
        ;
        mpfr_div(r27928, r27927, r27922, MPFR_RNDN);
        mpfr_div(r27929, r27926, r27928, MPFR_RNDN);
        mpfr_div(r27930, r27924, r27929, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27933, r27931, r27932, MPFR_RNDN);
        mpfr_add(r27934, r27931, r27927, MPFR_RNDN);
        mpfr_pow(r27935, r27928, r27934, MPFR_RNDN);
        mpfr_mul(r27936, r27933, r27935, MPFR_RNDN);
        ;
        mpfr_div(r27938, r27927, r27937, MPFR_RNDN);
        mpfr_div(r27939, r27938, r27922, MPFR_RNDN);
        mpfr_div(r27940, r27939, r27922, MPFR_RNDN);
        mpfr_add(r27941, r27940, r27927, MPFR_RNDN);
        mpfr_add(r27942, r27936, r27941, MPFR_RNDN);
        mpfr_mul(r27943, r27930, r27942, MPFR_RNDN);
        mpfr_div(r27944, r27928, r27923, MPFR_RNDN);
        ;
        mpfr_sub(r27946, r27945, r27931, MPFR_RNDN);
        mpfr_pow(r27947, r27922, r27946, MPFR_RNDN);
        mpfr_mul(r27948, r27944, r27947, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27951, r27949, r27950, MPFR_RNDN);
        mpfr_sqrt(r27952, r27926, MPFR_RNDN);
        mpfr_mul(r27953, r27952, r27952, MPFR_RNDN);
        mpfr_div(r27954, r27951, r27953, MPFR_RNDN);
        mpfr_mul(r27955, r27954, r27924, MPFR_RNDN);
        mpfr_mul(r27956, r27948, r27955, MPFR_RNDN);
        mpfr_add(r27957, r27943, r27956, MPFR_RNDN);
        return mpfr_get_d(r27957, MPFR_RNDN);
}

static mpfr_t r27958, r27959, r27960, r27961, r27962, r27963, r27964, r27965, r27966, r27967, r27968, r27969, r27970, r27971, r27972, r27973, r27974, r27975, r27976, r27977, r27978, r27979, r27980, r27981, r27982, r27983, r27984, r27985, r27986, r27987, r27988, r27989, r27990, r27991, r27992, r27993, r27994;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27958);
        mpfr_init(r27959);
        mpfr_init(r27960);
        mpfr_init(r27961);
        mpfr_init(r27962);
        mpfr_init(r27963);
        mpfr_init_set_str(r27964, "1", 10, MPFR_RNDN);
        mpfr_init(r27965);
        mpfr_init(r27966);
        mpfr_init(r27967);
        mpfr_init_set_str(r27968, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r27969, "4", 10, MPFR_RNDN);
        mpfr_init(r27970);
        mpfr_init(r27971);
        mpfr_init(r27972);
        mpfr_init(r27973);
        mpfr_init_set_str(r27974, "2", 10, MPFR_RNDN);
        mpfr_init(r27975);
        mpfr_init(r27976);
        mpfr_init(r27977);
        mpfr_init(r27978);
        mpfr_init(r27979);
        mpfr_init(r27980);
        mpfr_init(r27981);
        mpfr_init_set_str(r27982, "-1", 10, MPFR_RNDN);
        mpfr_init(r27983);
        mpfr_init(r27984);
        mpfr_init(r27985);
        mpfr_init_set_str(r27986, "15", 10, MPFR_RNDN);
        mpfr_init_set_str(r27987, "8", 10, MPFR_RNDN);
        mpfr_init(r27988);
        mpfr_init(r27989);
        mpfr_init(r27990);
        mpfr_init(r27991);
        mpfr_init(r27992);
        mpfr_init(r27993);
        mpfr_init(r27994);
}

double f_dm(double x) {
        mpfr_set_d(r27958, x, MPFR_RNDN);
        mpfr_abs(r27959, r27958, MPFR_RNDN);
        mpfr_mul(r27960, r27959, r27959, MPFR_RNDN);
        mpfr_exp(r27961, r27960, MPFR_RNDN);
        mpfr_const_pi(r27962, MPFR_RNDN);
        mpfr_sqrt(r27963, r27962, MPFR_RNDN);
        ;
        mpfr_div(r27965, r27964, r27959, MPFR_RNDN);
        mpfr_div(r27966, r27963, r27965, MPFR_RNDN);
        mpfr_div(r27967, r27961, r27966, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27970, r27968, r27969, MPFR_RNDN);
        mpfr_add(r27971, r27968, r27964, MPFR_RNDN);
        mpfr_pow(r27972, r27965, r27971, MPFR_RNDN);
        mpfr_mul(r27973, r27970, r27972, MPFR_RNDN);
        ;
        mpfr_div(r27975, r27964, r27974, MPFR_RNDN);
        mpfr_div(r27976, r27975, r27959, MPFR_RNDN);
        mpfr_div(r27977, r27976, r27959, MPFR_RNDN);
        mpfr_add(r27978, r27977, r27964, MPFR_RNDN);
        mpfr_add(r27979, r27973, r27978, MPFR_RNDN);
        mpfr_mul(r27980, r27967, r27979, MPFR_RNDN);
        mpfr_div(r27981, r27965, r27960, MPFR_RNDN);
        ;
        mpfr_sub(r27983, r27982, r27968, MPFR_RNDN);
        mpfr_pow(r27984, r27959, r27983, MPFR_RNDN);
        mpfr_mul(r27985, r27981, r27984, MPFR_RNDN);
        ;
        ;
        mpfr_div(r27988, r27986, r27987, MPFR_RNDN);
        mpfr_sqrt(r27989, r27963, MPFR_RNDN);
        mpfr_mul(r27990, r27989, r27989, MPFR_RNDN);
        mpfr_div(r27991, r27988, r27990, MPFR_RNDN);
        mpfr_mul(r27992, r27991, r27961, MPFR_RNDN);
        mpfr_mul(r27993, r27985, r27992, MPFR_RNDN);
        mpfr_add(r27994, r27980, r27993, MPFR_RNDN);
        return mpfr_get_d(r27994, MPFR_RNDN);
}

