#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 r43976 = x;
        float r43977 = 2.30753;
        float r43978 = 0.27061;
        float r43979 = r43976 * r43978;
        float r43980 = r43977 + r43979;
        float r43981 = 1.0;
        float r43982 = 0.99229;
        float r43983 = 0.04481;
        float r43984 = r43976 * r43983;
        float r43985 = r43982 + r43984;
        float r43986 = r43985 * r43976;
        float r43987 = r43981 + r43986;
        float r43988 = r43980 / r43987;
        float r43989 = r43976 - r43988;
        return r43989;
}

double f_id(double x) {
        double r43990 = x;
        double r43991 = 2.30753;
        double r43992 = 0.27061;
        double r43993 = r43990 * r43992;
        double r43994 = r43991 + r43993;
        double r43995 = 1.0;
        double r43996 = 0.99229;
        double r43997 = 0.04481;
        double r43998 = r43990 * r43997;
        double r43999 = r43996 + r43998;
        double r44000 = r43999 * r43990;
        double r44001 = r43995 + r44000;
        double r44002 = r43994 / r44001;
        double r44003 = r43990 - r44002;
        return r44003;
}


double f_of(float x) {
        float r44004 = x;
        float r44005 = 2.30753;
        float r44006 = 0.27061;
        float r44007 = r44004 * r44006;
        float r44008 = r44005 + r44007;
        float r44009 = 1.0;
        float r44010 = 0.99229;
        float r44011 = 0.04481;
        float r44012 = r44004 * r44011;
        float r44013 = r44010 + r44012;
        float r44014 = r44013 * r44004;
        float r44015 = r44009 + r44014;
        float r44016 = r44008 / r44015;
        float r44017 = r44004 - r44016;
        return r44017;
}

double f_od(double x) {
        double r44018 = x;
        double r44019 = 2.30753;
        double r44020 = 0.27061;
        double r44021 = r44018 * r44020;
        double r44022 = r44019 + r44021;
        double r44023 = 1.0;
        double r44024 = 0.99229;
        double r44025 = 0.04481;
        double r44026 = r44018 * r44025;
        double r44027 = r44024 + r44026;
        double r44028 = r44027 * r44018;
        double r44029 = r44023 + r44028;
        double r44030 = r44022 / r44029;
        double r44031 = r44018 - r44030;
        return r44031;
}

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 r44032, r44033, r44034, r44035, r44036, r44037, r44038, r44039, r44040, r44041, r44042, r44043, r44044, r44045;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r44032);
        mpfr_init_set_str(r44033, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44034, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44035);
        mpfr_init(r44036);
        mpfr_init_set_str(r44037, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44038, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44039, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44040);
        mpfr_init(r44041);
        mpfr_init(r44042);
        mpfr_init(r44043);
        mpfr_init(r44044);
        mpfr_init(r44045);
}

double f_im(double x) {
        mpfr_set_d(r44032, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44035, r44032, r44034, MPFR_RNDN);
        mpfr_add(r44036, r44033, r44035, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44040, r44032, r44039, MPFR_RNDN);
        mpfr_add(r44041, r44038, r44040, MPFR_RNDN);
        mpfr_mul(r44042, r44041, r44032, MPFR_RNDN);
        mpfr_add(r44043, r44037, r44042, MPFR_RNDN);
        mpfr_div(r44044, r44036, r44043, MPFR_RNDN);
        mpfr_sub(r44045, r44032, r44044, MPFR_RNDN);
        return mpfr_get_d(r44045, MPFR_RNDN);
}

static mpfr_t r44046, r44047, r44048, r44049, r44050, r44051, r44052, r44053, r44054, r44055, r44056, r44057, r44058, r44059;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44046);
        mpfr_init_set_str(r44047, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44048, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44049);
        mpfr_init(r44050);
        mpfr_init_set_str(r44051, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44052, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44053, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44054);
        mpfr_init(r44055);
        mpfr_init(r44056);
        mpfr_init(r44057);
        mpfr_init(r44058);
        mpfr_init(r44059);
}

double f_fm(double x) {
        mpfr_set_d(r44046, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44049, r44046, r44048, MPFR_RNDN);
        mpfr_add(r44050, r44047, r44049, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44054, r44046, r44053, MPFR_RNDN);
        mpfr_add(r44055, r44052, r44054, MPFR_RNDN);
        mpfr_mul(r44056, r44055, r44046, MPFR_RNDN);
        mpfr_add(r44057, r44051, r44056, MPFR_RNDN);
        mpfr_div(r44058, r44050, r44057, MPFR_RNDN);
        mpfr_sub(r44059, r44046, r44058, MPFR_RNDN);
        return mpfr_get_d(r44059, MPFR_RNDN);
}

static mpfr_t r44060, r44061, r44062, r44063, r44064, r44065, r44066, r44067, r44068, r44069, r44070, r44071, r44072, r44073;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44060);
        mpfr_init_set_str(r44061, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44062, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44063);
        mpfr_init(r44064);
        mpfr_init_set_str(r44065, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44066, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44067, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44068);
        mpfr_init(r44069);
        mpfr_init(r44070);
        mpfr_init(r44071);
        mpfr_init(r44072);
        mpfr_init(r44073);
}

double f_dm(double x) {
        mpfr_set_d(r44060, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44063, r44060, r44062, MPFR_RNDN);
        mpfr_add(r44064, r44061, r44063, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44068, r44060, r44067, MPFR_RNDN);
        mpfr_add(r44069, r44066, r44068, MPFR_RNDN);
        mpfr_mul(r44070, r44069, r44060, MPFR_RNDN);
        mpfr_add(r44071, r44065, r44070, MPFR_RNDN);
        mpfr_div(r44072, r44064, r44071, MPFR_RNDN);
        mpfr_sub(r44073, r44060, r44072, MPFR_RNDN);
        return mpfr_get_d(r44073, MPFR_RNDN);
}

