#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 r44334 = x;
        float r44335 = y;
        float r44336 = z;
        float r44337 = r44335 / r44336;
        float r44338 = t;
        float r44339 = 1.0;
        float r44340 = r44339 - r44336;
        float r44341 = r44338 / r44340;
        float r44342 = r44337 - r44341;
        float r44343 = r44334 * r44342;
        return r44343;
}

double f_id(double x, double y, double z, double t) {
        double r44344 = x;
        double r44345 = y;
        double r44346 = z;
        double r44347 = r44345 / r44346;
        double r44348 = t;
        double r44349 = 1.0;
        double r44350 = r44349 - r44346;
        double r44351 = r44348 / r44350;
        double r44352 = r44347 - r44351;
        double r44353 = r44344 * r44352;
        return r44353;
}


double f_of(float x, float y, float z, float t) {
        float r44354 = x;
        float r44355 = y;
        float r44356 = z;
        float r44357 = r44355 / r44356;
        float r44358 = t;
        float r44359 = 1.0;
        float r44360 = r44359 - r44356;
        float r44361 = r44358 / r44360;
        float r44362 = r44357 - r44361;
        float r44363 = r44354 * r44362;
        float r44364 = -2.4891856596234005e+122;
        bool r44365 = r44363 <= r44364;
        float r44366 = r44354 * r44355;
        float r44367 = 1;
        float r44368 = r44367 / r44356;
        float r44369 = r44366 * r44368;
        float r44370 = -r44361;
        float r44371 = r44354 * r44370;
        float r44372 = r44369 + r44371;
        float r44373 = 2.5997250574874896e+153;
        bool r44374 = r44363 <= r44373;
        float r44375 = r44354 * r44357;
        float r44376 = -r44358;
        float r44377 = r44354 * r44376;
        float r44378 = r44367 / r44360;
        float r44379 = r44377 * r44378;
        float r44380 = r44375 + r44379;
        float r44381 = r44374 ? r44380 : r44372;
        float r44382 = r44365 ? r44372 : r44381;
        return r44382;
}

double f_od(double x, double y, double z, double t) {
        double r44383 = x;
        double r44384 = y;
        double r44385 = z;
        double r44386 = r44384 / r44385;
        double r44387 = t;
        double r44388 = 1.0;
        double r44389 = r44388 - r44385;
        double r44390 = r44387 / r44389;
        double r44391 = r44386 - r44390;
        double r44392 = r44383 * r44391;
        double r44393 = -2.4891856596234005e+122;
        bool r44394 = r44392 <= r44393;
        double r44395 = r44383 * r44384;
        double r44396 = 1;
        double r44397 = r44396 / r44385;
        double r44398 = r44395 * r44397;
        double r44399 = -r44390;
        double r44400 = r44383 * r44399;
        double r44401 = r44398 + r44400;
        double r44402 = 2.5997250574874896e+153;
        bool r44403 = r44392 <= r44402;
        double r44404 = r44383 * r44386;
        double r44405 = -r44387;
        double r44406 = r44383 * r44405;
        double r44407 = r44396 / r44389;
        double r44408 = r44406 * r44407;
        double r44409 = r44404 + r44408;
        double r44410 = r44403 ? r44409 : r44401;
        double r44411 = r44394 ? r44401 : r44410;
        return r44411;
}

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 r44412, r44413, r44414, r44415, r44416, r44417, r44418, r44419, r44420, r44421;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r44412);
        mpfr_init(r44413);
        mpfr_init(r44414);
        mpfr_init(r44415);
        mpfr_init(r44416);
        mpfr_init_set_str(r44417, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44418);
        mpfr_init(r44419);
        mpfr_init(r44420);
        mpfr_init(r44421);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r44412, x, MPFR_RNDN);
        mpfr_set_d(r44413, y, MPFR_RNDN);
        mpfr_set_d(r44414, z, MPFR_RNDN);
        mpfr_div(r44415, r44413, r44414, MPFR_RNDN);
        mpfr_set_d(r44416, t, MPFR_RNDN);
        ;
        mpfr_sub(r44418, r44417, r44414, MPFR_RNDN);
        mpfr_div(r44419, r44416, r44418, MPFR_RNDN);
        mpfr_sub(r44420, r44415, r44419, MPFR_RNDN);
        mpfr_mul(r44421, r44412, r44420, MPFR_RNDN);
        return mpfr_get_d(r44421, MPFR_RNDN);
}

