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

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

double f_if(float x) {
        float r10882 = 1;
        float r10883 = atan2(1.0, 0.0);
        float r10884 = sqrt(r10883);
        float r10885 = r10882 / r10884;
        float r10886 = 2;
        float r10887 = x;
        float r10888 = fabs(r10887);
        float r10889 = r10886 * r10888;
        float r10890 = 3;
        float r10891 = r10886 / r10890;
        float r10892 = r10888 * r10888;
        float r10893 = r10892 * r10888;
        float r10894 = r10891 * r10893;
        float r10895 = r10889 + r10894;
        float r10896 = 5;
        float r10897 = r10882 / r10896;
        float r10898 = r10893 * r10888;
        float r10899 = r10898 * r10888;
        float r10900 = r10897 * r10899;
        float r10901 = r10895 + r10900;
        float r10902 = 21;
        float r10903 = r10882 / r10902;
        float r10904 = r10899 * r10888;
        float r10905 = r10904 * r10888;
        float r10906 = r10903 * r10905;
        float r10907 = r10901 + r10906;
        float r10908 = r10885 * r10907;
        float r10909 = fabs(r10908);
        return r10909;
}

double f_id(double x) {
        double r10910 = 1;
        double r10911 = atan2(1.0, 0.0);
        double r10912 = sqrt(r10911);
        double r10913 = r10910 / r10912;
        double r10914 = 2;
        double r10915 = x;
        double r10916 = fabs(r10915);
        double r10917 = r10914 * r10916;
        double r10918 = 3;
        double r10919 = r10914 / r10918;
        double r10920 = r10916 * r10916;
        double r10921 = r10920 * r10916;
        double r10922 = r10919 * r10921;
        double r10923 = r10917 + r10922;
        double r10924 = 5;
        double r10925 = r10910 / r10924;
        double r10926 = r10921 * r10916;
        double r10927 = r10926 * r10916;
        double r10928 = r10925 * r10927;
        double r10929 = r10923 + r10928;
        double r10930 = 21;
        double r10931 = r10910 / r10930;
        double r10932 = r10927 * r10916;
        double r10933 = r10932 * r10916;
        double r10934 = r10931 * r10933;
        double r10935 = r10929 + r10934;
        double r10936 = r10913 * r10935;
        double r10937 = fabs(r10936);
        return r10937;
}


double f_of(float x) {
        float r10938 = 1;
        float r10939 = atan2(1.0, 0.0);
        float r10940 = sqrt(r10939);
        float r10941 = r10938 / r10940;
        float r10942 = 2;
        float r10943 = x;
        float r10944 = fabs(r10943);
        float r10945 = r10942 * r10944;
        float r10946 = 3;
        float r10947 = r10942 / r10946;
        float r10948 = r10944 * r10944;
        float r10949 = r10948 * r10944;
        float r10950 = r10947 * r10949;
        float r10951 = r10945 + r10950;
        float r10952 = 5;
        float r10953 = r10938 / r10952;
        float r10954 = r10949 * r10944;
        float r10955 = r10954 * r10944;
        float r10956 = r10953 * r10955;
        float r10957 = r10951 + r10956;
        float r10958 = 21;
        float r10959 = r10938 / r10958;
        float r10960 = r10938 + r10938;
        float r10961 = r10960 + r10938;
        float r10962 = r10961 + r10938;
        float r10963 = r10962 + r10938;
        float r10964 = pow(r10944, r10963);
        float r10965 = r10964 * r10944;
        float r10966 = r10965 * r10944;
        float r10967 = r10959 * r10966;
        float r10968 = r10957 + r10967;
        float r10969 = r10941 * r10968;
        float r10970 = fabs(r10969);
        return r10970;
}

