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

char *name = "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, B";

double f_if(float x, float y, float z, float t) {
        float r43974 = x;
        float r43975 = y;
        float r43976 = log(r43975);
        float r43977 = r43974 * r43976;
        float r43978 = z;
        float r43979 = 1.0;
        float r43980 = r43979 - r43975;
        float r43981 = log(r43980);
        float r43982 = r43978 * r43981;
        float r43983 = r43977 + r43982;
        float r43984 = t;
        float r43985 = r43983 - r43984;
        return r43985;
}

double f_id(double x, double y, double z, double t) {
        double r43986 = x;
        double r43987 = y;
        double r43988 = log(r43987);
        double r43989 = r43986 * r43988;
        double r43990 = z;
        double r43991 = 1.0;
        double r43992 = r43991 - r43987;
        double r43993 = log(r43992);
        double r43994 = r43990 * r43993;
        double r43995 = r43989 + r43994;
        double r43996 = t;
        double r43997 = r43995 - r43996;
        return r43997;
}


double f_of(float x, float y, float z, float t) {
        float r43998 = x;
        float r43999 = y;
        float r44000 = log(r43999);
        float r44001 = r43998 * r44000;
        float r44002 = z;
        float r44003 = 1.0;
        float r44004 = log(r44003);
        float r44005 = 1/2;
        float r44006 = 2;
        float r44007 = pow(r43999, r44006);
        float r44008 = pow(r44003, r44006);
        float r44009 = r44007 / r44008;
        float r44010 = r44005 * r44009;
        float r44011 = r44003 * r43999;
        float r44012 = r44010 + r44011;
        float r44013 = r44004 - r44012;
        float r44014 = r44002 * r44013;
        float r44015 = r44001 + r44014;
        float r44016 = t;
        float r44017 = r44015 - r44016;
        return r44017;
}

double f_od(double x, double y, double z, double t) {
        double r44018 = x;
        double r44019 = y;
        double r44020 = log(r44019);
        double r44021 = r44018 * r44020;
        double r44022 = z;
        double r44023 = 1.0;
        double r44024 = log(r44023);
        double r44025 = 1/2;
        double r44026 = 2;
        double r44027 = pow(r44019, r44026);
        double r44028 = pow(r44023, r44026);
        double r44029 = r44027 / r44028;
        double r44030 = r44025 * r44029;
        double r44031 = r44023 * r44019;
        double r44032 = r44030 + r44031;
        double r44033 = r44024 - r44032;
        double r44034 = r44022 * r44033;
        double r44035 = r44021 + r44034;
        double r44036 = t;
        double r44037 = r44035 - r44036;
        return r44037;
}

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 r44038, r44039, r44040, r44041, r44042, r44043, r44044, r44045, r44046, r44047, r44048, r44049;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44038);
        mpfr_init(r44039);
        mpfr_init(r44040);
        mpfr_init(r44041);
        mpfr_init(r44042);
        mpfr_init_set_str(r44043, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44044);
        mpfr_init(r44045);
        mpfr_init(r44046);
        mpfr_init(r44047);
        mpfr_init(r44048);
        mpfr_init(r44049);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r44038, x, MPFR_RNDN);
        mpfr_set_d(r44039, y, MPFR_RNDN);
        mpfr_log(r44040, r44039, MPFR_RNDN);
        mpfr_mul(r44041, r44038, r44040, MPFR_RNDN);
        mpfr_set_d(r44042, z, MPFR_RNDN);
        ;
        mpfr_sub(r44044, r44043, r44039, MPFR_RNDN);
        mpfr_log(r44045, r44044, MPFR_RNDN);
        mpfr_mul(r44046, r44042, r44045, MPFR_RNDN);
        mpfr_add(r44047, r44041, r44046, MPFR_RNDN);
        mpfr_set_d(r44048, t, MPFR_RNDN);
        mpfr_sub(r44049, r44047, r44048, MPFR_RNDN);
        return mpfr_get_d(r44049, MPFR_RNDN);
}