static mpfr_t r44422, r44423, r44424, r44425, r44426, r44427, r44428, r44429, r44430, r44431, r44432, r44433, r44434, r44435, r44436, r44437, r44438, r44439, r44440, r44441, r44442, r44443, r44444, r44445, r44446, r44447, r44448, r44449, r44450;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44422);
        mpfr_init(r44423);
        mpfr_init(r44424);
        mpfr_init(r44425);
        mpfr_init(r44426);
        mpfr_init_set_str(r44427, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44428);
        mpfr_init(r44429);
        mpfr_init(r44430);
        mpfr_init(r44431);
        mpfr_init_set_str(r44432, "-2.4891856596234005e+122", 10, MPFR_RNDN);
        mpfr_init(r44433);
        mpfr_init(r44434);
        mpfr_init_set_str(r44435, "1", 10, MPFR_RNDN);
        mpfr_init(r44436);
        mpfr_init(r44437);
        mpfr_init(r44438);
        mpfr_init(r44439);
        mpfr_init(r44440);
        mpfr_init_set_str(r44441, "2.5997250574874896e+153", 10, MPFR_RNDN);
        mpfr_init(r44442);
        mpfr_init(r44443);
        mpfr_init(r44444);
        mpfr_init(r44445);
        mpfr_init(r44446);
        mpfr_init(r44447);
        mpfr_init(r44448);
        mpfr_init(r44449);
        mpfr_init(r44450);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r44422, x, MPFR_RNDN);
        mpfr_set_d(r44423, y, MPFR_RNDN);
        mpfr_set_d(r44424, z, MPFR_RNDN);
        mpfr_div(r44425, r44423, r44424, MPFR_RNDN);
        mpfr_set_d(r44426, t, MPFR_RNDN);
        ;
        mpfr_sub(r44428, r44427, r44424, MPFR_RNDN);
        mpfr_div(r44429, r44426, r44428, MPFR_RNDN);
        mpfr_sub(r44430, r44425, r44429, MPFR_RNDN);
        mpfr_mul(r44431, r44422, r44430, MPFR_RNDN);
        ;
        mpfr_set_si(r44433, mpfr_cmp(r44431, r44432) <= 0, MPFR_RNDN);
        mpfr_mul(r44434, r44422, r44423, MPFR_RNDN);
        ;
        mpfr_div(r44436, r44435, r44424, MPFR_RNDN);
        mpfr_mul(r44437, r44434, r44436, MPFR_RNDN);
        mpfr_neg(r44438, r44429, MPFR_RNDN);
        mpfr_mul(r44439, r44422, r44438, MPFR_RNDN);
        mpfr_add(r44440, r44437, r44439, MPFR_RNDN);
        ;
        mpfr_set_si(r44442, mpfr_cmp(r44431, r44441) <= 0, MPFR_RNDN);
        mpfr_mul(r44443, r44422, r44425, MPFR_RNDN);
        mpfr_neg(r44444, r44426, MPFR_RNDN);
        mpfr_mul(r44445, r44422, r44444, MPFR_RNDN);
        mpfr_div(r44446, r44435, r44428, MPFR_RNDN);
        mpfr_mul(r44447, r44445, r44446, MPFR_RNDN);
        mpfr_add(r44448, r44443, r44447, MPFR_RNDN);
        if (mpfr_get_si(r44442, MPFR_RNDN)) { mpfr_set(r44449, r44448, MPFR_RNDN); } else { mpfr_set(r44449, r44440, MPFR_RNDN); };
        if (mpfr_get_si(r44433, MPFR_RNDN)) { mpfr_set(r44450, r44440, MPFR_RNDN); } else { mpfr_set(r44450, r44449, MPFR_RNDN); };
        return mpfr_get_d(r44450, MPFR_RNDN);
}

