#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, A";

double f_if(float x, float y, float z, float t, float a, float b) {
        float r44932 = x;
        float r44933 = y;
        float r44934 = z;
        float r44935 = log(r44934);
        float r44936 = r44933 * r44935;
        float r44937 = t;
        float r44938 = 1.0;
        float r44939 = r44937 - r44938;
        float r44940 = a;
        float r44941 = log(r44940);
        float r44942 = r44939 * r44941;
        float r44943 = r44936 + r44942;
        float r44944 = b;
        float r44945 = r44943 - r44944;
        float r44946 = exp(r44945);
        float r44947 = r44932 * r44946;
        float r44948 = r44947 / r44933;
        return r44948;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r44949 = x;
        double r44950 = y;
        double r44951 = z;
        double r44952 = log(r44951);
        double r44953 = r44950 * r44952;
        double r44954 = t;
        double r44955 = 1.0;
        double r44956 = r44954 - r44955;
        double r44957 = a;
        double r44958 = log(r44957);
        double r44959 = r44956 * r44958;
        double r44960 = r44953 + r44959;
        double r44961 = b;
        double r44962 = r44960 - r44961;
        double r44963 = exp(r44962);
        double r44964 = r44949 * r44963;
        double r44965 = r44964 / r44950;
        return r44965;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r44966 = y;
        float r44967 = -4.81901803570697e-133;
        bool r44968 = r44966 <= r44967;
        float r44969 = x;
        float r44970 = r44969 / r44966;
        float r44971 = a;
        float r44972 = log(r44971);
        float r44973 = t;
        float r44974 = 1.0;
        float r44975 = r44973 - r44974;
        float r44976 = r44972 * r44975;
        float r44977 = b;
        float r44978 = z;
        float r44979 = log(r44978);
        float r44980 = r44979 * r44966;
        float r44981 = r44977 - r44980;
        float r44982 = r44976 - r44981;
        float r44983 = exp(r44982);
        float r44984 = r44970 * r44983;
        float r44985 = 0.26022260549807996;
        bool r44986 = r44966 <= r44985;
        float r44987 = pow(r44971, r44975);
        float r44988 = exp(r44977);
        float r44989 = pow(r44978, r44966);
        float r44990 = r44988 / r44989;
        float r44991 = r44987 / r44990;
        float r44992 = r44969 * r44991;
        float r44993 = r44992 / r44966;
        float r44994 = r44986 ? r44993 : r44984;
        float r44995 = r44968 ? r44984 : r44994;
        return r44995;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r44996 = y;
        double r44997 = -4.81901803570697e-133;
        bool r44998 = r44996 <= r44997;
        double r44999 = x;
        double r45000 = r44999 / r44996;
        double r45001 = a;
        double r45002 = log(r45001);
        double r45003 = t;
        double r45004 = 1.0;
        double r45005 = r45003 - r45004;
        double r45006 = r45002 * r45005;
        double r45007 = b;
        double r45008 = z;
        double r45009 = log(r45008);
        double r45010 = r45009 * r44996;
        double r45011 = r45007 - r45010;
        double r45012 = r45006 - r45011;
        double r45013 = exp(r45012);
        double r45014 = r45000 * r45013;
        double r45015 = 0.26022260549807996;
        bool r45016 = r44996 <= r45015;
        double r45017 = pow(r45001, r45005);
        double r45018 = exp(r45007);
        double r45019 = pow(r45008, r44996);
        double r45020 = r45018 / r45019;
        double r45021 = r45017 / r45020;
        double r45022 = r44999 * r45021;
        double r45023 = r45022 / r44996;
        double r45024 = r45016 ? r45023 : r45014;
        double r45025 = r44998 ? r45014 : r45024;
        return r45025;
}

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 r45026, r45027, r45028, r45029, r45030, r45031, r45032, r45033, r45034, r45035, r45036, r45037, r45038, r45039, r45040, r45041, r45042;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r45026);
        mpfr_init(r45027);
        mpfr_init(r45028);
        mpfr_init(r45029);
        mpfr_init(r45030);
        mpfr_init(r45031);
        mpfr_init_set_str(r45032, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45033);
        mpfr_init(r45034);
        mpfr_init(r45035);
        mpfr_init(r45036);
        mpfr_init(r45037);
        mpfr_init(r45038);
        mpfr_init(r45039);
        mpfr_init(r45040);
        mpfr_init(r45041);
        mpfr_init(r45042);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r45026, x, MPFR_RNDN);
        mpfr_set_d(r45027, y, MPFR_RNDN);
        mpfr_set_d(r45028, z, MPFR_RNDN);
        mpfr_log(r45029, r45028, MPFR_RNDN);
        mpfr_mul(r45030, r45027, r45029, MPFR_RNDN);
        mpfr_set_d(r45031, t, MPFR_RNDN);
        ;
        mpfr_sub(r45033, r45031, r45032, MPFR_RNDN);
        mpfr_set_d(r45034, a, MPFR_RNDN);
        mpfr_log(r45035, r45034, MPFR_RNDN);
        mpfr_mul(r45036, r45033, r45035, MPFR_RNDN);
        mpfr_add(r45037, r45030, r45036, MPFR_RNDN);
        mpfr_set_d(r45038, b, MPFR_RNDN);
        mpfr_sub(r45039, r45037, r45038, MPFR_RNDN);
        mpfr_exp(r45040, r45039, MPFR_RNDN);
        mpfr_mul(r45041, r45026, r45040, MPFR_RNDN);
        mpfr_div(r45042, r45041, r45027, MPFR_RNDN);
        return mpfr_get_d(r45042, MPFR_RNDN);
}

