#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 r10904 = 1.0f;
        float r10905 = atan2(1.0, 0.0);
        float r10906 = sqrt(r10905);
        float r10907 = r10904 / r10906;
        float r10908 = 2.0f;
        float r10909 = x;
        float r10910 = fabs(r10909);
        float r10911 = r10908 * r10910;
        float r10912 = 3.0f;
        float r10913 = r10908 / r10912;
        float r10914 = r10910 * r10910;
        float r10915 = r10914 * r10910;
        float r10916 = r10913 * r10915;
        float r10917 = r10911 + r10916;
        float r10918 = 5.0f;
        float r10919 = r10904 / r10918;
        float r10920 = r10915 * r10910;
        float r10921 = r10920 * r10910;
        float r10922 = r10919 * r10921;
        float r10923 = r10917 + r10922;
        float r10924 = 21.0f;
        float r10925 = r10904 / r10924;
        float r10926 = r10921 * r10910;
        float r10927 = r10926 * r10910;
        float r10928 = r10925 * r10927;
        float r10929 = r10923 + r10928;
        float r10930 = r10907 * r10929;
        float r10931 = fabs(r10930);
        return r10931;
}

double f_id(double x) {
        double r10932 = 1.0;
        double r10933 = atan2(1.0, 0.0);
        double r10934 = sqrt(r10933);
        double r10935 = r10932 / r10934;
        double r10936 = 2.0;
        double r10937 = x;
        double r10938 = fabs(r10937);
        double r10939 = r10936 * r10938;
        double r10940 = 3.0;
        double r10941 = r10936 / r10940;
        double r10942 = r10938 * r10938;
        double r10943 = r10942 * r10938;
        double r10944 = r10941 * r10943;
        double r10945 = r10939 + r10944;
        double r10946 = 5.0;
        double r10947 = r10932 / r10946;
        double r10948 = r10943 * r10938;
        double r10949 = r10948 * r10938;
        double r10950 = r10947 * r10949;
        double r10951 = r10945 + r10950;
        double r10952 = 21.0;
        double r10953 = r10932 / r10952;
        double r10954 = r10949 * r10938;
        double r10955 = r10954 * r10938;
        double r10956 = r10953 * r10955;
        double r10957 = r10951 + r10956;
        double r10958 = r10935 * r10957;
        double r10959 = fabs(r10958);
        return r10959;
}


double f_of(float x) {
        float r10960 = x;
        float r10961 = fabs(r10960);
        float r10962 = 3.0f;
        float r10963 = pow(r10961, r10962);
        float r10964 = r10963 * r10963;
        float r10965 = 21.0f;
        float r10966 = atan2(1.0, 0.0);
        float r10967 = sqrt(r10966);
        float r10968 = r10965 * r10967;
        float r10969 = r10968 / r10961;
        float r10970 = r10964 / r10969;
        float r10971 = 2.0f;
        float r10972 = r10971 * r10961;
        float r10973 = r10961 * r10961;
        float r10974 = r10973 * r10961;
        float r10975 = r10971 / r10962;
        float r10976 = r10974 * r10975;
        float r10977 = r10972 + r10976;
        float r10978 = 1.0f;
        float r10979 = 5.0f;
        float r10980 = r10978 / r10979;
        float r10981 = r10974 * r10961;
        float r10982 = r10961 * r10981;
        float r10983 = r10980 * r10982;
        float r10984 = r10977 + r10983;
        float r10985 = r10978 / r10967;
        float r10986 = r10984 * r10985;
        float r10987 = r10970 + r10986;
        float r10988 = fabs(r10987);
        return r10988;
}

