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

double f_if(float x, float y, float z, float t, float a, float b) {
        float r9211 = x;
        float r9212 = y;
        float r9213 = z;
        float r9214 = log(r9213);
        float r9215 = r9212 * r9214;
        float r9216 = t;
        float r9217 = 1.0f;
        float r9218 = r9216 - r9217;
        float r9219 = a;
        float r9220 = log(r9219);
        float r9221 = r9218 * r9220;
        float r9222 = r9215 + r9221;
        float r9223 = b;
        float r9224 = r9222 - r9223;
        float r9225 = exp(r9224);
        float r9226 = r9211 * r9225;
        float r9227 = r9226 / r9212;
        return r9227;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r9228 = x;
        double r9229 = y;
        double r9230 = z;
        double r9231 = log(r9230);
        double r9232 = r9229 * r9231;
        double r9233 = t;
        double r9234 = 1.0;
        double r9235 = r9233 - r9234;
        double r9236 = a;
        double r9237 = log(r9236);
        double r9238 = r9235 * r9237;
        double r9239 = r9232 + r9238;
        double r9240 = b;
        double r9241 = r9239 - r9240;
        double r9242 = exp(r9241);
        double r9243 = r9228 * r9242;
        double r9244 = r9243 / r9229;
        return r9244;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r9245 = x;
        float r9246 = a;
        float r9247 = log(r9246);
        float r9248 = t;
        float r9249 = 1.0f;
        float r9250 = r9248 - r9249;
        float r9251 = r9247 * r9250;
        float r9252 = z;
        float r9253 = log(r9252);
        float r9254 = y;
        float r9255 = r9253 * r9254;
        float r9256 = r9251 + r9255;
        float r9257 = b;
        float r9258 = r9256 - r9257;
        float r9259 = exp(r9258);
        float r9260 = r9245 * r9259;
        float r9261 = r9260 / r9254;
        float r9262 = -4.730621927954379e-185f;
        bool r9263 = r9261 <= r9262;
        float r9264 = pow(r9252, r9254);
        float r9265 = r9245 * r9264;
        float r9266 = pow(r9246, r9250);
        float r9267 = r9265 * r9266;
        float r9268 = exp(r9257);
        float r9269 = r9254 * r9268;
        float r9270 = r9267 / r9269;
        float r9271 = 1.1804718857793468e-299f;
        bool r9272 = r9261 <= r9271;
        float r9273 = r9254 / r9259;
        float r9274 = r9245 / r9273;
        float r9275 = r9272 ? r9274 : r9270;
        float r9276 = r9263 ? r9270 : r9275;
        return r9276;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r9277 = x;
        double r9278 = a;
        double r9279 = log(r9278);
        double r9280 = t;
        double r9281 = 1.0;
        double r9282 = r9280 - r9281;
        double r9283 = r9279 * r9282;
        double r9284 = z;
        double r9285 = log(r9284);
        double r9286 = y;
        double r9287 = r9285 * r9286;
        double r9288 = r9283 + r9287;
        double r9289 = b;
        double r9290 = r9288 - r9289;
        double r9291 = exp(r9290);
        double r9292 = r9277 * r9291;
        double r9293 = r9292 / r9286;
        double r9294 = -4.730621927954379e-185;
        bool r9295 = r9293 <= r9294;
        double r9296 = pow(r9284, r9286);
        double r9297 = r9277 * r9296;
        double r9298 = pow(r9278, r9282);
        double r9299 = r9297 * r9298;
        double r9300 = exp(r9289);
        double r9301 = r9286 * r9300;
        double r9302 = r9299 / r9301;
        double r9303 = 1.1804718857793468e-299;
        bool r9304 = r9293 <= r9303;
        double r9305 = r9286 / r9291;
        double r9306 = r9277 / r9305;
        double r9307 = r9304 ? r9306 : r9302;
        double r9308 = r9295 ? r9302 : r9307;
        return r9308;
}

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 r9309, r9310, r9311, r9312, r9313, r9314, r9315, r9316, r9317, r9318, r9319, r9320, r9321, r9322, r9323, r9324, r9325;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9309);
        mpfr_init(r9310);
        mpfr_init(r9311);
        mpfr_init(r9312);
        mpfr_init(r9313);
        mpfr_init(r9314);
        mpfr_init_set_str(r9315, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9316);
        mpfr_init(r9317);
        mpfr_init(r9318);
        mpfr_init(r9319);
        mpfr_init(r9320);
        mpfr_init(r9321);
        mpfr_init(r9322);
        mpfr_init(r9323);
        mpfr_init(r9324);
        mpfr_init(r9325);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9309, x, MPFR_RNDN);
        mpfr_set_d(r9310, y, MPFR_RNDN);
        mpfr_set_d(r9311, z, MPFR_RNDN);
        mpfr_log(r9312, r9311, MPFR_RNDN);
        mpfr_mul(r9313, r9310, r9312, MPFR_RNDN);
        mpfr_set_d(r9314, t, MPFR_RNDN);
        ;
        mpfr_sub(r9316, r9314, r9315, MPFR_RNDN);
        mpfr_set_d(r9317, a, MPFR_RNDN);
        mpfr_log(r9318, r9317, MPFR_RNDN);
        mpfr_mul(r9319, r9316, r9318, MPFR_RNDN);
        mpfr_add(r9320, r9313, r9319, MPFR_RNDN);
        mpfr_set_d(r9321, b, MPFR_RNDN);
        mpfr_sub(r9322, r9320, r9321, MPFR_RNDN);
        mpfr_exp(r9323, r9322, MPFR_RNDN);
        mpfr_mul(r9324, r9309, r9323, MPFR_RNDN);
        mpfr_div(r9325, r9324, r9310, MPFR_RNDN);
        return mpfr_get_d(r9325, MPFR_RNDN);
}

