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

double f_if(float x, float y, float z, float t) {
        float r43990 = x;
        float r43991 = y;
        float r43992 = z;
        float r43993 = r43991 / r43992;
        float r43994 = t;
        float r43995 = 1.0;
        float r43996 = r43995 - r43992;
        float r43997 = r43994 / r43996;
        float r43998 = r43993 - r43997;
        float r43999 = r43990 * r43998;
        return r43999;
}

double f_id(double x, double y, double z, double t) {
        double r44000 = x;
        double r44001 = y;
        double r44002 = z;
        double r44003 = r44001 / r44002;
        double r44004 = t;
        double r44005 = 1.0;
        double r44006 = r44005 - r44002;
        double r44007 = r44004 / r44006;
        double r44008 = r44003 - r44007;
        double r44009 = r44000 * r44008;
        return r44009;
}


double f_of(float x, float y, float z, float t) {
        float r44010 = x;
        float r44011 = y;
        float r44012 = z;
        float r44013 = r44011 / r44012;
        float r44014 = t;
        float r44015 = 1.0;
        float r44016 = r44015 - r44012;
        float r44017 = r44014 / r44016;
        float r44018 = r44013 - r44017;
        float r44019 = r44010 * r44018;
        float r44020 = -7.467050170486849e+121;
        bool r44021 = r44019 <= r44020;
        float r44022 = r44010 * r44011;
        float r44023 = 1;
        float r44024 = r44023 / r44012;
        float r44025 = r44022 * r44024;
        float r44026 = -r44017;
        float r44027 = r44010 * r44026;
        float r44028 = r44025 + r44027;
        float r44029 = 2.70893052731898e+154;
        bool r44030 = r44019 <= r44029;
        float r44031 = r44010 * r44013;
        float r44032 = -r44014;
        float r44033 = r44010 * r44032;
        float r44034 = r44023 / r44016;
        float r44035 = r44033 * r44034;
        float r44036 = r44031 + r44035;
        float r44037 = r44030 ? r44036 : r44028;
        float r44038 = r44021 ? r44028 : r44037;
        return r44038;
}

double f_od(double x, double y, double z, double t) {
        double r44039 = x;
        double r44040 = y;
        double r44041 = z;
        double r44042 = r44040 / r44041;
        double r44043 = t;
        double r44044 = 1.0;
        double r44045 = r44044 - r44041;
        double r44046 = r44043 / r44045;
        double r44047 = r44042 - r44046;
        double r44048 = r44039 * r44047;
        double r44049 = -7.467050170486849e+121;
        bool r44050 = r44048 <= r44049;
        double r44051 = r44039 * r44040;
        double r44052 = 1;
        double r44053 = r44052 / r44041;
        double r44054 = r44051 * r44053;
        double r44055 = -r44046;
        double r44056 = r44039 * r44055;
        double r44057 = r44054 + r44056;
        double r44058 = 2.70893052731898e+154;
        bool r44059 = r44048 <= r44058;
        double r44060 = r44039 * r44042;
        double r44061 = -r44043;
        double r44062 = r44039 * r44061;
        double r44063 = r44052 / r44045;
        double r44064 = r44062 * r44063;
        double r44065 = r44060 + r44064;
        double r44066 = r44059 ? r44065 : r44057;
        double r44067 = r44050 ? r44057 : r44066;
        return r44067;
}

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 r44068, r44069, r44070, r44071, r44072, r44073, r44074, r44075, r44076, r44077;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r44068);
        mpfr_init(r44069);
        mpfr_init(r44070);
        mpfr_init(r44071);
        mpfr_init(r44072);
        mpfr_init_set_str(r44073, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44074);
        mpfr_init(r44075);
        mpfr_init(r44076);
        mpfr_init(r44077);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r44068, x, MPFR_RNDN);
        mpfr_set_d(r44069, y, MPFR_RNDN);
        mpfr_set_d(r44070, z, MPFR_RNDN);
        mpfr_div(r44071, r44069, r44070, MPFR_RNDN);
        mpfr_set_d(r44072, t, MPFR_RNDN);
        ;
        mpfr_sub(r44074, r44073, r44070, MPFR_RNDN);
        mpfr_div(r44075, r44072, r44074, MPFR_RNDN);
        mpfr_sub(r44076, r44071, r44075, MPFR_RNDN);
        mpfr_mul(r44077, r44068, r44076, MPFR_RNDN);
        return mpfr_get_d(r44077, MPFR_RNDN);
}