double f_od(double x) {
        double r10989 = x;
        double r10990 = fabs(r10989);
        double r10991 = 3.0;
        double r10992 = pow(r10990, r10991);
        double r10993 = r10992 * r10992;
        double r10994 = 21.0;
        double r10995 = atan2(1.0, 0.0);
        double r10996 = sqrt(r10995);
        double r10997 = r10994 * r10996;
        double r10998 = r10997 / r10990;
        double r10999 = r10993 / r10998;
        double r11000 = 2.0;
        double r11001 = r11000 * r10990;
        double r11002 = r10990 * r10990;
        double r11003 = r11002 * r10990;
        double r11004 = r11000 / r10991;
        double r11005 = r11003 * r11004;
        double r11006 = r11001 + r11005;
        double r11007 = 1.0;
        double r11008 = 5.0;
        double r11009 = r11007 / r11008;
        double r11010 = r11003 * r10990;
        double r11011 = r10990 * r11010;
        double r11012 = r11009 * r11011;
        double r11013 = r11006 + r11012;
        double r11014 = r11007 / r10996;
        double r11015 = r11013 * r11014;
        double r11016 = r10999 + r11015;
        double r11017 = fabs(r11016);
        return r11017;
}

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 r11018, r11019, r11020, r11021, r11022, r11023, r11024, r11025, r11026, r11027, r11028, r11029, r11030, r11031, r11032, r11033, r11034, r11035, r11036, r11037, r11038, r11039, r11040, r11041, r11042, r11043, r11044, r11045;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11018, "1", 10, MPFR_RNDN);
        mpfr_init(r11019);
        mpfr_init(r11020);
        mpfr_init(r11021);
        mpfr_init_set_str(r11022, "2", 10, MPFR_RNDN);
        mpfr_init(r11023);
        mpfr_init(r11024);
        mpfr_init(r11025);
        mpfr_init_set_str(r11026, "3", 10, MPFR_RNDN);
        mpfr_init(r11027);
        mpfr_init(r11028);
        mpfr_init(r11029);
        mpfr_init(r11030);
        mpfr_init(r11031);
        mpfr_init_set_str(r11032, "5", 10, MPFR_RNDN);
        mpfr_init(r11033);
        mpfr_init(r11034);
        mpfr_init(r11035);
        mpfr_init(r11036);
        mpfr_init(r11037);
        mpfr_init_set_str(r11038, "21", 10, MPFR_RNDN);
        mpfr_init(r11039);
        mpfr_init(r11040);
        mpfr_init(r11041);
        mpfr_init(r11042);
        mpfr_init(r11043);
        mpfr_init(r11044);
        mpfr_init(r11045);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r11019, MPFR_RNDN);
        mpfr_sqrt(r11020, r11019, MPFR_RNDN);
        mpfr_div(r11021, r11018, r11020, MPFR_RNDN);
        ;
        mpfr_set_d(r11023, x, MPFR_RNDN);
        mpfr_abs(r11024, r11023, MPFR_RNDN);
        mpfr_mul(r11025, r11022, r11024, MPFR_RNDN);
        ;
        mpfr_div(r11027, r11022, r11026, MPFR_RNDN);
        mpfr_mul(r11028, r11024, r11024, MPFR_RNDN);
        mpfr_mul(r11029, r11028, r11024, MPFR_RNDN);
        mpfr_mul(r11030, r11027, r11029, MPFR_RNDN);
        mpfr_add(r11031, r11025, r11030, MPFR_RNDN);
        ;
        mpfr_div(r11033, r11018, r11032, MPFR_RNDN);
        mpfr_mul(r11034, r11029, r11024, MPFR_RNDN);
        mpfr_mul(r11035, r11034, r11024, MPFR_RNDN);
        mpfr_mul(r11036, r11033, r11035, MPFR_RNDN);
        mpfr_add(r11037, r11031, r11036, MPFR_RNDN);
        ;
        mpfr_div(r11039, r11018, r11038, MPFR_RNDN);
        mpfr_mul(r11040, r11035, r11024, MPFR_RNDN);
        mpfr_mul(r11041, r11040, r11024, MPFR_RNDN);
        mpfr_mul(r11042, r11039, r11041, MPFR_RNDN);
        mpfr_add(r11043, r11037, r11042, MPFR_RNDN);
        mpfr_mul(r11044, r11021, r11043, MPFR_RNDN);
        mpfr_abs(r11045, r11044, MPFR_RNDN);
        return mpfr_get_d(r11045, MPFR_RNDN);
}

static mpfr_t r11046, r11047, r11048, r11049, r11050, r11051, r11052, r11053, r11054, r11055, r11056, r11057, r11058, r11059, r11060, r11061, r11062, r11063, r11064, r11065, r11066, r11067, r11068, r11069, r11070, r11071, r11072, r11073, r11074;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11046);
        mpfr_init(r11047);
        mpfr_init_set_str(r11048, "3", 10, MPFR_RNDN);
        mpfr_init(r11049);
        mpfr_init(r11050);
        mpfr_init_set_str(r11051, "21", 10, MPFR_RNDN);
        mpfr_init(r11052);
        mpfr_init(r11053);
        mpfr_init(r11054);
        mpfr_init(r11055);
        mpfr_init(r11056);
        mpfr_init_set_str(r11057, "2", 10, MPFR_RNDN);
        mpfr_init(r11058);
        mpfr_init(r11059);
        mpfr_init(r11060);
        mpfr_init(r11061);
        mpfr_init(r11062);
        mpfr_init(r11063);
        mpfr_init_set_str(r11064, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11065, "5", 10, MPFR_RNDN);
        mpfr_init(r11066);
        mpfr_init(r11067);
        mpfr_init(r11068);
        mpfr_init(r11069);
        mpfr_init(r11070);
        mpfr_init(r11071);
        mpfr_init(r11072);
        mpfr_init(r11073);
        mpfr_init(r11074);
}