static mpfr_t r45043, r45044, r45045, r45046, r45047, r45048, r45049, r45050, r45051, r45052, r45053, r45054, r45055, r45056, r45057, r45058, r45059, r45060, r45061, r45062, r45063, r45064, r45065, r45066, r45067, r45068, r45069, r45070, r45071, r45072;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r45043);
        mpfr_init_set_str(r45044, "-4.81901803570697e-133", 10, MPFR_RNDN);
        mpfr_init(r45045);
        mpfr_init(r45046);
        mpfr_init(r45047);
        mpfr_init(r45048);
        mpfr_init(r45049);
        mpfr_init(r45050);
        mpfr_init_set_str(r45051, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45052);
        mpfr_init(r45053);
        mpfr_init(r45054);
        mpfr_init(r45055);
        mpfr_init(r45056);
        mpfr_init(r45057);
        mpfr_init(r45058);
        mpfr_init(r45059);
        mpfr_init(r45060);
        mpfr_init(r45061);
        mpfr_init_set_str(r45062, "0.26022260549807996", 10, MPFR_RNDN);
        mpfr_init(r45063);
        mpfr_init(r45064);
        mpfr_init(r45065);
        mpfr_init(r45066);
        mpfr_init(r45067);
        mpfr_init(r45068);
        mpfr_init(r45069);
        mpfr_init(r45070);
        mpfr_init(r45071);
        mpfr_init(r45072);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r45043, y, MPFR_RNDN);
        ;
        mpfr_set_si(r45045, mpfr_cmp(r45043, r45044) <= 0, MPFR_RNDN);
        mpfr_set_d(r45046, x, MPFR_RNDN);
        mpfr_div(r45047, r45046, r45043, MPFR_RNDN);
        mpfr_set_d(r45048, a, MPFR_RNDN);
        mpfr_log(r45049, r45048, MPFR_RNDN);
        mpfr_set_d(r45050, t, MPFR_RNDN);
        ;
        mpfr_sub(r45052, r45050, r45051, MPFR_RNDN);
        mpfr_mul(r45053, r45049, r45052, MPFR_RNDN);
        mpfr_set_d(r45054, b, MPFR_RNDN);
        mpfr_set_d(r45055, z, MPFR_RNDN);
        mpfr_log(r45056, r45055, MPFR_RNDN);
        mpfr_mul(r45057, r45056, r45043, MPFR_RNDN);
        mpfr_sub(r45058, r45054, r45057, MPFR_RNDN);
        mpfr_sub(r45059, r45053, r45058, MPFR_RNDN);
        mpfr_exp(r45060, r45059, MPFR_RNDN);
        mpfr_mul(r45061, r45047, r45060, MPFR_RNDN);
        ;
        mpfr_set_si(r45063, mpfr_cmp(r45043, r45062) <= 0, MPFR_RNDN);
        mpfr_pow(r45064, r45048, r45052, MPFR_RNDN);
        mpfr_exp(r45065, r45054, MPFR_RNDN);
        mpfr_pow(r45066, r45055, r45043, MPFR_RNDN);
        mpfr_div(r45067, r45065, r45066, MPFR_RNDN);
        mpfr_div(r45068, r45064, r45067, MPFR_RNDN);
        mpfr_mul(r45069, r45046, r45068, MPFR_RNDN);
        mpfr_div(r45070, r45069, r45043, MPFR_RNDN);
        if (mpfr_get_si(r45063, MPFR_RNDN)) { mpfr_set(r45071, r45070, MPFR_RNDN); } else { mpfr_set(r45071, r45061, MPFR_RNDN); };
        if (mpfr_get_si(r45045, MPFR_RNDN)) { mpfr_set(r45072, r45061, MPFR_RNDN); } else { mpfr_set(r45072, r45071, MPFR_RNDN); };
        return mpfr_get_d(r45072, MPFR_RNDN);
}

