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

char *name = "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2";

double f_if(float x, float y, float z, float t, float a, float b) {
        float r1764900 = x;
        float r1764901 = y;
        float r1764902 = z;
        float r1764903 = log(r1764902);
        float r1764904 = r1764901 * r1764903;
        float r1764905 = t;
        float r1764906 = 1.0;
        float r1764907 = r1764905 - r1764906;
        float r1764908 = a;
        float r1764909 = log(r1764908);
        float r1764910 = r1764907 * r1764909;
        float r1764911 = r1764904 + r1764910;
        float r1764912 = b;
        float r1764913 = r1764911 - r1764912;
        float r1764914 = exp(r1764913);
        float r1764915 = r1764900 * r1764914;
        float r1764916 = r1764915 / r1764901;
        return r1764916;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r1764917 = x;
        double r1764918 = y;
        double r1764919 = z;
        double r1764920 = log(r1764919);
        double r1764921 = r1764918 * r1764920;
        double r1764922 = t;
        double r1764923 = 1.0;
        double r1764924 = r1764922 - r1764923;
        double r1764925 = a;
        double r1764926 = log(r1764925);
        double r1764927 = r1764924 * r1764926;
        double r1764928 = r1764921 + r1764927;
        double r1764929 = b;
        double r1764930 = r1764928 - r1764929;
        double r1764931 = exp(r1764930);
        double r1764932 = r1764917 * r1764931;
        double r1764933 = r1764932 / r1764918;
        return r1764933;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r1764934 = t;
        float r1764935 = 1.0;
        float r1764936 = r1764934 - r1764935;
        float r1764937 = a;
        float r1764938 = log(r1764937);
        float r1764939 = r1764936 * r1764938;
        float r1764940 = -591.6896912817447;
        bool r1764941 = r1764939 <= r1764940;
        float r1764942 = x;
        float r1764943 = y;
        float r1764944 = z;
        float r1764945 = log(r1764944);
        float r1764946 = r1764943 * r1764945;
        float r1764947 = cbrt(r1764939);
        float r1764948 = r1764947 * r1764947;
        float r1764949 = r1764948 * r1764947;
        float r1764950 = r1764946 + r1764949;
        float r1764951 = b;
        float r1764952 = r1764950 - r1764951;
        float r1764953 = exp(r1764952);
        float r1764954 = r1764942 * r1764953;
        float r1764955 = r1764954 / r1764943;
        float r1764956 = -167.9720135823427;
        bool r1764957 = r1764939 <= r1764956;
        float r1764958 = exp(r1764951);
        float r1764959 = r1764942 / r1764958;
        float r1764960 = -r1764943;
        float r1764961 = pow(r1764944, r1764960);
        float r1764962 = r1764959 / r1764961;
        float r1764963 = pow(r1764937, r1764934);
        float r1764964 = pow(r1764937, r1764935);
        float r1764965 = r1764963 / r1764964;
        float r1764966 = r1764943 / r1764965;
        float r1764967 = r1764962 / r1764966;
        float r1764968 = +inf.0;
        bool r1764969 = r1764939 <= r1764968;
        float r1764970 = r1764969 ? r1764955 : r1764955;
        float r1764971 = r1764957 ? r1764967 : r1764970;
        float r1764972 = r1764941 ? r1764955 : r1764971;
        return r1764972;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r1764973 = t;
        double r1764974 = 1.0;
        double r1764975 = r1764973 - r1764974;
        double r1764976 = a;
        double r1764977 = log(r1764976);
        double r1764978 = r1764975 * r1764977;
        double r1764979 = -591.6896912817447;
        bool r1764980 = r1764978 <= r1764979;
        double r1764981 = x;
        double r1764982 = y;
        double r1764983 = z;
        double r1764984 = log(r1764983);
        double r1764985 = r1764982 * r1764984;
        double r1764986 = cbrt(r1764978);
        double r1764987 = r1764986 * r1764986;
        double r1764988 = r1764987 * r1764986;
        double r1764989 = r1764985 + r1764988;
        double r1764990 = b;
        double r1764991 = r1764989 - r1764990;
        double r1764992 = exp(r1764991);
        double r1764993 = r1764981 * r1764992;
        double r1764994 = r1764993 / r1764982;
        double r1764995 = -167.9720135823427;
        bool r1764996 = r1764978 <= r1764995;
        double r1764997 = exp(r1764990);
        double r1764998 = r1764981 / r1764997;
        double r1764999 = -r1764982;
        double r1765000 = pow(r1764983, r1764999);
        double r1765001 = r1764998 / r1765000;
        double r1765002 = pow(r1764976, r1764973);
        double r1765003 = pow(r1764976, r1764974);
        double r1765004 = r1765002 / r1765003;
        double r1765005 = r1764982 / r1765004;
        double r1765006 = r1765001 / r1765005;
        double r1765007 = +inf.0;
        bool r1765008 = r1764978 <= r1765007;
        double r1765009 = r1765008 ? r1764994 : r1764994;
        double r1765010 = r1764996 ? r1765006 : r1765009;
        double r1765011 = r1764980 ? r1764994 : r1765010;
        return r1765011;
}

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 r1765012, r1765013, r1765014, r1765015, r1765016, r1765017, r1765018, r1765019, r1765020, r1765021, r1765022, r1765023, r1765024, r1765025, r1765026, r1765027, r1765028;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r1765012);
        mpfr_init(r1765013);
        mpfr_init(r1765014);
        mpfr_init(r1765015);
        mpfr_init(r1765016);
        mpfr_init(r1765017);
        mpfr_init_set_str(r1765018, "1.0", 10, MPFR_RNDN);
        mpfr_init(r1765019);
        mpfr_init(r1765020);
        mpfr_init(r1765021);
        mpfr_init(r1765022);
        mpfr_init(r1765023);
        mpfr_init(r1765024);
        mpfr_init(r1765025);
        mpfr_init(r1765026);
        mpfr_init(r1765027);
        mpfr_init(r1765028);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r1765012, x, MPFR_RNDN);
        mpfr_set_d(r1765013, y, MPFR_RNDN);
        mpfr_set_d(r1765014, z, MPFR_RNDN);
        mpfr_log(r1765015, r1765014, MPFR_RNDN);
        mpfr_mul(r1765016, r1765013, r1765015, MPFR_RNDN);
        mpfr_set_d(r1765017, t, MPFR_RNDN);
        ;
        mpfr_sub(r1765019, r1765017, r1765018, MPFR_RNDN);
        mpfr_set_d(r1765020, a, MPFR_RNDN);
        mpfr_log(r1765021, r1765020, MPFR_RNDN);
        mpfr_mul(r1765022, r1765019, r1765021, MPFR_RNDN);
        mpfr_add(r1765023, r1765016, r1765022, MPFR_RNDN);
        mpfr_set_d(r1765024, b, MPFR_RNDN);
        mpfr_sub(r1765025, r1765023, r1765024, MPFR_RNDN);
        mpfr_exp(r1765026, r1765025, MPFR_RNDN);
        mpfr_mul(r1765027, r1765012, r1765026, MPFR_RNDN);
        mpfr_div(r1765028, r1765027, r1765013, MPFR_RNDN);
        return mpfr_get_d(r1765028, MPFR_RNDN);
}