static mpfr_t r44078, r44079, r44080, r44081, r44082, r44083, r44084, r44085, r44086, r44087, r44088, r44089, r44090, r44091, r44092, r44093, r44094, r44095, r44096, r44097, r44098, r44099, r44100, r44101, r44102, r44103, r44104, r44105, r44106;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44078);
        mpfr_init(r44079);
        mpfr_init(r44080);
        mpfr_init(r44081);
        mpfr_init(r44082);
        mpfr_init_set_str(r44083, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44084);
        mpfr_init(r44085);
        mpfr_init(r44086);
        mpfr_init(r44087);
        mpfr_init_set_str(r44088, "-7.467050170486849e+121", 10, MPFR_RNDN);
        mpfr_init(r44089);
        mpfr_init(r44090);
        mpfr_init_set_str(r44091, "1", 10, MPFR_RNDN);
        mpfr_init(r44092);
        mpfr_init(r44093);
        mpfr_init(r44094);
        mpfr_init(r44095);
        mpfr_init(r44096);
        mpfr_init_set_str(r44097, "2.70893052731898e+154", 10, MPFR_RNDN);
        mpfr_init(r44098);
        mpfr_init(r44099);
        mpfr_init(r44100);
        mpfr_init(r44101);
        mpfr_init(r44102);
        mpfr_init(r44103);
        mpfr_init(r44104);
        mpfr_init(r44105);
        mpfr_init(r44106);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r44078, x, MPFR_RNDN);
        mpfr_set_d(r44079, y, MPFR_RNDN);
        mpfr_set_d(r44080, z, MPFR_RNDN);
        mpfr_div(r44081, r44079, r44080, MPFR_RNDN);
        mpfr_set_d(r44082, t, MPFR_RNDN);
        ;
        mpfr_sub(r44084, r44083, r44080, MPFR_RNDN);
        mpfr_div(r44085, r44082, r44084, MPFR_RNDN);
        mpfr_sub(r44086, r44081, r44085, MPFR_RNDN);
        mpfr_mul(r44087, r44078, r44086, MPFR_RNDN);
        ;
        mpfr_set_si(r44089, mpfr_cmp(r44087, r44088) <= 0, MPFR_RNDN);
        mpfr_mul(r44090, r44078, r44079, MPFR_RNDN);
        ;
        mpfr_div(r44092, r44091, r44080, MPFR_RNDN);
        mpfr_mul(r44093, r44090, r44092, MPFR_RNDN);
        mpfr_neg(r44094, r44085, MPFR_RNDN);
        mpfr_mul(r44095, r44078, r44094, MPFR_RNDN);
        mpfr_add(r44096, r44093, r44095, MPFR_RNDN);
        ;
        mpfr_set_si(r44098, mpfr_cmp(r44087, r44097) <= 0, MPFR_RNDN);
        mpfr_mul(r44099, r44078, r44081, MPFR_RNDN);
        mpfr_neg(r44100, r44082, MPFR_RNDN);
        mpfr_mul(r44101, r44078, r44100, MPFR_RNDN);
        mpfr_div(r44102, r44091, r44084, MPFR_RNDN);
        mpfr_mul(r44103, r44101, r44102, MPFR_RNDN);
        mpfr_add(r44104, r44099, r44103, MPFR_RNDN);
        if (mpfr_get_si(r44098, MPFR_RNDN)) { mpfr_set(r44105, r44104, MPFR_RNDN); } else { mpfr_set(r44105, r44096, MPFR_RNDN); };
        if (mpfr_get_si(r44089, MPFR_RNDN)) { mpfr_set(r44106, r44096, MPFR_RNDN); } else { mpfr_set(r44106, r44105, MPFR_RNDN); };
        return mpfr_get_d(r44106, MPFR_RNDN);
}

