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

double f_if(float x, float y, float z, float t, float a, float b, float c) {
        float r22961 = x;
        float r22962 = y;
        float r22963 = 2.0;
        float r22964 = z;
        float r22965 = t;
        float r22966 = a;
        float r22967 = r22965 + r22966;
        float r22968 = sqrt(r22967);
        float r22969 = r22964 * r22968;
        float r22970 = r22969 / r22965;
        float r22971 = b;
        float r22972 = c;
        float r22973 = r22971 - r22972;
        float r22974 = 5.0;
        float r22975 = 6.0;
        float r22976 = r22974 / r22975;
        float r22977 = r22966 + r22976;
        float r22978 = 3.0;
        float r22979 = r22965 * r22978;
        float r22980 = r22963 / r22979;
        float r22981 = r22977 - r22980;
        float r22982 = r22973 * r22981;
        float r22983 = r22970 - r22982;
        float r22984 = r22963 * r22983;
        float r22985 = exp(r22984);
        float r22986 = r22962 * r22985;
        float r22987 = r22961 + r22986;
        float r22988 = r22961 / r22987;
        return r22988;
}

double f_id(double x, double y, double z, double t, double a, double b, double c) {
        double r22989 = x;
        double r22990 = y;
        double r22991 = 2.0;
        double r22992 = z;
        double r22993 = t;
        double r22994 = a;
        double r22995 = r22993 + r22994;
        double r22996 = sqrt(r22995);
        double r22997 = r22992 * r22996;
        double r22998 = r22997 / r22993;
        double r22999 = b;
        double r23000 = c;
        double r23001 = r22999 - r23000;
        double r23002 = 5.0;
        double r23003 = 6.0;
        double r23004 = r23002 / r23003;
        double r23005 = r22994 + r23004;
        double r23006 = 3.0;
        double r23007 = r22993 * r23006;
        double r23008 = r22991 / r23007;
        double r23009 = r23005 - r23008;
        double r23010 = r23001 * r23009;
        double r23011 = r22998 - r23010;
        double r23012 = r22991 * r23011;
        double r23013 = exp(r23012);
        double r23014 = r22990 * r23013;
        double r23015 = r22989 + r23014;
        double r23016 = r22989 / r23015;
        return r23016;
}


double f_of(float x, float y, float z, float t, float a, float b, float c) {
        float r23017 = x;
        float r23018 = y;
        float r23019 = 2.0;
        float r23020 = z;
        float r23021 = t;
        float r23022 = a;
        float r23023 = r23021 + r23022;
        float r23024 = sqrt(r23023);
        float r23025 = r23020 * r23024;
        float r23026 = 1;
        float r23027 = r23026 / r23021;
        float r23028 = 5.0;
        float r23029 = 6.0;
        float r23030 = r23028 / r23029;
        float r23031 = r23030 + r23022;
        float r23032 = r23019 / r23021;
        float r23033 = 3.0;
        float r23034 = r23032 / r23033;
        float r23035 = r23031 - r23034;
        float r23036 = c;
        float r23037 = b;
        float r23038 = r23036 - r23037;
        float r23039 = r23035 * r23038;
        float r23040 = fma(r23025, r23027, r23039);
        float r23041 = r23019 * r23040;
        float r23042 = exp(r23041);
        float r23043 = r23018 * r23042;
        float r23044 = r23017 + r23043;
        float r23045 = r23017 / r23044;
        return r23045;
}

double f_od(double x, double y, double z, double t, double a, double b, double c) {
        double r23046 = x;
        double r23047 = y;
        double r23048 = 2.0;
        double r23049 = z;
        double r23050 = t;
        double r23051 = a;
        double r23052 = r23050 + r23051;
        double r23053 = sqrt(r23052);
        double r23054 = r23049 * r23053;
        double r23055 = 1;
        double r23056 = r23055 / r23050;
        double r23057 = 5.0;
        double r23058 = 6.0;
        double r23059 = r23057 / r23058;
        double r23060 = r23059 + r23051;
        double r23061 = r23048 / r23050;
        double r23062 = 3.0;
        double r23063 = r23061 / r23062;
        double r23064 = r23060 - r23063;
        double r23065 = c;
        double r23066 = b;
        double r23067 = r23065 - r23066;
        double r23068 = r23064 * r23067;
        double r23069 = fma(r23054, r23056, r23068);
        double r23070 = r23048 * r23069;
        double r23071 = exp(r23070);
        double r23072 = r23047 * r23071;
        double r23073 = r23046 + r23072;
        double r23074 = r23046 / r23073;
        return r23074;
}

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 r23075, r23076, r23077, r23078, r23079, r23080, r23081, r23082, r23083, r23084, r23085, r23086, r23087, r23088, r23089, r23090, r23091, r23092, r23093, r23094, r23095, r23096, r23097, r23098, r23099, r23100, r23101, r23102;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r23075);
        mpfr_init(r23076);
        mpfr_init_set_str(r23077, "2.0", 10, MPFR_RNDN);
        mpfr_init(r23078);
        mpfr_init(r23079);
        mpfr_init(r23080);
        mpfr_init(r23081);
        mpfr_init(r23082);
        mpfr_init(r23083);
        mpfr_init(r23084);
        mpfr_init(r23085);
        mpfr_init(r23086);
        mpfr_init(r23087);
        mpfr_init_set_str(r23088, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r23089, "6.0", 10, MPFR_RNDN);
        mpfr_init(r23090);
        mpfr_init(r23091);
        mpfr_init_set_str(r23092, "3.0", 10, MPFR_RNDN);
        mpfr_init(r23093);
        mpfr_init(r23094);
        mpfr_init(r23095);
        mpfr_init(r23096);
        mpfr_init(r23097);
        mpfr_init(r23098);
        mpfr_init(r23099);
        mpfr_init(r23100);
        mpfr_init(r23101);
        mpfr_init(r23102);
}