static mpfr_t r44451, r44452, r44453, r44454, r44455, r44456, r44457, r44458, r44459, r44460, r44461, r44462, r44463, r44464, r44465, r44466, r44467, r44468, r44469, r44470, r44471, r44472, r44473, r44474, r44475, r44476, r44477, r44478, r44479;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44451);
        mpfr_init(r44452);
        mpfr_init(r44453);
        mpfr_init(r44454);
        mpfr_init(r44455);
        mpfr_init_set_str(r44456, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44457);
        mpfr_init(r44458);
        mpfr_init(r44459);
        mpfr_init(r44460);
        mpfr_init_set_str(r44461, "-2.4891856596234005e+122", 10, MPFR_RNDN);
        mpfr_init(r44462);
        mpfr_init(r44463);
        mpfr_init_set_str(r44464, "1", 10, MPFR_RNDN);
        mpfr_init(r44465);
        mpfr_init(r44466);
        mpfr_init(r44467);
        mpfr_init(r44468);
        mpfr_init(r44469);
        mpfr_init_set_str(r44470, "2.5997250574874896e+153", 10, MPFR_RNDN);
        mpfr_init(r44471);
        mpfr_init(r44472);
        mpfr_init(r44473);
        mpfr_init(r44474);
        mpfr_init(r44475);
        mpfr_init(r44476);
        mpfr_init(r44477);
        mpfr_init(r44478);
        mpfr_init(r44479);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r44451, x, MPFR_RNDN);
        mpfr_set_d(r44452, y, MPFR_RNDN);
        mpfr_set_d(r44453, z, MPFR_RNDN);
        mpfr_div(r44454, r44452, r44453, MPFR_RNDN);
        mpfr_set_d(r44455, t, MPFR_RNDN);
        ;
        mpfr_sub(r44457, r44456, r44453, MPFR_RNDN);
        mpfr_div(r44458, r44455, r44457, MPFR_RNDN);
        mpfr_sub(r44459, r44454, r44458, MPFR_RNDN);
        mpfr_mul(r44460, r44451, r44459, MPFR_RNDN);
        ;
        mpfr_set_si(r44462, mpfr_cmp(r44460, r44461) <= 0, MPFR_RNDN);
        mpfr_mul(r44463, r44451, r44452, MPFR_RNDN);
        ;
        mpfr_div(r44465, r44464, r44453, MPFR_RNDN);
        mpfr_mul(r44466, r44463, r44465, MPFR_RNDN);
        mpfr_neg(r44467, r44458, MPFR_RNDN);
        mpfr_mul(r44468, r44451, r44467, MPFR_RNDN);
        mpfr_add(r44469, r44466, r44468, MPFR_RNDN);
        ;
        mpfr_set_si(r44471, mpfr_cmp(r44460, r44470) <= 0, MPFR_RNDN);
        mpfr_mul(r44472, r44451, r44454, MPFR_RNDN);
        mpfr_neg(r44473, r44455, MPFR_RNDN);
        mpfr_mul(r44474, r44451, r44473, MPFR_RNDN);
        mpfr_div(r44475, r44464, r44457, MPFR_RNDN);
        mpfr_mul(r44476, r44474, r44475, MPFR_RNDN);
        mpfr_add(r44477, r44472, r44476, MPFR_RNDN);
        if (mpfr_get_si(r44471, MPFR_RNDN)) { mpfr_set(r44478, r44477, MPFR_RNDN); } else { mpfr_set(r44478, r44469, MPFR_RNDN); };
        if (mpfr_get_si(r44462, MPFR_RNDN)) { mpfr_set(r44479, r44469, MPFR_RNDN); } else { mpfr_set(r44479, r44478, MPFR_RNDN); };
        return mpfr_get_d(r44479, MPFR_RNDN);
}