double f_od(double x) {
        double r10971 = 1;
        double r10972 = atan2(1.0, 0.0);
        double r10973 = sqrt(r10972);
        double r10974 = r10971 / r10973;
        double r10975 = 2;
        double r10976 = x;
        double r10977 = fabs(r10976);
        double r10978 = r10975 * r10977;
        double r10979 = 3;
        double r10980 = r10975 / r10979;
        double r10981 = r10977 * r10977;
        double r10982 = r10981 * r10977;
        double r10983 = r10980 * r10982;
        double r10984 = r10978 + r10983;
        double r10985 = 5;
        double r10986 = r10971 / r10985;
        double r10987 = r10982 * r10977;
        double r10988 = r10987 * r10977;
        double r10989 = r10986 * r10988;
        double r10990 = r10984 + r10989;
        double r10991 = 21;
        double r10992 = r10971 / r10991;
        double r10993 = r10971 + r10971;
        double r10994 = r10993 + r10971;
        double r10995 = r10994 + r10971;
        double r10996 = r10995 + r10971;
        double r10997 = pow(r10977, r10996);
        double r10998 = r10997 * r10977;
        double r10999 = r10998 * r10977;
        double r11000 = r10992 * r10999;
        double r11001 = r10990 + r11000;
        double r11002 = r10974 * r11001;
        double r11003 = fabs(r11002);
        return r11003;
}

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 r11004, r11005, r11006, r11007, r11008, r11009, r11010, r11011, r11012, r11013, r11014, r11015, r11016, r11017, r11018, r11019, r11020, r11021, r11022, r11023, r11024, r11025, r11026, r11027, r11028, r11029, r11030, r11031;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11004, "1", 10, MPFR_RNDN);
        mpfr_init(r11005);
        mpfr_init(r11006);
        mpfr_init(r11007);
        mpfr_init_set_str(r11008, "2", 10, MPFR_RNDN);
        mpfr_init(r11009);
        mpfr_init(r11010);
        mpfr_init(r11011);
        mpfr_init_set_str(r11012, "3", 10, MPFR_RNDN);
        mpfr_init(r11013);
        mpfr_init(r11014);
        mpfr_init(r11015);
        mpfr_init(r11016);
        mpfr_init(r11017);
        mpfr_init_set_str(r11018, "5", 10, MPFR_RNDN);
        mpfr_init(r11019);
        mpfr_init(r11020);
        mpfr_init(r11021);
        mpfr_init(r11022);
        mpfr_init(r11023);
        mpfr_init_set_str(r11024, "21", 10, MPFR_RNDN);
        mpfr_init(r11025);
        mpfr_init(r11026);
        mpfr_init(r11027);
        mpfr_init(r11028);
        mpfr_init(r11029);
        mpfr_init(r11030);
        mpfr_init(r11031);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r11005, MPFR_RNDN);
        mpfr_sqrt(r11006, r11005, MPFR_RNDN);
        mpfr_div(r11007, r11004, r11006, MPFR_RNDN);
        ;
        mpfr_set_d(r11009, x, MPFR_RNDN);
        mpfr_abs(r11010, r11009, MPFR_RNDN);
        mpfr_mul(r11011, r11008, r11010, MPFR_RNDN);
        ;
        mpfr_div(r11013, r11008, r11012, MPFR_RNDN);
        mpfr_mul(r11014, r11010, r11010, MPFR_RNDN);
        mpfr_mul(r11015, r11014, r11010, MPFR_RNDN);
        mpfr_mul(r11016, r11013, r11015, MPFR_RNDN);
        mpfr_add(r11017, r11011, r11016, MPFR_RNDN);
        ;
        mpfr_div(r11019, r11004, r11018, MPFR_RNDN);
        mpfr_mul(r11020, r11015, r11010, MPFR_RNDN);
        mpfr_mul(r11021, r11020, r11010, MPFR_RNDN);
        mpfr_mul(r11022, r11019, r11021, MPFR_RNDN);
        mpfr_add(r11023, r11017, r11022, MPFR_RNDN);
        ;
        mpfr_div(r11025, r11004, r11024, MPFR_RNDN);
        mpfr_mul(r11026, r11021, r11010, MPFR_RNDN);
        mpfr_mul(r11027, r11026, r11010, MPFR_RNDN);
        mpfr_mul(r11028, r11025, r11027, MPFR_RNDN);
        mpfr_add(r11029, r11023, r11028, MPFR_RNDN);
        mpfr_mul(r11030, r11007, r11029, MPFR_RNDN);
        mpfr_abs(r11031, r11030, MPFR_RNDN);
        return mpfr_get_d(r11031, MPFR_RNDN);
}