double f_im(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r23075, x, MPFR_RNDN);
        mpfr_set_d(r23076, y, MPFR_RNDN);
        ;
        mpfr_set_d(r23078, z, MPFR_RNDN);
        mpfr_set_d(r23079, t, MPFR_RNDN);
        mpfr_set_d(r23080, a, MPFR_RNDN);
        mpfr_add(r23081, r23079, r23080, MPFR_RNDN);
        mpfr_sqrt(r23082, r23081, MPFR_RNDN);
        mpfr_mul(r23083, r23078, r23082, MPFR_RNDN);
        mpfr_div(r23084, r23083, r23079, MPFR_RNDN);
        mpfr_set_d(r23085, b, MPFR_RNDN);
        mpfr_set_d(r23086, c, MPFR_RNDN);
        mpfr_sub(r23087, r23085, r23086, MPFR_RNDN);
        ;
        ;
        mpfr_div(r23090, r23088, r23089, MPFR_RNDN);
        mpfr_add(r23091, r23080, r23090, MPFR_RNDN);
        ;
        mpfr_mul(r23093, r23079, r23092, MPFR_RNDN);
        mpfr_div(r23094, r23077, r23093, MPFR_RNDN);
        mpfr_sub(r23095, r23091, r23094, MPFR_RNDN);
        mpfr_mul(r23096, r23087, r23095, MPFR_RNDN);
        mpfr_sub(r23097, r23084, r23096, MPFR_RNDN);
        mpfr_mul(r23098, r23077, r23097, MPFR_RNDN);
        mpfr_exp(r23099, r23098, MPFR_RNDN);
        mpfr_mul(r23100, r23076, r23099, MPFR_RNDN);
        mpfr_add(r23101, r23075, r23100, MPFR_RNDN);
        mpfr_div(r23102, r23075, r23101, MPFR_RNDN);
        return mpfr_get_d(r23102, MPFR_RNDN);
}

static mpfr_t r23103, r23104, r23105, r23106, r23107, r23108, r23109, r23110, r23111, r23112, r23113, r23114, r23115, r23116, r23117, r23118, r23119, r23120, r23121, r23122, r23123, r23124, r23125, r23126, r23127, r23128, r23129, r23130, r23131;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r23103);
        mpfr_init(r23104);
        mpfr_init_set_str(r23105, "2.0", 10, MPFR_RNDN);
        mpfr_init(r23106);
        mpfr_init(r23107);
        mpfr_init(r23108);
        mpfr_init(r23109);
        mpfr_init(r23110);
        mpfr_init(r23111);
        mpfr_init_set_str(r23112, "1", 10, MPFR_RNDN);
        mpfr_init(r23113);
        mpfr_init_set_str(r23114, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r23115, "6.0", 10, MPFR_RNDN);
        mpfr_init(r23116);
        mpfr_init(r23117);
        mpfr_init(r23118);
        mpfr_init_set_str(r23119, "3.0", 10, MPFR_RNDN);
        mpfr_init(r23120);
        mpfr_init(r23121);
        mpfr_init(r23122);
        mpfr_init(r23123);
        mpfr_init(r23124);
        mpfr_init(r23125);
        mpfr_init(r23126);
        mpfr_init(r23127);
        mpfr_init(r23128);
        mpfr_init(r23129);
        mpfr_init(r23130);
        mpfr_init(r23131);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r23103, x, MPFR_RNDN);
        mpfr_set_d(r23104, y, MPFR_RNDN);
        ;
        mpfr_set_d(r23106, z, MPFR_RNDN);
        mpfr_set_d(r23107, t, MPFR_RNDN);
        mpfr_set_d(r23108, a, MPFR_RNDN);
        mpfr_add(r23109, r23107, r23108, MPFR_RNDN);
        mpfr_sqrt(r23110, r23109, MPFR_RNDN);
        mpfr_mul(r23111, r23106, r23110, MPFR_RNDN);
        ;
        mpfr_div(r23113, r23112, r23107, MPFR_RNDN);
        ;
        ;
        mpfr_div(r23116, r23114, r23115, MPFR_RNDN);
        mpfr_add(r23117, r23116, r23108, MPFR_RNDN);
        mpfr_div(r23118, r23105, r23107, MPFR_RNDN);
        ;
        mpfr_div(r23120, r23118, r23119, MPFR_RNDN);
        mpfr_sub(r23121, r23117, r23120, MPFR_RNDN);
        mpfr_set_d(r23122, c, MPFR_RNDN);
        mpfr_set_d(r23123, b, MPFR_RNDN);
        mpfr_sub(r23124, r23122, r23123, MPFR_RNDN);
        mpfr_mul(r23125, r23121, r23124, MPFR_RNDN);
        mpfr_fma(r23126, r23111, r23113, r23125, MPFR_RNDN);
        mpfr_mul(r23127, r23105, r23126, MPFR_RNDN);
        mpfr_exp(r23128, r23127, MPFR_RNDN);
        mpfr_mul(r23129, r23104, r23128, MPFR_RNDN);
        mpfr_add(r23130, r23103, r23129, MPFR_RNDN);
        mpfr_div(r23131, r23103, r23130, MPFR_RNDN);
        return mpfr_get_d(r23131, MPFR_RNDN);
}

