#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 r43895 = x;
        float r43896 = r43895 * r43895;
        float r43897 = 3.0;
        float r43898 = r43896 - r43897;
        float r43899 = 6.0;
        float r43900 = r43898 / r43899;
        return r43900;
}

double f_id(double x) {
        double r43901 = x;
        double r43902 = r43901 * r43901;
        double r43903 = 3.0;
        double r43904 = r43902 - r43903;
        double r43905 = 6.0;
        double r43906 = r43904 / r43905;
        return r43906;
}


double f_of(float x) {
        float r43907 = 0.16666666666666666;
        float r43908 = x;
        float r43909 = 2;
        float r43910 = pow(r43908, r43909);
        float r43911 = r43907 * r43910;
        float r43912 = 0.5;
        float r43913 = r43911 - r43912;
        return r43913;
}

double f_od(double x) {
        double r43914 = 0.16666666666666666;
        double r43915 = x;
        double r43916 = 2;
        double r43917 = pow(r43915, r43916);
        double r43918 = r43914 * r43917;
        double r43919 = 0.5;
        double r43920 = r43918 - r43919;
        return r43920;
}

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 r43921, r43922, r43923, r43924, r43925, r43926;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r43921);
        mpfr_init(r43922);
        mpfr_init_set_str(r43923, "3.0", 10, MPFR_RNDN);
        mpfr_init(r43924);
        mpfr_init_set_str(r43925, "6.0", 10, MPFR_RNDN);
        mpfr_init(r43926);
}

double f_im(double x) {
        mpfr_set_d(r43921, x, MPFR_RNDN);
        mpfr_mul(r43922, r43921, r43921, MPFR_RNDN);
        ;
        mpfr_sub(r43924, r43922, r43923, MPFR_RNDN);
        ;
        mpfr_div(r43926, r43924, r43925, MPFR_RNDN);
        return mpfr_get_d(r43926, MPFR_RNDN);
}

static mpfr_t r43927, r43928, r43929, r43930, r43931, r43932, r43933;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43927, "0.16666666666666666", 10, MPFR_RNDN);
        mpfr_init(r43928);
        mpfr_init_set_str(r43929, "2", 10, MPFR_RNDN);
        mpfr_init(r43930);
        mpfr_init(r43931);
        mpfr_init_set_str(r43932, "0.5", 10, MPFR_RNDN);
        mpfr_init(r43933);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r43928, x, MPFR_RNDN);
        ;
        mpfr_pow(r43930, r43928, r43929, MPFR_RNDN);
        mpfr_mul(r43931, r43927, r43930, MPFR_RNDN);
        ;
        mpfr_sub(r43933, r43931, r43932, MPFR_RNDN);
        return mpfr_get_d(r43933, MPFR_RNDN);
}

static mpfr_t r43934, r43935, r43936, r43937, r43938, r43939, r43940;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43934, "0.16666666666666666", 10, MPFR_RNDN);
        mpfr_init(r43935);
        mpfr_init_set_str(r43936, "2", 10, MPFR_RNDN);
        mpfr_init(r43937);
        mpfr_init(r43938);
        mpfr_init_set_str(r43939, "0.5", 10, MPFR_RNDN);
        mpfr_init(r43940);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r43935, x, MPFR_RNDN);
        ;
        mpfr_pow(r43937, r43935, r43936, MPFR_RNDN);
        mpfr_mul(r43938, r43934, r43937, MPFR_RNDN);
        ;
        mpfr_sub(r43940, r43938, r43939, MPFR_RNDN);
        return mpfr_get_d(r43940, MPFR_RNDN);
}