static mpfr_t r11032, r11033, r11034, r11035, r11036, r11037, r11038, r11039, r11040, r11041, r11042, r11043, r11044, r11045, r11046, r11047, r11048, r11049, r11050, r11051, r11052, r11053, r11054, r11055, r11056, r11057, r11058, r11059, r11060, r11061, r11062, r11063, r11064;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11032, "1", 10, MPFR_RNDN);
        mpfr_init(r11033);
        mpfr_init(r11034);
        mpfr_init(r11035);
        mpfr_init_set_str(r11036, "2", 10, MPFR_RNDN);
        mpfr_init(r11037);
        mpfr_init(r11038);
        mpfr_init(r11039);
        mpfr_init_set_str(r11040, "3", 10, MPFR_RNDN);
        mpfr_init(r11041);
        mpfr_init(r11042);
        mpfr_init(r11043);
        mpfr_init(r11044);
        mpfr_init(r11045);
        mpfr_init_set_str(r11046, "5", 10, MPFR_RNDN);
        mpfr_init(r11047);
        mpfr_init(r11048);
        mpfr_init(r11049);
        mpfr_init(r11050);
        mpfr_init(r11051);
        mpfr_init_set_str(r11052, "21", 10, MPFR_RNDN);
        mpfr_init(r11053);
        mpfr_init(r11054);
        mpfr_init(r11055);
        mpfr_init(r11056);
        mpfr_init(r11057);
        mpfr_init(r11058);
        mpfr_init(r11059);
        mpfr_init(r11060);
        mpfr_init(r11061);
        mpfr_init(r11062);
        mpfr_init(r11063);
        mpfr_init(r11064);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r11033, MPFR_RNDN);
        mpfr_sqrt(r11034, r11033, MPFR_RNDN);
        mpfr_div(r11035, r11032, r11034, MPFR_RNDN);
        ;
        mpfr_set_d(r11037, x, MPFR_RNDN);
        mpfr_abs(r11038, r11037, MPFR_RNDN);
        mpfr_mul(r11039, r11036, r11038, MPFR_RNDN);
        ;
        mpfr_div(r11041, r11036, r11040, MPFR_RNDN);
        mpfr_mul(r11042, r11038, r11038, MPFR_RNDN);
        mpfr_mul(r11043, r11042, r11038, MPFR_RNDN);
        mpfr_mul(r11044, r11041, r11043, MPFR_RNDN);
        mpfr_add(r11045, r11039, r11044, MPFR_RNDN);
        ;
        mpfr_div(r11047, r11032, r11046, MPFR_RNDN);
        mpfr_mul(r11048, r11043, r11038, MPFR_RNDN);
        mpfr_mul(r11049, r11048, r11038, MPFR_RNDN);
        mpfr_mul(r11050, r11047, r11049, MPFR_RNDN);
        mpfr_add(r11051, r11045, r11050, MPFR_RNDN);
        ;
        mpfr_div(r11053, r11032, r11052, MPFR_RNDN);
        mpfr_add(r11054, r11032, r11032, MPFR_RNDN);
        mpfr_add(r11055, r11054, r11032, MPFR_RNDN);
        mpfr_add(r11056, r11055, r11032, MPFR_RNDN);
        mpfr_add(r11057, r11056, r11032, MPFR_RNDN);
        mpfr_pow(r11058, r11038, r11057, MPFR_RNDN);
        mpfr_mul(r11059, r11058, r11038, MPFR_RNDN);
        mpfr_mul(r11060, r11059, r11038, MPFR_RNDN);
        mpfr_mul(r11061, r11053, r11060, MPFR_RNDN);
        mpfr_add(r11062, r11051, r11061, MPFR_RNDN);
        mpfr_mul(r11063, r11035, r11062, MPFR_RNDN);
        mpfr_abs(r11064, r11063, MPFR_RNDN);
        return mpfr_get_d(r11064, MPFR_RNDN);
}