double f_fm(double x) {
        mpfr_set_d(r11046, x, MPFR_RNDN);
        mpfr_abs(r11047, r11046, MPFR_RNDN);
        ;
        mpfr_pow(r11049, r11047, r11048, MPFR_RNDN);
        mpfr_mul(r11050, r11049, r11049, MPFR_RNDN);
        ;
        mpfr_const_pi(r11052, MPFR_RNDN);
        mpfr_sqrt(r11053, r11052, MPFR_RNDN);
        mpfr_mul(r11054, r11051, r11053, MPFR_RNDN);
        mpfr_div(r11055, r11054, r11047, MPFR_RNDN);
        mpfr_div(r11056, r11050, r11055, MPFR_RNDN);
        ;
        mpfr_mul(r11058, r11057, r11047, MPFR_RNDN);
        mpfr_mul(r11059, r11047, r11047, MPFR_RNDN);
        mpfr_mul(r11060, r11059, r11047, MPFR_RNDN);
        mpfr_div(r11061, r11057, r11048, MPFR_RNDN);
        mpfr_mul(r11062, r11060, r11061, MPFR_RNDN);
        mpfr_add(r11063, r11058, r11062, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11066, r11064, r11065, MPFR_RNDN);
        mpfr_mul(r11067, r11060, r11047, MPFR_RNDN);
        mpfr_mul(r11068, r11047, r11067, MPFR_RNDN);
        mpfr_mul(r11069, r11066, r11068, MPFR_RNDN);
        mpfr_add(r11070, r11063, r11069, MPFR_RNDN);
        mpfr_div(r11071, r11064, r11053, MPFR_RNDN);
        mpfr_mul(r11072, r11070, r11071, MPFR_RNDN);
        mpfr_add(r11073, r11056, r11072, MPFR_RNDN);
        mpfr_abs(r11074, r11073, MPFR_RNDN);
        return mpfr_get_d(r11074, MPFR_RNDN);
}

static mpfr_t r11075, r11076, r11077, r11078, r11079, r11080, r11081, r11082, r11083, r11084, r11085, r11086, r11087, r11088, r11089, r11090, r11091, r11092, r11093, r11094, r11095, r11096, r11097, r11098, r11099, r11100, r11101, r11102, r11103;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11075);
        mpfr_init(r11076);
        mpfr_init_set_str(r11077, "3", 10, MPFR_RNDN);
        mpfr_init(r11078);
        mpfr_init(r11079);
        mpfr_init_set_str(r11080, "21", 10, MPFR_RNDN);
        mpfr_init(r11081);
        mpfr_init(r11082);
        mpfr_init(r11083);
        mpfr_init(r11084);
        mpfr_init(r11085);
        mpfr_init_set_str(r11086, "2", 10, MPFR_RNDN);
        mpfr_init(r11087);
        mpfr_init(r11088);
        mpfr_init(r11089);
        mpfr_init(r11090);
        mpfr_init(r11091);
        mpfr_init(r11092);
        mpfr_init_set_str(r11093, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11094, "5", 10, MPFR_RNDN);
        mpfr_init(r11095);
        mpfr_init(r11096);
        mpfr_init(r11097);
        mpfr_init(r11098);
        mpfr_init(r11099);
        mpfr_init(r11100);
        mpfr_init(r11101);
        mpfr_init(r11102);
        mpfr_init(r11103);
}

double f_dm(double x) {
        mpfr_set_d(r11075, x, MPFR_RNDN);
        mpfr_abs(r11076, r11075, MPFR_RNDN);
        ;
        mpfr_pow(r11078, r11076, r11077, MPFR_RNDN);
        mpfr_mul(r11079, r11078, r11078, MPFR_RNDN);
        ;
        mpfr_const_pi(r11081, MPFR_RNDN);
        mpfr_sqrt(r11082, r11081, MPFR_RNDN);
        mpfr_mul(r11083, r11080, r11082, MPFR_RNDN);
        mpfr_div(r11084, r11083, r11076, MPFR_RNDN);
        mpfr_div(r11085, r11079, r11084, MPFR_RNDN);
        ;
        mpfr_mul(r11087, r11086, r11076, MPFR_RNDN);
        mpfr_mul(r11088, r11076, r11076, MPFR_RNDN);
        mpfr_mul(r11089, r11088, r11076, MPFR_RNDN);
        mpfr_div(r11090, r11086, r11077, MPFR_RNDN);
        mpfr_mul(r11091, r11089, r11090, MPFR_RNDN);
        mpfr_add(r11092, r11087, r11091, MPFR_RNDN);
        ;
        ;
        mpfr_div(r11095, r11093, r11094, MPFR_RNDN);
        mpfr_mul(r11096, r11089, r11076, MPFR_RNDN);
        mpfr_mul(r11097, r11076, r11096, MPFR_RNDN);
        mpfr_mul(r11098, r11095, r11097, MPFR_RNDN);
        mpfr_add(r11099, r11092, r11098, MPFR_RNDN);
        mpfr_div(r11100, r11093, r11082, MPFR_RNDN);
        mpfr_mul(r11101, r11099, r11100, MPFR_RNDN);
        mpfr_add(r11102, r11085, r11101, MPFR_RNDN);
        mpfr_abs(r11103, r11102, MPFR_RNDN);
        return mpfr_get_d(r11103, MPFR_RNDN);
}

