#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 r8911 = x;
        float r8912 = y;
        float r8913 = 2.0f;
        float r8914 = z;
        float r8915 = t;
        float r8916 = a;
        float r8917 = r8915 + r8916;
        float r8918 = sqrt(r8917);
        float r8919 = r8914 * r8918;
        float r8920 = r8919 / r8915;
        float r8921 = b;
        float r8922 = c;
        float r8923 = r8921 - r8922;
        float r8924 = 5.0f;
        float r8925 = 6.0f;
        float r8926 = r8924 / r8925;
        float r8927 = r8916 + r8926;
        float r8928 = 3.0f;
        float r8929 = r8915 * r8928;
        float r8930 = r8913 / r8929;
        float r8931 = r8927 - r8930;
        float r8932 = r8923 * r8931;
        float r8933 = r8920 - r8932;
        float r8934 = r8913 * r8933;
        float r8935 = exp(r8934);
        float r8936 = r8912 * r8935;
        float r8937 = r8911 + r8936;
        float r8938 = r8911 / r8937;
        return r8938;
}

double f_id(double x, double y, double z, double t, double a, double b, double c) {
        double r8939 = x;
        double r8940 = y;
        double r8941 = 2.0;
        double r8942 = z;
        double r8943 = t;
        double r8944 = a;
        double r8945 = r8943 + r8944;
        double r8946 = sqrt(r8945);
        double r8947 = r8942 * r8946;
        double r8948 = r8947 / r8943;
        double r8949 = b;
        double r8950 = c;
        double r8951 = r8949 - r8950;
        double r8952 = 5.0;
        double r8953 = 6.0;
        double r8954 = r8952 / r8953;
        double r8955 = r8944 + r8954;
        double r8956 = 3.0;
        double r8957 = r8943 * r8956;
        double r8958 = r8941 / r8957;
        double r8959 = r8955 - r8958;
        double r8960 = r8951 * r8959;
        double r8961 = r8948 - r8960;
        double r8962 = r8941 * r8961;
        double r8963 = exp(r8962);
        double r8964 = r8940 * r8963;
        double r8965 = r8939 + r8964;
        double r8966 = r8939 / r8965;
        return r8966;
}


double f_of(float x, float y, float z, float t, float a, float b, float c) {
        float r8967 = t;
        float r8968 = -2.9414747410000124e-107f;
        bool r8969 = r8967 <= r8968;
        float r8970 = 3.6674437027325692e-202f;
        bool r8971 = r8967 <= r8970;
        float r8972 = !r8971;
        bool r8973 = r8969 || r8972;
        float r8974 = x;
        float r8975 = y;
        float r8976 = z;
        float r8977 = a;
        float r8978 = r8967 + r8977;
        float r8979 = sqrt(r8978);
        float r8980 = r8967 / r8979;
        float r8981 = r8976 / r8980;
        float r8982 = b;
        float r8983 = c;
        float r8984 = r8982 - r8983;
        float r8985 = 5.0f;
        float r8986 = 6.0f;
        float r8987 = r8985 / r8986;
        float r8988 = r8987 + r8977;
        float r8989 = 2.0f;
        float r8990 = 3.0f;
        float r8991 = r8967 * r8990;
        float r8992 = r8989 / r8991;
        float r8993 = r8988 - r8992;
        float r8994 = r8984 * r8993;
        float r8995 = r8981 - r8994;
        float r8996 = r8995 * r8989;
        float r8997 = exp(r8996);
        float r8998 = r8975 * r8997;
        float r8999 = r8998 + r8974;
        float r9000 = r8974 / r8999;
        float r9001 = r8977 - r8987;
        float r9002 = r8976 * r8990;
        float r9003 = r9002 * r8967;
        float r9004 = r9001 * r9003;
        float r9005 = r8967 * r8984;
        float r9006 = r9005 / r8979;
        float r9007 = r8991 * r8988;
        float r9008 = r9007 - r8989;
        float r9009 = r9008 * r9001;
        float r9010 = r9006 * r9009;
        float r9011 = r9004 - r9010;
        float r9012 = r9001 * r8991;
        float r9013 = r9012 * r8980;
        float r9014 = r9011 / r9013;
        float r9015 = r9014 * r8989;
        float r9016 = exp(r9015);
        float r9017 = r8975 * r9016;
        float r9018 = r8974 + r9017;
        float r9019 = r8974 / r9018;
        float r9020 = r8973 ? r9000 : r9019;
        return r9020;
}