static mpfr_t r44050, r44051, r44052, r44053, r44054, r44055, r44056, r44057, r44058, r44059, r44060, r44061, r44062, r44063, r44064, r44065, r44066, r44067, r44068, r44069;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44050);
        mpfr_init(r44051);
        mpfr_init(r44052);
        mpfr_init(r44053);
        mpfr_init(r44054);
        mpfr_init_set_str(r44055, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44056);
        mpfr_init_set_str(r44057, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r44058, "2", 10, MPFR_RNDN);
        mpfr_init(r44059);
        mpfr_init(r44060);
        mpfr_init(r44061);
        mpfr_init(r44062);
        mpfr_init(r44063);
        mpfr_init(r44064);
        mpfr_init(r44065);
        mpfr_init(r44066);
        mpfr_init(r44067);
        mpfr_init(r44068);
        mpfr_init(r44069);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r44050, x, MPFR_RNDN);
        mpfr_set_d(r44051, y, MPFR_RNDN);
        mpfr_log(r44052, r44051, MPFR_RNDN);
        mpfr_mul(r44053, r44050, r44052, MPFR_RNDN);
        mpfr_set_d(r44054, z, MPFR_RNDN);
        ;
        mpfr_log(r44056, r44055, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r44059, r44051, r44058, MPFR_RNDN);
        mpfr_pow(r44060, r44055, r44058, MPFR_RNDN);
        mpfr_div(r44061, r44059, r44060, MPFR_RNDN);
        mpfr_mul(r44062, r44057, r44061, MPFR_RNDN);
        mpfr_mul(r44063, r44055, r44051, MPFR_RNDN);
        mpfr_add(r44064, r44062, r44063, MPFR_RNDN);
        mpfr_sub(r44065, r44056, r44064, MPFR_RNDN);
        mpfr_mul(r44066, r44054, r44065, MPFR_RNDN);
        mpfr_add(r44067, r44053, r44066, MPFR_RNDN);
        mpfr_set_d(r44068, t, MPFR_RNDN);
        mpfr_sub(r44069, r44067, r44068, MPFR_RNDN);
        return mpfr_get_d(r44069, MPFR_RNDN);
}

static mpfr_t r44070, r44071, r44072, r44073, r44074, r44075, r44076, r44077, r44078, r44079, r44080, r44081, r44082, r44083, r44084, r44085, r44086, r44087, r44088, r44089;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44070);
        mpfr_init(r44071);
        mpfr_init(r44072);
        mpfr_init(r44073);
        mpfr_init(r44074);
        mpfr_init_set_str(r44075, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44076);
        mpfr_init_set_str(r44077, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r44078, "2", 10, MPFR_RNDN);
        mpfr_init(r44079);
        mpfr_init(r44080);
        mpfr_init(r44081);
        mpfr_init(r44082);
        mpfr_init(r44083);
        mpfr_init(r44084);
        mpfr_init(r44085);
        mpfr_init(r44086);
        mpfr_init(r44087);
        mpfr_init(r44088);
        mpfr_init(r44089);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r44070, x, MPFR_RNDN);
        mpfr_set_d(r44071, y, MPFR_RNDN);
        mpfr_log(r44072, r44071, MPFR_RNDN);
        mpfr_mul(r44073, r44070, r44072, MPFR_RNDN);
        mpfr_set_d(r44074, z, MPFR_RNDN);
        ;
        mpfr_log(r44076, r44075, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r44079, r44071, r44078, MPFR_RNDN);
        mpfr_pow(r44080, r44075, r44078, MPFR_RNDN);
        mpfr_div(r44081, r44079, r44080, MPFR_RNDN);
        mpfr_mul(r44082, r44077, r44081, MPFR_RNDN);
        mpfr_mul(r44083, r44075, r44071, MPFR_RNDN);
        mpfr_add(r44084, r44082, r44083, MPFR_RNDN);
        mpfr_sub(r44085, r44076, r44084, MPFR_RNDN);
        mpfr_mul(r44086, r44074, r44085, MPFR_RNDN);
        mpfr_add(r44087, r44073, r44086, MPFR_RNDN);
        mpfr_set_d(r44088, t, MPFR_RNDN);
        mpfr_sub(r44089, r44087, r44088, MPFR_RNDN);
        return mpfr_get_d(r44089, MPFR_RNDN);
}