static mpfr_t r1765029, r1765030, r1765031, r1765032, r1765033, r1765034, r1765035, r1765036, r1765037, r1765038, r1765039, r1765040, r1765041, r1765042, r1765043, r1765044, r1765045, r1765046, r1765047, r1765048, r1765049, r1765050, r1765051, r1765052, r1765053, r1765054, r1765055, r1765056, r1765057, r1765058, r1765059, r1765060, r1765061, r1765062, r1765063, r1765064, r1765065, r1765066, r1765067;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r1765029);
        mpfr_init_set_str(r1765030, "1.0", 10, MPFR_RNDN);
        mpfr_init(r1765031);
        mpfr_init(r1765032);
        mpfr_init(r1765033);
        mpfr_init(r1765034);
        mpfr_init_set_str(r1765035, "-591.6896912817447", 10, MPFR_RNDN);
        mpfr_init(r1765036);
        mpfr_init(r1765037);
        mpfr_init(r1765038);
        mpfr_init(r1765039);
        mpfr_init(r1765040);
        mpfr_init(r1765041);
        mpfr_init(r1765042);
        mpfr_init(r1765043);
        mpfr_init(r1765044);
        mpfr_init(r1765045);
        mpfr_init(r1765046);
        mpfr_init(r1765047);
        mpfr_init(r1765048);
        mpfr_init(r1765049);
        mpfr_init(r1765050);
        mpfr_init_set_str(r1765051, "-167.9720135823427", 10, MPFR_RNDN);
        mpfr_init(r1765052);
        mpfr_init(r1765053);
        mpfr_init(r1765054);
        mpfr_init(r1765055);
        mpfr_init(r1765056);
        mpfr_init(r1765057);
        mpfr_init(r1765058);
        mpfr_init(r1765059);
        mpfr_init(r1765060);
        mpfr_init(r1765061);
        mpfr_init(r1765062);
        mpfr_init_set_str(r1765063, "+inf.0", 10, MPFR_RNDN);
        mpfr_init(r1765064);
        mpfr_init(r1765065);
        mpfr_init(r1765066);
        mpfr_init(r1765067);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r1765029, t, MPFR_RNDN);
        ;
        mpfr_sub(r1765031, r1765029, r1765030, MPFR_RNDN);
        mpfr_set_d(r1765032, a, MPFR_RNDN);
        mpfr_log(r1765033, r1765032, MPFR_RNDN);
        mpfr_mul(r1765034, r1765031, r1765033, MPFR_RNDN);
        ;
        mpfr_set_si(r1765036, mpfr_cmp(r1765034, r1765035) <= 0, MPFR_RNDN);
        mpfr_set_d(r1765037, x, MPFR_RNDN);
        mpfr_set_d(r1765038, y, MPFR_RNDN);
        mpfr_set_d(r1765039, z, MPFR_RNDN);
        mpfr_log(r1765040, r1765039, MPFR_RNDN);
        mpfr_mul(r1765041, r1765038, r1765040, MPFR_RNDN);
        mpfr_cbrt(r1765042, r1765034, MPFR_RNDN);
        mpfr_mul(r1765043, r1765042, r1765042, MPFR_RNDN);
        mpfr_mul(r1765044, r1765043, r1765042, MPFR_RNDN);
        mpfr_add(r1765045, r1765041, r1765044, MPFR_RNDN);
        mpfr_set_d(r1765046, b, MPFR_RNDN);
        mpfr_sub(r1765047, r1765045, r1765046, MPFR_RNDN);
        mpfr_exp(r1765048, r1765047, MPFR_RNDN);
        mpfr_mul(r1765049, r1765037, r1765048, MPFR_RNDN);
        mpfr_div(r1765050, r1765049, r1765038, MPFR_RNDN);
        ;
        mpfr_set_si(r1765052, mpfr_cmp(r1765034, r1765051) <= 0, MPFR_RNDN);
        mpfr_exp(r1765053, r1765046, MPFR_RNDN);
        mpfr_div(r1765054, r1765037, r1765053, MPFR_RNDN);
        mpfr_neg(r1765055, r1765038, MPFR_RNDN);
        mpfr_pow(r1765056, r1765039, r1765055, MPFR_RNDN);
        mpfr_div(r1765057, r1765054, r1765056, MPFR_RNDN);
        mpfr_pow(r1765058, r1765032, r1765029, MPFR_RNDN);
        mpfr_pow(r1765059, r1765032, r1765030, MPFR_RNDN);
        mpfr_div(r1765060, r1765058, r1765059, MPFR_RNDN);
        mpfr_div(r1765061, r1765038, r1765060, MPFR_RNDN);
        mpfr_div(r1765062, r1765057, r1765061, MPFR_RNDN);
        ;
        mpfr_set_si(r1765064, mpfr_cmp(r1765034, r1765063) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r1765064, MPFR_RNDN)) { mpfr_set(r1765065, r1765050, MPFR_RNDN); } else { mpfr_set(r1765065, r1765050, MPFR_RNDN); };
        if (mpfr_get_si(r1765052, MPFR_RNDN)) { mpfr_set(r1765066, r1765062, MPFR_RNDN); } else { mpfr_set(r1765066, r1765065, MPFR_RNDN); };
        if (mpfr_get_si(r1765036, MPFR_RNDN)) { mpfr_set(r1765067, r1765050, MPFR_RNDN); } else { mpfr_set(r1765067, r1765066, MPFR_RNDN); };
        return mpfr_get_d(r1765067, MPFR_RNDN);
}