double f_od(double x, double y, double z, double t, double a, double b, double c) {
        double r9021 = t;
        double r9022 = -2.9414747410000124e-107;
        bool r9023 = r9021 <= r9022;
        double r9024 = 3.6674437027325692e-202;
        bool r9025 = r9021 <= r9024;
        double r9026 = !r9025;
        bool r9027 = r9023 || r9026;
        double r9028 = x;
        double r9029 = y;
        double r9030 = z;
        double r9031 = a;
        double r9032 = r9021 + r9031;
        double r9033 = sqrt(r9032);
        double r9034 = r9021 / r9033;
        double r9035 = r9030 / r9034;
        double r9036 = b;
        double r9037 = c;
        double r9038 = r9036 - r9037;
        double r9039 = 5.0;
        double r9040 = 6.0;
        double r9041 = r9039 / r9040;
        double r9042 = r9041 + r9031;
        double r9043 = 2.0;
        double r9044 = 3.0;
        double r9045 = r9021 * r9044;
        double r9046 = r9043 / r9045;
        double r9047 = r9042 - r9046;
        double r9048 = r9038 * r9047;
        double r9049 = r9035 - r9048;
        double r9050 = r9049 * r9043;
        double r9051 = exp(r9050);
        double r9052 = r9029 * r9051;
        double r9053 = r9052 + r9028;
        double r9054 = r9028 / r9053;
        double r9055 = r9031 - r9041;
        double r9056 = r9030 * r9044;
        double r9057 = r9056 * r9021;
        double r9058 = r9055 * r9057;
        double r9059 = r9021 * r9038;
        double r9060 = r9059 / r9033;
        double r9061 = r9045 * r9042;
        double r9062 = r9061 - r9043;
        double r9063 = r9062 * r9055;
        double r9064 = r9060 * r9063;
        double r9065 = r9058 - r9064;
        double r9066 = r9055 * r9045;
        double r9067 = r9066 * r9034;
        double r9068 = r9065 / r9067;
        double r9069 = r9068 * r9043;
        double r9070 = exp(r9069);
        double r9071 = r9029 * r9070;
        double r9072 = r9028 + r9071;
        double r9073 = r9028 / r9072;
        double r9074 = r9027 ? r9054 : r9073;
        return r9074;
}

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 r9075, r9076, r9077, r9078, r9079, r9080, r9081, r9082, r9083, r9084, r9085, r9086, r9087, r9088, r9089, r9090, r9091, r9092, r9093, r9094, r9095, r9096, r9097, r9098, r9099, r9100, r9101, r9102;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9075);
        mpfr_init(r9076);
        mpfr_init_set_str(r9077, "2.0", 10, MPFR_RNDN);
        mpfr_init(r9078);
        mpfr_init(r9079);
        mpfr_init(r9080);
        mpfr_init(r9081);
        mpfr_init(r9082);
        mpfr_init(r9083);
        mpfr_init(r9084);
        mpfr_init(r9085);
        mpfr_init(r9086);
        mpfr_init(r9087);
        mpfr_init_set_str(r9088, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r9089, "6.0", 10, MPFR_RNDN);
        mpfr_init(r9090);
        mpfr_init(r9091);
        mpfr_init_set_str(r9092, "3.0", 10, MPFR_RNDN);
        mpfr_init(r9093);
        mpfr_init(r9094);
        mpfr_init(r9095);
        mpfr_init(r9096);
        mpfr_init(r9097);
        mpfr_init(r9098);
        mpfr_init(r9099);
        mpfr_init(r9100);
        mpfr_init(r9101);
        mpfr_init(r9102);
}

double f_im(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r9075, x, MPFR_RNDN);
        mpfr_set_d(r9076, y, MPFR_RNDN);
        ;
        mpfr_set_d(r9078, z, MPFR_RNDN);
        mpfr_set_d(r9079, t, MPFR_RNDN);
        mpfr_set_d(r9080, a, MPFR_RNDN);
        mpfr_add(r9081, r9079, r9080, MPFR_RNDN);
        mpfr_sqrt(r9082, r9081, MPFR_RNDN);
        mpfr_mul(r9083, r9078, r9082, MPFR_RNDN);
        mpfr_div(r9084, r9083, r9079, MPFR_RNDN);
        mpfr_set_d(r9085, b, MPFR_RNDN);
        mpfr_set_d(r9086, c, MPFR_RNDN);
        mpfr_sub(r9087, r9085, r9086, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9090, r9088, r9089, MPFR_RNDN);
        mpfr_add(r9091, r9080, r9090, MPFR_RNDN);
        ;
        mpfr_mul(r9093, r9079, r9092, MPFR_RNDN);
        mpfr_div(r9094, r9077, r9093, MPFR_RNDN);
        mpfr_sub(r9095, r9091, r9094, MPFR_RNDN);
        mpfr_mul(r9096, r9087, r9095, MPFR_RNDN);
        mpfr_sub(r9097, r9084, r9096, MPFR_RNDN);
        mpfr_mul(r9098, r9077, r9097, MPFR_RNDN);
        mpfr_exp(r9099, r9098, MPFR_RNDN);
        mpfr_mul(r9100, r9076, r9099, MPFR_RNDN);
        mpfr_add(r9101, r9075, r9100, MPFR_RNDN);
        mpfr_div(r9102, r9075, r9101, MPFR_RNDN);
        return mpfr_get_d(r9102, MPFR_RNDN);
}

