#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 r44187 = 1.0;
        float r44188 = x;
        float r44189 = r44187 - r44188;
        float r44190 = y;
        float r44191 = sqrt(r44188);
        float r44192 = r44190 * r44191;
        float r44193 = r44189 + r44192;
        return r44193;
}

double f_id(double x, double y) {
        double r44194 = 1.0;
        double r44195 = x;
        double r44196 = r44194 - r44195;
        double r44197 = y;
        double r44198 = sqrt(r44195);
        double r44199 = r44197 * r44198;
        double r44200 = r44196 + r44199;
        return r44200;
}


double f_of(float x, float y) {
        float r44201 = 1.0;
        float r44202 = x;
        float r44203 = r44201 - r44202;
        float r44204 = y;
        float r44205 = sqrt(r44202);
        float r44206 = r44204 * r44205;
        float r44207 = r44203 + r44206;
        return r44207;
}

double f_od(double x, double y) {
        double r44208 = 1.0;
        double r44209 = x;
        double r44210 = r44208 - r44209;
        double r44211 = y;
        double r44212 = sqrt(r44209);
        double r44213 = r44211 * r44212;
        double r44214 = r44210 + r44213;
        return r44214;
}

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 r44215, r44216, r44217, r44218, r44219, r44220, r44221;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44215, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44216);
        mpfr_init(r44217);
        mpfr_init(r44218);
        mpfr_init(r44219);
        mpfr_init(r44220);
        mpfr_init(r44221);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44216, x, MPFR_RNDN);
        mpfr_sub(r44217, r44215, r44216, MPFR_RNDN);
        mpfr_set_d(r44218, y, MPFR_RNDN);
        mpfr_sqrt(r44219, r44216, MPFR_RNDN);
        mpfr_mul(r44220, r44218, r44219, MPFR_RNDN);
        mpfr_add(r44221, r44217, r44220, MPFR_RNDN);
        return mpfr_get_d(r44221, MPFR_RNDN);
}

static mpfr_t r44222, r44223, r44224, r44225, r44226, r44227, r44228;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44222, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44223);
        mpfr_init(r44224);
        mpfr_init(r44225);
        mpfr_init(r44226);
        mpfr_init(r44227);
        mpfr_init(r44228);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r44223, x, MPFR_RNDN);
        mpfr_sub(r44224, r44222, r44223, MPFR_RNDN);
        mpfr_set_d(r44225, y, MPFR_RNDN);
        mpfr_sqrt(r44226, r44223, MPFR_RNDN);
        mpfr_mul(r44227, r44225, r44226, MPFR_RNDN);
        mpfr_add(r44228, r44224, r44227, MPFR_RNDN);
        return mpfr_get_d(r44228, MPFR_RNDN);
}

static mpfr_t r44229, r44230, r44231, r44232, r44233, r44234, r44235;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44229, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44230);
        mpfr_init(r44231);
        mpfr_init(r44232);
        mpfr_init(r44233);
        mpfr_init(r44234);
        mpfr_init(r44235);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r44230, x, MPFR_RNDN);
        mpfr_sub(r44231, r44229, r44230, MPFR_RNDN);
        mpfr_set_d(r44232, y, MPFR_RNDN);
        mpfr_sqrt(r44233, r44230, MPFR_RNDN);
        mpfr_mul(r44234, r44232, r44233, MPFR_RNDN);
        mpfr_add(r44235, r44231, r44234, MPFR_RNDN);
        return mpfr_get_d(r44235, MPFR_RNDN);
}