static mpfr_t r9326, r9327, r9328, r9329, r9330, r9331, r9332, r9333, r9334, r9335, r9336, r9337, r9338, r9339, r9340, r9341, r9342, r9343, r9344, r9345, r9346, r9347, r9348, r9349, r9350, r9351, r9352, r9353, r9354, r9355, r9356, r9357;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9326);
        mpfr_init(r9327);
        mpfr_init(r9328);
        mpfr_init(r9329);
        mpfr_init_set_str(r9330, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9331);
        mpfr_init(r9332);
        mpfr_init(r9333);
        mpfr_init(r9334);
        mpfr_init(r9335);
        mpfr_init(r9336);
        mpfr_init(r9337);
        mpfr_init(r9338);
        mpfr_init(r9339);
        mpfr_init(r9340);
        mpfr_init(r9341);
        mpfr_init(r9342);
        mpfr_init_set_str(r9343, "-4.730621927954379e-185", 10, MPFR_RNDN);
        mpfr_init(r9344);
        mpfr_init(r9345);
        mpfr_init(r9346);
        mpfr_init(r9347);
        mpfr_init(r9348);
        mpfr_init(r9349);
        mpfr_init(r9350);
        mpfr_init(r9351);
        mpfr_init_set_str(r9352, "1.1804718857793468e-299", 10, MPFR_RNDN);
        mpfr_init(r9353);
        mpfr_init(r9354);
        mpfr_init(r9355);
        mpfr_init(r9356);
        mpfr_init(r9357);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9326, x, MPFR_RNDN);
        mpfr_set_d(r9327, a, MPFR_RNDN);
        mpfr_log(r9328, r9327, MPFR_RNDN);
        mpfr_set_d(r9329, t, MPFR_RNDN);
        ;
        mpfr_sub(r9331, r9329, r9330, MPFR_RNDN);
        mpfr_mul(r9332, r9328, r9331, MPFR_RNDN);
        mpfr_set_d(r9333, z, MPFR_RNDN);
        mpfr_log(r9334, r9333, MPFR_RNDN);
        mpfr_set_d(r9335, y, MPFR_RNDN);
        mpfr_mul(r9336, r9334, r9335, MPFR_RNDN);
        mpfr_add(r9337, r9332, r9336, MPFR_RNDN);
        mpfr_set_d(r9338, b, MPFR_RNDN);
        mpfr_sub(r9339, r9337, r9338, MPFR_RNDN);
        mpfr_exp(r9340, r9339, MPFR_RNDN);
        mpfr_mul(r9341, r9326, r9340, MPFR_RNDN);
        mpfr_div(r9342, r9341, r9335, MPFR_RNDN);
        ;
        mpfr_set_si(r9344, mpfr_cmp(r9342, r9343) <= 0, MPFR_RNDN);
        mpfr_pow(r9345, r9333, r9335, MPFR_RNDN);
        mpfr_mul(r9346, r9326, r9345, MPFR_RNDN);
        mpfr_pow(r9347, r9327, r9331, MPFR_RNDN);
        mpfr_mul(r9348, r9346, r9347, MPFR_RNDN);
        mpfr_exp(r9349, r9338, MPFR_RNDN);
        mpfr_mul(r9350, r9335, r9349, MPFR_RNDN);
        mpfr_div(r9351, r9348, r9350, MPFR_RNDN);
        ;
        mpfr_set_si(r9353, mpfr_cmp(r9342, r9352) <= 0, MPFR_RNDN);
        mpfr_div(r9354, r9335, r9340, MPFR_RNDN);
        mpfr_div(r9355, r9326, r9354, MPFR_RNDN);
        if (mpfr_get_si(r9353, MPFR_RNDN)) { mpfr_set(r9356, r9355, MPFR_RNDN); } else { mpfr_set(r9356, r9351, MPFR_RNDN); };
        if (mpfr_get_si(r9344, MPFR_RNDN)) { mpfr_set(r9357, r9351, MPFR_RNDN); } else { mpfr_set(r9357, r9356, MPFR_RNDN); };
        return mpfr_get_d(r9357, MPFR_RNDN);
}