static mpfr_t r9103, r9104, r9105, r9106, r9107, r9108, r9109, r9110, r9111, r9112, r9113, r9114, r9115, r9116, r9117, r9118, r9119, r9120, r9121, r9122, r9123, r9124, r9125, r9126, r9127, r9128, r9129, r9130, r9131, r9132, r9133, r9134, r9135, r9136, r9137, r9138, r9139, r9140, r9141, r9142, r9143, r9144, r9145, r9146, r9147, r9148, r9149, r9150, r9151, r9152, r9153, r9154, r9155, r9156;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9103);
        mpfr_init_set_str(r9104, "-2.9414747410000124e-107", 10, MPFR_RNDN);
        mpfr_init(r9105);
        mpfr_init_set_str(r9106, "3.6674437027325692e-202", 10, MPFR_RNDN);
        mpfr_init(r9107);
        mpfr_init(r9108);
        mpfr_init(r9109);
        mpfr_init(r9110);
        mpfr_init(r9111);
        mpfr_init(r9112);
        mpfr_init(r9113);
        mpfr_init(r9114);
        mpfr_init(r9115);
        mpfr_init(r9116);
        mpfr_init(r9117);
        mpfr_init(r9118);
        mpfr_init(r9119);
        mpfr_init(r9120);
        mpfr_init_set_str(r9121, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r9122, "6.0", 10, MPFR_RNDN);
        mpfr_init(r9123);
        mpfr_init(r9124);
        mpfr_init_set_str(r9125, "2.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r9126, "3.0", 10, MPFR_RNDN);
        mpfr_init(r9127);
        mpfr_init(r9128);
        mpfr_init(r9129);
        mpfr_init(r9130);
        mpfr_init(r9131);
        mpfr_init(r9132);
        mpfr_init(r9133);
        mpfr_init(r9134);
        mpfr_init(r9135);
        mpfr_init(r9136);
        mpfr_init(r9137);
        mpfr_init(r9138);
        mpfr_init(r9139);
        mpfr_init(r9140);
        mpfr_init(r9141);
        mpfr_init(r9142);
        mpfr_init(r9143);
        mpfr_init(r9144);
        mpfr_init(r9145);
        mpfr_init(r9146);
        mpfr_init(r9147);
        mpfr_init(r9148);
        mpfr_init(r9149);
        mpfr_init(r9150);
        mpfr_init(r9151);
        mpfr_init(r9152);
        mpfr_init(r9153);
        mpfr_init(r9154);
        mpfr_init(r9155);
        mpfr_init(r9156);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r9103, t, MPFR_RNDN);
        ;
        mpfr_set_si(r9105, mpfr_cmp(r9103, r9104) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9107, mpfr_cmp(r9103, r9106) <= 0, MPFR_RNDN);
        mpfr_set_si(r9108, !mpfr_get_si(r9107, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9109, mpfr_get_si(r9105, MPFR_RNDN) || mpfr_get_si(r9108, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9110, x, MPFR_RNDN);
        mpfr_set_d(r9111, y, MPFR_RNDN);
        mpfr_set_d(r9112, z, MPFR_RNDN);
        mpfr_set_d(r9113, a, MPFR_RNDN);
        mpfr_add(r9114, r9103, r9113, MPFR_RNDN);
        mpfr_sqrt(r9115, r9114, MPFR_RNDN);
        mpfr_div(r9116, r9103, r9115, MPFR_RNDN);
        mpfr_div(r9117, r9112, r9116, MPFR_RNDN);
        mpfr_set_d(r9118, b, MPFR_RNDN);
        mpfr_set_d(r9119, c, MPFR_RNDN);
        mpfr_sub(r9120, r9118, r9119, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9123, r9121, r9122, MPFR_RNDN);
        mpfr_add(r9124, r9123, r9113, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9127, r9103, r9126, MPFR_RNDN);
        mpfr_div(r9128, r9125, r9127, MPFR_RNDN);
        mpfr_sub(r9129, r9124, r9128, MPFR_RNDN);
        mpfr_mul(r9130, r9120, r9129, MPFR_RNDN);
        mpfr_sub(r9131, r9117, r9130, MPFR_RNDN);
        mpfr_mul(r9132, r9131, r9125, MPFR_RNDN);
        mpfr_exp(r9133, r9132, MPFR_RNDN);
        mpfr_mul(r9134, r9111, r9133, MPFR_RNDN);
        mpfr_add(r9135, r9134, r9110, MPFR_RNDN);
        mpfr_div(r9136, r9110, r9135, MPFR_RNDN);
        mpfr_sub(r9137, r9113, r9123, MPFR_RNDN);
        mpfr_mul(r9138, r9112, r9126, MPFR_RNDN);
        mpfr_mul(r9139, r9138, r9103, MPFR_RNDN);
        mpfr_mul(r9140, r9137, r9139, MPFR_RNDN);
        mpfr_mul(r9141, r9103, r9120, MPFR_RNDN);
        mpfr_div(r9142, r9141, r9115, MPFR_RNDN);
        mpfr_mul(r9143, r9127, r9124, MPFR_RNDN);
        mpfr_sub(r9144, r9143, r9125, MPFR_RNDN);
        mpfr_mul(r9145, r9144, r9137, MPFR_RNDN);
        mpfr_mul(r9146, r9142, r9145, MPFR_RNDN);
        mpfr_sub(r9147, r9140, r9146, MPFR_RNDN);
        mpfr_mul(r9148, r9137, r9127, MPFR_RNDN);
        mpfr_mul(r9149, r9148, r9116, MPFR_RNDN);
        mpfr_div(r9150, r9147, r9149, MPFR_RNDN);
        mpfr_mul(r9151, r9150, r9125, MPFR_RNDN);
        mpfr_exp(r9152, r9151, MPFR_RNDN);
        mpfr_mul(r9153, r9111, r9152, MPFR_RNDN);
        mpfr_add(r9154, r9110, r9153, MPFR_RNDN);
        mpfr_div(r9155, r9110, r9154, MPFR_RNDN);
        if (mpfr_get_si(r9109, MPFR_RNDN)) { mpfr_set(r9156, r9136, MPFR_RNDN); } else { mpfr_set(r9156, r9155, MPFR_RNDN); };
        return mpfr_get_d(r9156, MPFR_RNDN);
}

static mpfr_t r9157, r9158, r9159, r9160, r9161, r9162, r9163, r9164, r9165, r9166, r9167, r9168, r9169, r9170, r9171, r9172, r9173, r9174, r9175, r9176, r9177, r9178, r9179, r9180, r9181, r9182, r9183, r9184, r9185, r9186, r9187, r9188, r9189, r9190, r9191, r9192, r9193, r9194, r9195, r9196, r9197, r9198, r9199, r9200, r9201, r9202, r9203, r9204, r9205, r9206, r9207, r9208, r9209, r9210;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9157);
        mpfr_init_set_str(r9158, "-2.9414747410000124e-107", 10, MPFR_RNDN);
        mpfr_init(r9159);
        mpfr_init_set_str(r9160, "3.6674437027325692e-202", 10, MPFR_RNDN);
        mpfr_init(r9161);
        mpfr_init(r9162);
        mpfr_init(r9163);
        mpfr_init(r9164);
        mpfr_init(r9165);
        mpfr_init(r9166);
        mpfr_init(r9167);
        mpfr_init(r9168);
        mpfr_init(r9169);
        mpfr_init(r9170);
        mpfr_init(r9171);
        mpfr_init(r9172);
        mpfr_init(r9173);
        mpfr_init(r9174);
        mpfr_init_set_str(r9175, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r9176, "6.0", 10, MPFR_RNDN);
        mpfr_init(r9177);
        mpfr_init(r9178);
        mpfr_init_set_str(r9179, "2.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r9180, "3.0", 10, MPFR_RNDN);
        mpfr_init(r9181);
        mpfr_init(r9182);
        mpfr_init(r9183);
        mpfr_init(r9184);
        mpfr_init(r9185);
        mpfr_init(r9186);
        mpfr_init(r9187);
        mpfr_init(r9188);
        mpfr_init(r9189);
        mpfr_init(r9190);
        mpfr_init(r9191);
        mpfr_init(r9192);
        mpfr_init(r9193);
        mpfr_init(r9194);
        mpfr_init(r9195);
        mpfr_init(r9196);
        mpfr_init(r9197);
        mpfr_init(r9198);
        mpfr_init(r9199);
        mpfr_init(r9200);
        mpfr_init(r9201);
        mpfr_init(r9202);
        mpfr_init(r9203);
        mpfr_init(r9204);
        mpfr_init(r9205);
        mpfr_init(r9206);
        mpfr_init(r9207);
        mpfr_init(r9208);
        mpfr_init(r9209);
        mpfr_init(r9210);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r9157, t, MPFR_RNDN);
        ;
        mpfr_set_si(r9159, mpfr_cmp(r9157, r9158) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9161, mpfr_cmp(r9157, r9160) <= 0, MPFR_RNDN);
        mpfr_set_si(r9162, !mpfr_get_si(r9161, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9163, mpfr_get_si(r9159, MPFR_RNDN) || mpfr_get_si(r9162, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9164, x, MPFR_RNDN);
        mpfr_set_d(r9165, y, MPFR_RNDN);
        mpfr_set_d(r9166, z, MPFR_RNDN);
        mpfr_set_d(r9167, a, MPFR_RNDN);
        mpfr_add(r9168, r9157, r9167, MPFR_RNDN);
        mpfr_sqrt(r9169, r9168, MPFR_RNDN);
        mpfr_div(r9170, r9157, r9169, MPFR_RNDN);
        mpfr_div(r9171, r9166, r9170, MPFR_RNDN);
        mpfr_set_d(r9172, b, MPFR_RNDN);
        mpfr_set_d(r9173, c, MPFR_RNDN);
        mpfr_sub(r9174, r9172, r9173, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9177, r9175, r9176, MPFR_RNDN);
        mpfr_add(r9178, r9177, r9167, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9181, r9157, r9180, MPFR_RNDN);
        mpfr_div(r9182, r9179, r9181, MPFR_RNDN);
        mpfr_sub(r9183, r9178, r9182, MPFR_RNDN);
        mpfr_mul(r9184, r9174, r9183, MPFR_RNDN);
        mpfr_sub(r9185, r9171, r9184, MPFR_RNDN);
        mpfr_mul(r9186, r9185, r9179, MPFR_RNDN);
        mpfr_exp(r9187, r9186, MPFR_RNDN);
        mpfr_mul(r9188, r9165, r9187, MPFR_RNDN);
        mpfr_add(r9189, r9188, r9164, MPFR_RNDN);
        mpfr_div(r9190, r9164, r9189, MPFR_RNDN);
        mpfr_sub(r9191, r9167, r9177, MPFR_RNDN);
        mpfr_mul(r9192, r9166, r9180, MPFR_RNDN);
        mpfr_mul(r9193, r9192, r9157, MPFR_RNDN);
        mpfr_mul(r9194, r9191, r9193, MPFR_RNDN);
        mpfr_mul(r9195, r9157, r9174, MPFR_RNDN);
        mpfr_div(r9196, r9195, r9169, MPFR_RNDN);
        mpfr_mul(r9197, r9181, r9178, MPFR_RNDN);
        mpfr_sub(r9198, r9197, r9179, MPFR_RNDN);
        mpfr_mul(r9199, r9198, r9191, MPFR_RNDN);
        mpfr_mul(r9200, r9196, r9199, MPFR_RNDN);
        mpfr_sub(r9201, r9194, r9200, MPFR_RNDN);
        mpfr_mul(r9202, r9191, r9181, MPFR_RNDN);
        mpfr_mul(r9203, r9202, r9170, MPFR_RNDN);
        mpfr_div(r9204, r9201, r9203, MPFR_RNDN);
        mpfr_mul(r9205, r9204, r9179, MPFR_RNDN);
        mpfr_exp(r9206, r9205, MPFR_RNDN);
        mpfr_mul(r9207, r9165, r9206, MPFR_RNDN);
        mpfr_add(r9208, r9164, r9207, MPFR_RNDN);
        mpfr_div(r9209, r9164, r9208, MPFR_RNDN);
        if (mpfr_get_si(r9163, MPFR_RNDN)) { mpfr_set(r9210, r9190, MPFR_RNDN); } else { mpfr_set(r9210, r9209, MPFR_RNDN); };
        return mpfr_get_d(r9210, MPFR_RNDN);
}