static mpfr_t r11065, r11066, r11067, r11068, r11069, r11070, r11071, r11072, r11073, r11074, r11075, r11076, r11077, r11078, r11079, r11080, r11081, r11082, r11083, r11084, r11085, r11086, r11087, r11088, r11089, r11090, r11091, r11092, r11093, r11094, r11095, r11096, r11097;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11065, "1", 10, MPFR_RNDN);
        mpfr_init(r11066);
        mpfr_init(r11067);
        mpfr_init(r11068);
        mpfr_init_set_str(r11069, "2", 10, MPFR_RNDN);
        mpfr_init(r11070);
        mpfr_init(r11071);
        mpfr_init(r11072);
        mpfr_init_set_str(r11073, "3", 10, MPFR_RNDN);
        mpfr_init(r11074);
        mpfr_init(r11075);
        mpfr_init(r11076);
        mpfr_init(r11077);
        mpfr_init(r11078);
        mpfr_init_set_str(r11079, "5", 10, MPFR_RNDN);
        mpfr_init(r11080);
        mpfr_init(r11081);
        mpfr_init(r11082);
        mpfr_init(r11083);
        mpfr_init(r11084);
        mpfr_init_set_str(r11085, "21", 10, MPFR_RNDN);
        mpfr_init(r11086);
        mpfr_init(r11087);
        mpfr_init(r11088);
        mpfr_init(r11089);
        mpfr_init(r11090);
        mpfr_init(r11091);
        mpfr_init(r11092);
        mpfr_init(r11093);
        mpfr_init(r11094);
        mpfr_init(r11095);
        mpfr_init(r11096);
        mpfr_init(r11097);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r11066, MPFR_RNDN);
        mpfr_sqrt(r11067, r11066, MPFR_RNDN);
        mpfr_div(r11068, r11065, r11067, MPFR_RNDN);
        ;
        mpfr_set_d(r11070, x, MPFR_RNDN);
        mpfr_abs(r11071, r11070, MPFR_RNDN);
        mpfr_mul(r11072, r11069, r11071, MPFR_RNDN);
        ;
        mpfr_div(r11074, r11069, r11073, MPFR_RNDN);
        mpfr_mul(r11075, r11071, r11071, MPFR_RNDN);
        mpfr_mul(r11076, r11075, r11071, MPFR_RNDN);
        mpfr_mul(r11077, r11074, r11076, MPFR_RNDN);
        mpfr_add(r11078, r11072, r11077, MPFR_RNDN);
        ;
        mpfr_div(r11080, r11065, r11079, MPFR_RNDN);
        mpfr_mul(r11081, r11076, r11071, MPFR_RNDN);
        mpfr_mul(r11082, r11081, r11071, MPFR_RNDN);
        mpfr_mul(r11083, r11080, r11082, MPFR_RNDN);
        mpfr_add(r11084, r11078, r11083, MPFR_RNDN);
        ;
        mpfr_div(r11086, r11065, r11085, MPFR_RNDN);
        mpfr_add(r11087, r11065, r11065, MPFR_RNDN);
        mpfr_add(r11088, r11087, r11065, MPFR_RNDN);
        mpfr_add(r11089, r11088, r11065, MPFR_RNDN);
        mpfr_add(r11090, r11089, r11065, MPFR_RNDN);
        mpfr_pow(r11091, r11071, r11090, MPFR_RNDN);
        mpfr_mul(r11092, r11091, r11071, MPFR_RNDN);
        mpfr_mul(r11093, r11092, r11071, MPFR_RNDN);
        mpfr_mul(r11094, r11086, r11093, MPFR_RNDN);
        mpfr_add(r11095, r11084, r11094, MPFR_RNDN);
        mpfr_mul(r11096, r11068, r11095, MPFR_RNDN);
        mpfr_abs(r11097, r11096, MPFR_RNDN);
        return mpfr_get_d(r11097, MPFR_RNDN);
}

