#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 r40893 = x;
        float r40894 = 2.30753f;
        float r40895 = 0.27061f;
        float r40896 = r40893 * r40895;
        float r40897 = r40894 + r40896;
        float r40898 = 1.0f;
        float r40899 = 0.99229f;
        float r40900 = 0.04481f;
        float r40901 = r40893 * r40900;
        float r40902 = r40899 + r40901;
        float r40903 = r40902 * r40893;
        float r40904 = r40898 + r40903;
        float r40905 = r40897 / r40904;
        float r40906 = r40893 - r40905;
        return r40906;
}

double f_id(double x) {
        double r40907 = x;
        double r40908 = 2.30753;
        double r40909 = 0.27061;
        double r40910 = r40907 * r40909;
        double r40911 = r40908 + r40910;
        double r40912 = 1.0;
        double r40913 = 0.99229;
        double r40914 = 0.04481;
        double r40915 = r40907 * r40914;
        double r40916 = r40913 + r40915;
        double r40917 = r40916 * r40907;
        double r40918 = r40912 + r40917;
        double r40919 = r40911 / r40918;
        double r40920 = r40907 - r40919;
        return r40920;
}


double f_of(float x) {
        float r40921 = x;
        float r40922 = 2.30753f;
        float r40923 = 0.27061f;
        float r40924 = r40921 * r40923;
        float r40925 = r40922 + r40924;
        float r40926 = 1.0f;
        float r40927 = 0.99229f;
        float r40928 = 0.04481f;
        float r40929 = r40921 * r40928;
        float r40930 = r40927 + r40929;
        float r40931 = r40930 * r40921;
        float r40932 = r40926 + r40931;
        float r40933 = r40925 / r40932;
        float r40934 = r40921 - r40933;
        return r40934;
}

double f_od(double x) {
        double r40935 = x;
        double r40936 = 2.30753;
        double r40937 = 0.27061;
        double r40938 = r40935 * r40937;
        double r40939 = r40936 + r40938;
        double r40940 = 1.0;
        double r40941 = 0.99229;
        double r40942 = 0.04481;
        double r40943 = r40935 * r40942;
        double r40944 = r40941 + r40943;
        double r40945 = r40944 * r40935;
        double r40946 = r40940 + r40945;
        double r40947 = r40939 / r40946;
        double r40948 = r40935 - r40947;
        return r40948;
}

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 r40949, r40950, r40951, r40952, r40953, r40954, r40955, r40956, r40957, r40958, r40959, r40960, r40961, r40962;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r40949);
        mpfr_init_set_str(r40950, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r40951, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r40952);
        mpfr_init(r40953);
        mpfr_init_set_str(r40954, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r40955, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r40956, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r40957);
        mpfr_init(r40958);
        mpfr_init(r40959);
        mpfr_init(r40960);
        mpfr_init(r40961);
        mpfr_init(r40962);
}

double f_im(double x) {
        mpfr_set_d(r40949, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r40952, r40949, r40951, MPFR_RNDN);
        mpfr_add(r40953, r40950, r40952, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r40957, r40949, r40956, MPFR_RNDN);
        mpfr_add(r40958, r40955, r40957, MPFR_RNDN);
        mpfr_mul(r40959, r40958, r40949, MPFR_RNDN);
        mpfr_add(r40960, r40954, r40959, MPFR_RNDN);
        mpfr_div(r40961, r40953, r40960, MPFR_RNDN);
        mpfr_sub(r40962, r40949, r40961, MPFR_RNDN);
        return mpfr_get_d(r40962, MPFR_RNDN);
}

static mpfr_t r40963, r40964, r40965, r40966, r40967, r40968, r40969, r40970, r40971, r40972, r40973, r40974, r40975, r40976;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r40963);
        mpfr_init_set_str(r40964, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r40965, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r40966);
        mpfr_init(r40967);
        mpfr_init_set_str(r40968, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r40969, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r40970, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r40971);
        mpfr_init(r40972);
        mpfr_init(r40973);
        mpfr_init(r40974);
        mpfr_init(r40975);
        mpfr_init(r40976);
}

double f_fm(double x) {
        mpfr_set_d(r40963, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r40966, r40963, r40965, MPFR_RNDN);
        mpfr_add(r40967, r40964, r40966, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r40971, r40963, r40970, MPFR_RNDN);
        mpfr_add(r40972, r40969, r40971, MPFR_RNDN);
        mpfr_mul(r40973, r40972, r40963, MPFR_RNDN);
        mpfr_add(r40974, r40968, r40973, MPFR_RNDN);
        mpfr_div(r40975, r40967, r40974, MPFR_RNDN);
        mpfr_sub(r40976, r40963, r40975, MPFR_RNDN);
        return mpfr_get_d(r40976, MPFR_RNDN);
}

static mpfr_t r40977, r40978, r40979, r40980, r40981, r40982, r40983, r40984, r40985, r40986, r40987, r40988, r40989, r40990;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r40977);
        mpfr_init_set_str(r40978, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r40979, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r40980);
        mpfr_init(r40981);
        mpfr_init_set_str(r40982, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r40983, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r40984, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r40985);
        mpfr_init(r40986);
        mpfr_init(r40987);
        mpfr_init(r40988);
        mpfr_init(r40989);
        mpfr_init(r40990);
}

double f_dm(double x) {
        mpfr_set_d(r40977, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r40980, r40977, r40979, MPFR_RNDN);
        mpfr_add(r40981, r40978, r40980, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r40985, r40977, r40984, MPFR_RNDN);
        mpfr_add(r40986, r40983, r40985, MPFR_RNDN);
        mpfr_mul(r40987, r40986, r40977, MPFR_RNDN);
        mpfr_add(r40988, r40982, r40987, MPFR_RNDN);
        mpfr_div(r40989, r40981, r40988, MPFR_RNDN);
        mpfr_sub(r40990, r40977, r40989, MPFR_RNDN);
        return mpfr_get_d(r40990, MPFR_RNDN);
}