static mpfr_t r44107, r44108, r44109, r44110, r44111, r44112, r44113, r44114, r44115, r44116, r44117, r44118, r44119, r44120, r44121, r44122, r44123, r44124, r44125, r44126, r44127, r44128, r44129, r44130, r44131, r44132, r44133, r44134, r44135;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44107);
        mpfr_init(r44108);
        mpfr_init(r44109);
        mpfr_init(r44110);
        mpfr_init(r44111);
        mpfr_init_set_str(r44112, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44113);
        mpfr_init(r44114);
        mpfr_init(r44115);
        mpfr_init(r44116);
        mpfr_init_set_str(r44117, "-7.467050170486849e+121", 10, MPFR_RNDN);
        mpfr_init(r44118);
        mpfr_init(r44119);
        mpfr_init_set_str(r44120, "1", 10, MPFR_RNDN);
        mpfr_init(r44121);
        mpfr_init(r44122);
        mpfr_init(r44123);
        mpfr_init(r44124);
        mpfr_init(r44125);
        mpfr_init_set_str(r44126, "2.70893052731898e+154", 10, MPFR_RNDN);
        mpfr_init(r44127);
        mpfr_init(r44128);
        mpfr_init(r44129);
        mpfr_init(r44130);
        mpfr_init(r44131);
        mpfr_init(r44132);
        mpfr_init(r44133);
        mpfr_init(r44134);
        mpfr_init(r44135);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r44107, x, MPFR_RNDN);
        mpfr_set_d(r44108, y, MPFR_RNDN);
        mpfr_set_d(r44109, z, MPFR_RNDN);
        mpfr_div(r44110, r44108, r44109, MPFR_RNDN);
        mpfr_set_d(r44111, t, MPFR_RNDN);
        ;
        mpfr_sub(r44113, r44112, r44109, MPFR_RNDN);
        mpfr_div(r44114, r44111, r44113, MPFR_RNDN);
        mpfr_sub(r44115, r44110, r44114, MPFR_RNDN);
        mpfr_mul(r44116, r44107, r44115, MPFR_RNDN);
        ;
        mpfr_set_si(r44118, mpfr_cmp(r44116, r44117) <= 0, MPFR_RNDN);
        mpfr_mul(r44119, r44107, r44108, MPFR_RNDN);
        ;
        mpfr_div(r44121, r44120, r44109, MPFR_RNDN);
        mpfr_mul(r44122, r44119, r44121, MPFR_RNDN);
        mpfr_neg(r44123, r44114, MPFR_RNDN);
        mpfr_mul(r44124, r44107, r44123, MPFR_RNDN);
        mpfr_add(r44125, r44122, r44124, MPFR_RNDN);
        ;
        mpfr_set_si(r44127, mpfr_cmp(r44116, r44126) <= 0, MPFR_RNDN);
        mpfr_mul(r44128, r44107, r44110, MPFR_RNDN);
        mpfr_neg(r44129, r44111, MPFR_RNDN);
        mpfr_mul(r44130, r44107, r44129, MPFR_RNDN);
        mpfr_div(r44131, r44120, r44113, MPFR_RNDN);
        mpfr_mul(r44132, r44130, r44131, MPFR_RNDN);
        mpfr_add(r44133, r44128, r44132, MPFR_RNDN);
        if (mpfr_get_si(r44127, MPFR_RNDN)) { mpfr_set(r44134, r44133, MPFR_RNDN); } else { mpfr_set(r44134, r44125, MPFR_RNDN); };
        if (mpfr_get_si(r44118, MPFR_RNDN)) { mpfr_set(r44135, r44125, MPFR_RNDN); } else { mpfr_set(r44135, r44134, MPFR_RNDN); };
        return mpfr_get_d(r44135, MPFR_RNDN);
}