static mpfr_t r45073, r45074, r45075, r45076, r45077, r45078, r45079, r45080, r45081, r45082, r45083, r45084, r45085, r45086, r45087, r45088, r45089, r45090, r45091, r45092, r45093, r45094, r45095, r45096, r45097, r45098, r45099, r45100, r45101, r45102;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r45073);
        mpfr_init_set_str(r45074, "-4.81901803570697e-133", 10, MPFR_RNDN);
        mpfr_init(r45075);
        mpfr_init(r45076);
        mpfr_init(r45077);
        mpfr_init(r45078);
        mpfr_init(r45079);
        mpfr_init(r45080);
        mpfr_init_set_str(r45081, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45082);
        mpfr_init(r45083);
        mpfr_init(r45084);
        mpfr_init(r45085);
        mpfr_init(r45086);
        mpfr_init(r45087);
        mpfr_init(r45088);
        mpfr_init(r45089);
        mpfr_init(r45090);
        mpfr_init(r45091);
        mpfr_init_set_str(r45092, "0.26022260549807996", 10, MPFR_RNDN);
        mpfr_init(r45093);
        mpfr_init(r45094);
        mpfr_init(r45095);
        mpfr_init(r45096);
        mpfr_init(r45097);
        mpfr_init(r45098);
        mpfr_init(r45099);
        mpfr_init(r45100);
        mpfr_init(r45101);
        mpfr_init(r45102);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r45073, y, MPFR_RNDN);
        ;
        mpfr_set_si(r45075, mpfr_cmp(r45073, r45074) <= 0, MPFR_RNDN);
        mpfr_set_d(r45076, x, MPFR_RNDN);
        mpfr_div(r45077, r45076, r45073, MPFR_RNDN);
        mpfr_set_d(r45078, a, MPFR_RNDN);
        mpfr_log(r45079, r45078, MPFR_RNDN);
        mpfr_set_d(r45080, t, MPFR_RNDN);
        ;
        mpfr_sub(r45082, r45080, r45081, MPFR_RNDN);
        mpfr_mul(r45083, r45079, r45082, MPFR_RNDN);
        mpfr_set_d(r45084, b, MPFR_RNDN);
        mpfr_set_d(r45085, z, MPFR_RNDN);
        mpfr_log(r45086, r45085, MPFR_RNDN);
        mpfr_mul(r45087, r45086, r45073, MPFR_RNDN);
        mpfr_sub(r45088, r45084, r45087, MPFR_RNDN);
        mpfr_sub(r45089, r45083, r45088, MPFR_RNDN);
        mpfr_exp(r45090, r45089, MPFR_RNDN);
        mpfr_mul(r45091, r45077, r45090, MPFR_RNDN);
        ;
        mpfr_set_si(r45093, mpfr_cmp(r45073, r45092) <= 0, MPFR_RNDN);
        mpfr_pow(r45094, r45078, r45082, MPFR_RNDN);
        mpfr_exp(r45095, r45084, MPFR_RNDN);
        mpfr_pow(r45096, r45085, r45073, MPFR_RNDN);
        mpfr_div(r45097, r45095, r45096, MPFR_RNDN);
        mpfr_div(r45098, r45094, r45097, MPFR_RNDN);
        mpfr_mul(r45099, r45076, r45098, MPFR_RNDN);
        mpfr_div(r45100, r45099, r45073, MPFR_RNDN);
        if (mpfr_get_si(r45093, MPFR_RNDN)) { mpfr_set(r45101, r45100, MPFR_RNDN); } else { mpfr_set(r45101, r45091, MPFR_RNDN); };
        if (mpfr_get_si(r45075, MPFR_RNDN)) { mpfr_set(r45102, r45091, MPFR_RNDN); } else { mpfr_set(r45102, r45101, MPFR_RNDN); };
        return mpfr_get_d(r45102, MPFR_RNDN);
}