static mpfr_t r23132, r23133, r23134, r23135, r23136, r23137, r23138, r23139, r23140, r23141, r23142, r23143, r23144, r23145, r23146, r23147, r23148, r23149, r23150, r23151, r23152, r23153, r23154, r23155, r23156, r23157, r23158, r23159, r23160;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r23132);
        mpfr_init(r23133);
        mpfr_init_set_str(r23134, "2.0", 10, MPFR_RNDN);
        mpfr_init(r23135);
        mpfr_init(r23136);
        mpfr_init(r23137);
        mpfr_init(r23138);
        mpfr_init(r23139);
        mpfr_init(r23140);
        mpfr_init_set_str(r23141, "1", 10, MPFR_RNDN);
        mpfr_init(r23142);
        mpfr_init_set_str(r23143, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r23144, "6.0", 10, MPFR_RNDN);
        mpfr_init(r23145);
        mpfr_init(r23146);
        mpfr_init(r23147);
        mpfr_init_set_str(r23148, "3.0", 10, MPFR_RNDN);
        mpfr_init(r23149);
        mpfr_init(r23150);
        mpfr_init(r23151);
        mpfr_init(r23152);
        mpfr_init(r23153);
        mpfr_init(r23154);
        mpfr_init(r23155);
        mpfr_init(r23156);
        mpfr_init(r23157);
        mpfr_init(r23158);
        mpfr_init(r23159);
        mpfr_init(r23160);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r23132, x, MPFR_RNDN);
        mpfr_set_d(r23133, y, MPFR_RNDN);
        ;
        mpfr_set_d(r23135, z, MPFR_RNDN);
        mpfr_set_d(r23136, t, MPFR_RNDN);
        mpfr_set_d(r23137, a, MPFR_RNDN);
        mpfr_add(r23138, r23136, r23137, MPFR_RNDN);
        mpfr_sqrt(r23139, r23138, MPFR_RNDN);
        mpfr_mul(r23140, r23135, r23139, MPFR_RNDN);
        ;
        mpfr_div(r23142, r23141, r23136, MPFR_RNDN);
        ;
        ;
        mpfr_div(r23145, r23143, r23144, MPFR_RNDN);
        mpfr_add(r23146, r23145, r23137, MPFR_RNDN);
        mpfr_div(r23147, r23134, r23136, MPFR_RNDN);
        ;
        mpfr_div(r23149, r23147, r23148, MPFR_RNDN);
        mpfr_sub(r23150, r23146, r23149, MPFR_RNDN);
        mpfr_set_d(r23151, c, MPFR_RNDN);
        mpfr_set_d(r23152, b, MPFR_RNDN);
        mpfr_sub(r23153, r23151, r23152, MPFR_RNDN);
        mpfr_mul(r23154, r23150, r23153, MPFR_RNDN);
        mpfr_fma(r23155, r23140, r23142, r23154, MPFR_RNDN);
        mpfr_mul(r23156, r23134, r23155, MPFR_RNDN);
        mpfr_exp(r23157, r23156, MPFR_RNDN);
        mpfr_mul(r23158, r23133, r23157, MPFR_RNDN);
        mpfr_add(r23159, r23132, r23158, MPFR_RNDN);
        mpfr_div(r23160, r23132, r23159, MPFR_RNDN);
        return mpfr_get_d(r23160, MPFR_RNDN);
}

