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

double f_if(float x) {
        float r44388 = x;
        float r44389 = 2.30753;
        float r44390 = 0.27061;
        float r44391 = r44388 * r44390;
        float r44392 = r44389 + r44391;
        float r44393 = 1.0;
        float r44394 = 0.99229;
        float r44395 = 0.04481;
        float r44396 = r44388 * r44395;
        float r44397 = r44394 + r44396;
        float r44398 = r44397 * r44388;
        float r44399 = r44393 + r44398;
        float r44400 = r44392 / r44399;
        float r44401 = r44388 - r44400;
        return r44401;
}

double f_id(double x) {
        double r44402 = x;
        double r44403 = 2.30753;
        double r44404 = 0.27061;
        double r44405 = r44402 * r44404;
        double r44406 = r44403 + r44405;
        double r44407 = 1.0;
        double r44408 = 0.99229;
        double r44409 = 0.04481;
        double r44410 = r44402 * r44409;
        double r44411 = r44408 + r44410;
        double r44412 = r44411 * r44402;
        double r44413 = r44407 + r44412;
        double r44414 = r44406 / r44413;
        double r44415 = r44402 - r44414;
        return r44415;
}


double f_of(float x) {
        float r44416 = x;
        float r44417 = 2.30753;
        float r44418 = 0.27061;
        float r44419 = r44416 * r44418;
        float r44420 = r44417 + r44419;
        float r44421 = 1.0;
        float r44422 = 0.99229;
        float r44423 = 0.04481;
        float r44424 = r44416 * r44423;
        float r44425 = r44422 + r44424;
        float r44426 = r44425 * r44416;
        float r44427 = r44421 + r44426;
        float r44428 = r44420 / r44427;
        float r44429 = r44416 - r44428;
        return r44429;
}

double f_od(double x) {
        double r44430 = x;
        double r44431 = 2.30753;
        double r44432 = 0.27061;
        double r44433 = r44430 * r44432;
        double r44434 = r44431 + r44433;
        double r44435 = 1.0;
        double r44436 = 0.99229;
        double r44437 = 0.04481;
        double r44438 = r44430 * r44437;
        double r44439 = r44436 + r44438;
        double r44440 = r44439 * r44430;
        double r44441 = r44435 + r44440;
        double r44442 = r44434 / r44441;
        double r44443 = r44430 - r44442;
        return r44443;
}

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 r44444, r44445, r44446, r44447, r44448, r44449, r44450, r44451, r44452, r44453, r44454, r44455, r44456, r44457;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r44444);
        mpfr_init_set_str(r44445, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44446, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44447);
        mpfr_init(r44448);
        mpfr_init_set_str(r44449, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44450, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44451, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44452);
        mpfr_init(r44453);
        mpfr_init(r44454);
        mpfr_init(r44455);
        mpfr_init(r44456);
        mpfr_init(r44457);
}

double f_im(double x) {
        mpfr_set_d(r44444, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44447, r44444, r44446, MPFR_RNDN);
        mpfr_add(r44448, r44445, r44447, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44452, r44444, r44451, MPFR_RNDN);
        mpfr_add(r44453, r44450, r44452, MPFR_RNDN);
        mpfr_mul(r44454, r44453, r44444, MPFR_RNDN);
        mpfr_add(r44455, r44449, r44454, MPFR_RNDN);
        mpfr_div(r44456, r44448, r44455, MPFR_RNDN);
        mpfr_sub(r44457, r44444, r44456, MPFR_RNDN);
        return mpfr_get_d(r44457, MPFR_RNDN);
}

static mpfr_t r44458, r44459, r44460, r44461, r44462, r44463, r44464, r44465, r44466, r44467, r44468, r44469, r44470, r44471;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44458);
        mpfr_init_set_str(r44459, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44460, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44461);
        mpfr_init(r44462);
        mpfr_init_set_str(r44463, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44464, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44465, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44466);
        mpfr_init(r44467);
        mpfr_init(r44468);
        mpfr_init(r44469);
        mpfr_init(r44470);
        mpfr_init(r44471);
}

double f_fm(double x) {
        mpfr_set_d(r44458, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44461, r44458, r44460, MPFR_RNDN);
        mpfr_add(r44462, r44459, r44461, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44466, r44458, r44465, MPFR_RNDN);
        mpfr_add(r44467, r44464, r44466, MPFR_RNDN);
        mpfr_mul(r44468, r44467, r44458, MPFR_RNDN);
        mpfr_add(r44469, r44463, r44468, MPFR_RNDN);
        mpfr_div(r44470, r44462, r44469, MPFR_RNDN);
        mpfr_sub(r44471, r44458, r44470, MPFR_RNDN);
        return mpfr_get_d(r44471, MPFR_RNDN);
}

static mpfr_t r44472, r44473, r44474, r44475, r44476, r44477, r44478, r44479, r44480, r44481, r44482, r44483, r44484, r44485;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44472);
        mpfr_init_set_str(r44473, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44474, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44475);
        mpfr_init(r44476);
        mpfr_init_set_str(r44477, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44478, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44479, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44480);
        mpfr_init(r44481);
        mpfr_init(r44482);
        mpfr_init(r44483);
        mpfr_init(r44484);
        mpfr_init(r44485);
}

double f_dm(double x) {
        mpfr_set_d(r44472, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44475, r44472, r44474, MPFR_RNDN);
        mpfr_add(r44476, r44473, r44475, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44480, r44472, r44479, MPFR_RNDN);
        mpfr_add(r44481, r44478, r44480, MPFR_RNDN);
        mpfr_mul(r44482, r44481, r44472, MPFR_RNDN);
        mpfr_add(r44483, r44477, r44482, MPFR_RNDN);
        mpfr_div(r44484, r44476, r44483, MPFR_RNDN);
        mpfr_sub(r44485, r44472, r44484, MPFR_RNDN);
        return mpfr_get_d(r44485, MPFR_RNDN);
}

