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

double f_if(float x, float y) {
        float r44058 = 1.0;
        float r44059 = x;
        float r44060 = r44058 - r44059;
        float r44061 = y;
        float r44062 = sqrt(r44059);
        float r44063 = r44061 * r44062;
        float r44064 = r44060 + r44063;
        return r44064;
}

double f_id(double x, double y) {
        double r44065 = 1.0;
        double r44066 = x;
        double r44067 = r44065 - r44066;
        double r44068 = y;
        double r44069 = sqrt(r44066);
        double r44070 = r44068 * r44069;
        double r44071 = r44067 + r44070;
        return r44071;
}


double f_of(float x, float y) {
        float r44072 = 1.0;
        float r44073 = x;
        float r44074 = r44072 - r44073;
        float r44075 = y;
        float r44076 = sqrt(r44073);
        float r44077 = r44075 * r44076;
        float r44078 = r44074 + r44077;
        return r44078;
}

double f_od(double x, double y) {
        double r44079 = 1.0;
        double r44080 = x;
        double r44081 = r44079 - r44080;
        double r44082 = y;
        double r44083 = sqrt(r44080);
        double r44084 = r44082 * r44083;
        double r44085 = r44081 + r44084;
        return r44085;
}

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 r44086, r44087, r44088, r44089, r44090, r44091, r44092;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44086, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44087);
        mpfr_init(r44088);
        mpfr_init(r44089);
        mpfr_init(r44090);
        mpfr_init(r44091);
        mpfr_init(r44092);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44087, x, MPFR_RNDN);
        mpfr_sub(r44088, r44086, r44087, MPFR_RNDN);
        mpfr_set_d(r44089, y, MPFR_RNDN);
        mpfr_sqrt(r44090, r44087, MPFR_RNDN);
        mpfr_mul(r44091, r44089, r44090, MPFR_RNDN);
        mpfr_add(r44092, r44088, r44091, MPFR_RNDN);
        return mpfr_get_d(r44092, MPFR_RNDN);
}

static mpfr_t r44093, r44094, r44095, r44096, r44097, r44098, r44099;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44093, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44094);
        mpfr_init(r44095);
        mpfr_init(r44096);
        mpfr_init(r44097);
        mpfr_init(r44098);
        mpfr_init(r44099);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r44094, x, MPFR_RNDN);
        mpfr_sub(r44095, r44093, r44094, MPFR_RNDN);
        mpfr_set_d(r44096, y, MPFR_RNDN);
        mpfr_sqrt(r44097, r44094, MPFR_RNDN);
        mpfr_mul(r44098, r44096, r44097, MPFR_RNDN);
        mpfr_add(r44099, r44095, r44098, MPFR_RNDN);
        return mpfr_get_d(r44099, MPFR_RNDN);
}

static mpfr_t r44100, r44101, r44102, r44103, r44104, r44105, r44106;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44100, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44101);
        mpfr_init(r44102);
        mpfr_init(r44103);
        mpfr_init(r44104);
        mpfr_init(r44105);
        mpfr_init(r44106);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r44101, x, MPFR_RNDN);
        mpfr_sub(r44102, r44100, r44101, MPFR_RNDN);
        mpfr_set_d(r44103, y, MPFR_RNDN);
        mpfr_sqrt(r44104, r44101, MPFR_RNDN);
        mpfr_mul(r44105, r44103, r44104, MPFR_RNDN);
        mpfr_add(r44106, r44102, r44105, MPFR_RNDN);
        return mpfr_get_d(r44106, MPFR_RNDN);
}