static mpfr_t r1765068, r1765069, r1765070, r1765071, r1765072, r1765073, r1765074, r1765075, r1765076, r1765077, r1765078, r1765079, r1765080, r1765081, r1765082, r1765083, r1765084, r1765085, r1765086, r1765087, r1765088, r1765089, r1765090, r1765091, r1765092, r1765093, r1765094, r1765095, r1765096, r1765097, r1765098, r1765099, r1765100, r1765101, r1765102, r1765103, r1765104, r1765105, r1765106;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r1765068);
        mpfr_init_set_str(r1765069, "1.0", 10, MPFR_RNDN);
        mpfr_init(r1765070);
        mpfr_init(r1765071);
        mpfr_init(r1765072);
        mpfr_init(r1765073);
        mpfr_init_set_str(r1765074, "-591.6896912817447", 10, MPFR_RNDN);
        mpfr_init(r1765075);
        mpfr_init(r1765076);
        mpfr_init(r1765077);
        mpfr_init(r1765078);
        mpfr_init(r1765079);
        mpfr_init(r1765080);
        mpfr_init(r1765081);
        mpfr_init(r1765082);
        mpfr_init(r1765083);
        mpfr_init(r1765084);
        mpfr_init(r1765085);
        mpfr_init(r1765086);
        mpfr_init(r1765087);
        mpfr_init(r1765088);
        mpfr_init(r1765089);
        mpfr_init_set_str(r1765090, "-167.9720135823427", 10, MPFR_RNDN);
        mpfr_init(r1765091);
        mpfr_init(r1765092);
        mpfr_init(r1765093);
        mpfr_init(r1765094);
        mpfr_init(r1765095);
        mpfr_init(r1765096);
        mpfr_init(r1765097);
        mpfr_init(r1765098);
        mpfr_init(r1765099);
        mpfr_init(r1765100);
        mpfr_init(r1765101);
        mpfr_init_set_str(r1765102, "+inf.0", 10, MPFR_RNDN);
        mpfr_init(r1765103);
        mpfr_init(r1765104);
        mpfr_init(r1765105);
        mpfr_init(r1765106);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r1765068, t, MPFR_RNDN);
        ;
        mpfr_sub(r1765070, r1765068, r1765069, MPFR_RNDN);
        mpfr_set_d(r1765071, a, MPFR_RNDN);
        mpfr_log(r1765072, r1765071, MPFR_RNDN);
        mpfr_mul(r1765073, r1765070, r1765072, MPFR_RNDN);
        ;
        mpfr_set_si(r1765075, mpfr_cmp(r1765073, r1765074) <= 0, MPFR_RNDN);
        mpfr_set_d(r1765076, x, MPFR_RNDN);
        mpfr_set_d(r1765077, y, MPFR_RNDN);
        mpfr_set_d(r1765078, z, MPFR_RNDN);
        mpfr_log(r1765079, r1765078, MPFR_RNDN);
        mpfr_mul(r1765080, r1765077, r1765079, MPFR_RNDN);
        mpfr_cbrt(r1765081, r1765073, MPFR_RNDN);
        mpfr_mul(r1765082, r1765081, r1765081, MPFR_RNDN);
        mpfr_mul(r1765083, r1765082, r1765081, MPFR_RNDN);
        mpfr_add(r1765084, r1765080, r1765083, MPFR_RNDN);
        mpfr_set_d(r1765085, b, MPFR_RNDN);
        mpfr_sub(r1765086, r1765084, r1765085, MPFR_RNDN);
        mpfr_exp(r1765087, r1765086, MPFR_RNDN);
        mpfr_mul(r1765088, r1765076, r1765087, MPFR_RNDN);
        mpfr_div(r1765089, r1765088, r1765077, MPFR_RNDN);
        ;
        mpfr_set_si(r1765091, mpfr_cmp(r1765073, r1765090) <= 0, MPFR_RNDN);
        mpfr_exp(r1765092, r1765085, MPFR_RNDN);
        mpfr_div(r1765093, r1765076, r1765092, MPFR_RNDN);
        mpfr_neg(r1765094, r1765077, MPFR_RNDN);
        mpfr_pow(r1765095, r1765078, r1765094, MPFR_RNDN);
        mpfr_div(r1765096, r1765093, r1765095, MPFR_RNDN);
        mpfr_pow(r1765097, r1765071, r1765068, MPFR_RNDN);
        mpfr_pow(r1765098, r1765071, r1765069, MPFR_RNDN);
        mpfr_div(r1765099, r1765097, r1765098, MPFR_RNDN);
        mpfr_div(r1765100, r1765077, r1765099, MPFR_RNDN);
        mpfr_div(r1765101, r1765096, r1765100, MPFR_RNDN);
        ;
        mpfr_set_si(r1765103, mpfr_cmp(r1765073, r1765102) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r1765103, MPFR_RNDN)) { mpfr_set(r1765104, r1765089, MPFR_RNDN); } else { mpfr_set(r1765104, r1765089, MPFR_RNDN); };
        if (mpfr_get_si(r1765091, MPFR_RNDN)) { mpfr_set(r1765105, r1765101, MPFR_RNDN); } else { mpfr_set(r1765105, r1765104, MPFR_RNDN); };
        if (mpfr_get_si(r1765075, MPFR_RNDN)) { mpfr_set(r1765106, r1765089, MPFR_RNDN); } else { mpfr_set(r1765106, r1765105, MPFR_RNDN); };
        return mpfr_get_d(r1765106, MPFR_RNDN);
}