static mpfr_t r9358, r9359, r9360, r9361, r9362, r9363, r9364, r9365, r9366, r9367, r9368, r9369, r9370, r9371, r9372, r9373, r9374, r9375, r9376, r9377, r9378, r9379, r9380, r9381, r9382, r9383, r9384, r9385, r9386, r9387, r9388, r9389;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9358);
        mpfr_init(r9359);
        mpfr_init(r9360);
        mpfr_init(r9361);
        mpfr_init_set_str(r9362, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9363);
        mpfr_init(r9364);
        mpfr_init(r9365);
        mpfr_init(r9366);
        mpfr_init(r9367);
        mpfr_init(r9368);
        mpfr_init(r9369);
        mpfr_init(r9370);
        mpfr_init(r9371);
        mpfr_init(r9372);
        mpfr_init(r9373);
        mpfr_init(r9374);
        mpfr_init_set_str(r9375, "-4.730621927954379e-185", 10, MPFR_RNDN);
        mpfr_init(r9376);
        mpfr_init(r9377);
        mpfr_init(r9378);
        mpfr_init(r9379);
        mpfr_init(r9380);
        mpfr_init(r9381);
        mpfr_init(r9382);
        mpfr_init(r9383);
        mpfr_init_set_str(r9384, "1.1804718857793468e-299", 10, MPFR_RNDN);
        mpfr_init(r9385);
        mpfr_init(r9386);
        mpfr_init(r9387);
        mpfr_init(r9388);
        mpfr_init(r9389);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9358, x, MPFR_RNDN);
        mpfr_set_d(r9359, a, MPFR_RNDN);
        mpfr_log(r9360, r9359, MPFR_RNDN);
        mpfr_set_d(r9361, t, MPFR_RNDN);
        ;
        mpfr_sub(r9363, r9361, r9362, MPFR_RNDN);
        mpfr_mul(r9364, r9360, r9363, MPFR_RNDN);
        mpfr_set_d(r9365, z, MPFR_RNDN);
        mpfr_log(r9366, r9365, MPFR_RNDN);
        mpfr_set_d(r9367, y, MPFR_RNDN);
        mpfr_mul(r9368, r9366, r9367, MPFR_RNDN);
        mpfr_add(r9369, r9364, r9368, MPFR_RNDN);
        mpfr_set_d(r9370, b, MPFR_RNDN);
        mpfr_sub(r9371, r9369, r9370, MPFR_RNDN);
        mpfr_exp(r9372, r9371, MPFR_RNDN);
        mpfr_mul(r9373, r9358, r9372, MPFR_RNDN);
        mpfr_div(r9374, r9373, r9367, MPFR_RNDN);
        ;
        mpfr_set_si(r9376, mpfr_cmp(r9374, r9375) <= 0, MPFR_RNDN);
        mpfr_pow(r9377, r9365, r9367, MPFR_RNDN);
        mpfr_mul(r9378, r9358, r9377, MPFR_RNDN);
        mpfr_pow(r9379, r9359, r9363, MPFR_RNDN);
        mpfr_mul(r9380, r9378, r9379, MPFR_RNDN);
        mpfr_exp(r9381, r9370, MPFR_RNDN);
        mpfr_mul(r9382, r9367, r9381, MPFR_RNDN);
        mpfr_div(r9383, r9380, r9382, MPFR_RNDN);
        ;
        mpfr_set_si(r9385, mpfr_cmp(r9374, r9384) <= 0, MPFR_RNDN);
        mpfr_div(r9386, r9367, r9372, MPFR_RNDN);
        mpfr_div(r9387, r9358, r9386, MPFR_RNDN);
        if (mpfr_get_si(r9385, MPFR_RNDN)) { mpfr_set(r9388, r9387, MPFR_RNDN); } else { mpfr_set(r9388, r9383, MPFR_RNDN); };
        if (mpfr_get_si(r9376, MPFR_RNDN)) { mpfr_set(r9389, r9383, MPFR_RNDN); } else { mpfr_set(r9389, r9388, MPFR_RNDN); };
        return mpfr_get_d(r9389, MPFR_RNDN);
}

