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

double f_if(float x) {
        float r43766 = x;
        float r43767 = r43766 * r43766;
        float r43768 = 3.0;
        float r43769 = r43767 - r43768;
        float r43770 = 6.0;
        float r43771 = r43769 / r43770;
        return r43771;
}

double f_id(double x) {
        double r43772 = x;
        double r43773 = r43772 * r43772;
        double r43774 = 3.0;
        double r43775 = r43773 - r43774;
        double r43776 = 6.0;
        double r43777 = r43775 / r43776;
        return r43777;
}


double f_of(float x) {
        float r43778 = 0.16666666666666666;
        float r43779 = x;
        float r43780 = 2;
        float r43781 = pow(r43779, r43780);
        float r43782 = r43778 * r43781;
        float r43783 = 0.5;
        float r43784 = r43782 - r43783;
        return r43784;
}

double f_od(double x) {
        double r43785 = 0.16666666666666666;
        double r43786 = x;
        double r43787 = 2;
        double r43788 = pow(r43786, r43787);
        double r43789 = r43785 * r43788;
        double r43790 = 0.5;
        double r43791 = r43789 - r43790;
        return r43791;
}

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 r43792, r43793, r43794, r43795, r43796, r43797;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r43792);
        mpfr_init(r43793);
        mpfr_init_set_str(r43794, "3.0", 10, MPFR_RNDN);
        mpfr_init(r43795);
        mpfr_init_set_str(r43796, "6.0", 10, MPFR_RNDN);
        mpfr_init(r43797);
}

double f_im(double x) {
        mpfr_set_d(r43792, x, MPFR_RNDN);
        mpfr_mul(r43793, r43792, r43792, MPFR_RNDN);
        ;
        mpfr_sub(r43795, r43793, r43794, MPFR_RNDN);
        ;
        mpfr_div(r43797, r43795, r43796, MPFR_RNDN);
        return mpfr_get_d(r43797, MPFR_RNDN);
}

static mpfr_t r43798, r43799, r43800, r43801, r43802, r43803, r43804;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43798, "0.16666666666666666", 10, MPFR_RNDN);
        mpfr_init(r43799);
        mpfr_init_set_str(r43800, "2", 10, MPFR_RNDN);
        mpfr_init(r43801);
        mpfr_init(r43802);
        mpfr_init_set_str(r43803, "0.5", 10, MPFR_RNDN);
        mpfr_init(r43804);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r43799, x, MPFR_RNDN);
        ;
        mpfr_pow(r43801, r43799, r43800, MPFR_RNDN);
        mpfr_mul(r43802, r43798, r43801, MPFR_RNDN);
        ;
        mpfr_sub(r43804, r43802, r43803, MPFR_RNDN);
        return mpfr_get_d(r43804, MPFR_RNDN);
}

static mpfr_t r43805, r43806, r43807, r43808, r43809, r43810, r43811;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43805, "0.16666666666666666", 10, MPFR_RNDN);
        mpfr_init(r43806);
        mpfr_init_set_str(r43807, "2", 10, MPFR_RNDN);
        mpfr_init(r43808);
        mpfr_init(r43809);
        mpfr_init_set_str(r43810, "0.5", 10, MPFR_RNDN);
        mpfr_init(r43811);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r43806, x, MPFR_RNDN);
        ;
        mpfr_pow(r43808, r43806, r43807, MPFR_RNDN);
        mpfr_mul(r43809, r43805, r43808, MPFR_RNDN);
        ;
        mpfr_sub(r43811, r43809, r43810, MPFR_RNDN);
        return mpfr_get_d(r43811, MPFR_RNDN);
}

