#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 r43730 = x;
        float r43731 = 2.30753;
        float r43732 = 0.27061;
        float r43733 = r43730 * r43732;
        float r43734 = r43731 + r43733;
        float r43735 = 1.0;
        float r43736 = 0.99229;
        float r43737 = 0.04481;
        float r43738 = r43730 * r43737;
        float r43739 = r43736 + r43738;
        float r43740 = r43739 * r43730;
        float r43741 = r43735 + r43740;
        float r43742 = r43734 / r43741;
        float r43743 = r43730 - r43742;
        return r43743;
}

double f_id(double x) {
        double r43744 = x;
        double r43745 = 2.30753;
        double r43746 = 0.27061;
        double r43747 = r43744 * r43746;
        double r43748 = r43745 + r43747;
        double r43749 = 1.0;
        double r43750 = 0.99229;
        double r43751 = 0.04481;
        double r43752 = r43744 * r43751;
        double r43753 = r43750 + r43752;
        double r43754 = r43753 * r43744;
        double r43755 = r43749 + r43754;
        double r43756 = r43748 / r43755;
        double r43757 = r43744 - r43756;
        return r43757;
}


double f_of(float x) {
        float r43758 = x;
        float r43759 = 2.30753;
        float r43760 = 0.27061;
        float r43761 = r43758 * r43760;
        float r43762 = r43759 + r43761;
        float r43763 = 1.0;
        float r43764 = 0.99229;
        float r43765 = 0.04481;
        float r43766 = r43758 * r43765;
        float r43767 = r43764 + r43766;
        float r43768 = r43767 * r43758;
        float r43769 = r43763 + r43768;
        float r43770 = r43762 / r43769;
        float r43771 = r43758 - r43770;
        return r43771;
}

double f_od(double x) {
        double r43772 = x;
        double r43773 = 2.30753;
        double r43774 = 0.27061;
        double r43775 = r43772 * r43774;
        double r43776 = r43773 + r43775;
        double r43777 = 1.0;
        double r43778 = 0.99229;
        double r43779 = 0.04481;
        double r43780 = r43772 * r43779;
        double r43781 = r43778 + r43780;
        double r43782 = r43781 * r43772;
        double r43783 = r43777 + r43782;
        double r43784 = r43776 / r43783;
        double r43785 = r43772 - r43784;
        return r43785;
}

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 r43786, r43787, r43788, r43789, r43790, r43791, r43792, r43793, r43794, r43795, r43796, r43797, r43798, r43799;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r43786);
        mpfr_init_set_str(r43787, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r43788, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r43789);
        mpfr_init(r43790);
        mpfr_init_set_str(r43791, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r43792, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r43793, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r43794);
        mpfr_init(r43795);
        mpfr_init(r43796);
        mpfr_init(r43797);
        mpfr_init(r43798);
        mpfr_init(r43799);
}

double f_im(double x) {
        mpfr_set_d(r43786, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43789, r43786, r43788, MPFR_RNDN);
        mpfr_add(r43790, r43787, r43789, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r43794, r43786, r43793, MPFR_RNDN);
        mpfr_add(r43795, r43792, r43794, MPFR_RNDN);
        mpfr_mul(r43796, r43795, r43786, MPFR_RNDN);
        mpfr_add(r43797, r43791, r43796, MPFR_RNDN);
        mpfr_div(r43798, r43790, r43797, MPFR_RNDN);
        mpfr_sub(r43799, r43786, r43798, MPFR_RNDN);
        return mpfr_get_d(r43799, MPFR_RNDN);
}

static mpfr_t r43800, r43801, r43802, r43803, r43804, r43805, r43806, r43807, r43808, r43809, r43810, r43811, r43812, r43813;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r43800);
        mpfr_init_set_str(r43801, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r43802, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r43803);
        mpfr_init(r43804);
        mpfr_init_set_str(r43805, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r43806, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r43807, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r43808);
        mpfr_init(r43809);
        mpfr_init(r43810);
        mpfr_init(r43811);
        mpfr_init(r43812);
        mpfr_init(r43813);
}

double f_fm(double x) {
        mpfr_set_d(r43800, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43803, r43800, r43802, MPFR_RNDN);
        mpfr_add(r43804, r43801, r43803, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r43808, r43800, r43807, MPFR_RNDN);
        mpfr_add(r43809, r43806, r43808, MPFR_RNDN);
        mpfr_mul(r43810, r43809, r43800, MPFR_RNDN);
        mpfr_add(r43811, r43805, r43810, MPFR_RNDN);
        mpfr_div(r43812, r43804, r43811, MPFR_RNDN);
        mpfr_sub(r43813, r43800, r43812, MPFR_RNDN);
        return mpfr_get_d(r43813, MPFR_RNDN);
}

static mpfr_t r43814, r43815, r43816, r43817, r43818, r43819, r43820, r43821, r43822, r43823, r43824, r43825, r43826, r43827;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r43814);
        mpfr_init_set_str(r43815, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r43816, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r43817);
        mpfr_init(r43818);
        mpfr_init_set_str(r43819, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r43820, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r43821, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r43822);
        mpfr_init(r43823);
        mpfr_init(r43824);
        mpfr_init(r43825);
        mpfr_init(r43826);
        mpfr_init(r43827);
}

double f_dm(double x) {
        mpfr_set_d(r43814, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43817, r43814, r43816, MPFR_RNDN);
        mpfr_add(r43818, r43815, r43817, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r43822, r43814, r43821, MPFR_RNDN);
        mpfr_add(r43823, r43820, r43822, MPFR_RNDN);
        mpfr_mul(r43824, r43823, r43814, MPFR_RNDN);
        mpfr_add(r43825, r43819, r43824, MPFR_RNDN);
        mpfr_div(r43826, r43818, r43825, MPFR_RNDN);
        mpfr_sub(r43827, r43814, r43826, MPFR_RNDN);
        return mpfr_get_d(r43827, MPFR_RNDN);
}

