#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, A";

double f_if(float x, float y) {
        float r44764 = x;
        float r44765 = y;
        float r44766 = r44764 * r44765;
        float r44767 = r44764 + r44765;
        float r44768 = r44767 * r44767;
        float r44769 = 1.0;
        float r44770 = r44767 + r44769;
        float r44771 = r44768 * r44770;
        float r44772 = r44766 / r44771;
        return r44772;
}

double f_id(double x, double y) {
        double r44773 = x;
        double r44774 = y;
        double r44775 = r44773 * r44774;
        double r44776 = r44773 + r44774;
        double r44777 = r44776 * r44776;
        double r44778 = 1.0;
        double r44779 = r44776 + r44778;
        double r44780 = r44777 * r44779;
        double r44781 = r44775 / r44780;
        return r44781;
}


double f_of(float x, float y) {
        float r44782 = x;
        float r44783 = y;
        float r44784 = r44782 + r44783;
        float r44785 = r44782 / r44784;
        float r44786 = r44783 / r44784;
        float r44787 = 1.0;
        float r44788 = r44783 + r44787;
        float r44789 = r44788 + r44782;
        float r44790 = r44786 / r44789;
        float r44791 = r44785 * r44790;
        return r44791;
}

double f_od(double x, double y) {
        double r44792 = x;
        double r44793 = y;
        double r44794 = r44792 + r44793;
        double r44795 = r44792 / r44794;
        double r44796 = r44793 / r44794;
        double r44797 = 1.0;
        double r44798 = r44793 + r44797;
        double r44799 = r44798 + r44792;
        double r44800 = r44796 / r44799;
        double r44801 = r44795 * r44800;
        return r44801;
}

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 r44802, r44803, r44804, r44805, r44806, r44807, r44808, r44809, r44810;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r44802);
        mpfr_init(r44803);
        mpfr_init(r44804);
        mpfr_init(r44805);
        mpfr_init(r44806);
        mpfr_init_set_str(r44807, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44808);
        mpfr_init(r44809);
        mpfr_init(r44810);
}

double f_im(double x, double y) {
        mpfr_set_d(r44802, x, MPFR_RNDN);
        mpfr_set_d(r44803, y, MPFR_RNDN);
        mpfr_mul(r44804, r44802, r44803, MPFR_RNDN);
        mpfr_add(r44805, r44802, r44803, MPFR_RNDN);
        mpfr_mul(r44806, r44805, r44805, MPFR_RNDN);
        ;
        mpfr_add(r44808, r44805, r44807, MPFR_RNDN);
        mpfr_mul(r44809, r44806, r44808, MPFR_RNDN);
        mpfr_div(r44810, r44804, r44809, MPFR_RNDN);
        return mpfr_get_d(r44810, MPFR_RNDN);
}

static mpfr_t r44811, r44812, r44813, r44814, r44815, r44816, r44817, r44818, r44819, r44820;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44811);
        mpfr_init(r44812);
        mpfr_init(r44813);
        mpfr_init(r44814);
        mpfr_init(r44815);
        mpfr_init_set_str(r44816, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44817);
        mpfr_init(r44818);
        mpfr_init(r44819);
        mpfr_init(r44820);
}

double f_fm(double x, double y) {
        mpfr_set_d(r44811, x, MPFR_RNDN);
        mpfr_set_d(r44812, y, MPFR_RNDN);
        mpfr_add(r44813, r44811, r44812, MPFR_RNDN);
        mpfr_div(r44814, r44811, r44813, MPFR_RNDN);
        mpfr_div(r44815, r44812, r44813, MPFR_RNDN);
        ;
        mpfr_add(r44817, r44812, r44816, MPFR_RNDN);
        mpfr_add(r44818, r44817, r44811, MPFR_RNDN);
        mpfr_div(r44819, r44815, r44818, MPFR_RNDN);
        mpfr_mul(r44820, r44814, r44819, MPFR_RNDN);
        return mpfr_get_d(r44820, MPFR_RNDN);
}

static mpfr_t r44821, r44822, r44823, r44824, r44825, r44826, r44827, r44828, r44829, r44830;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44821);
        mpfr_init(r44822);
        mpfr_init(r44823);
        mpfr_init(r44824);
        mpfr_init(r44825);
        mpfr_init_set_str(r44826, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44827);
        mpfr_init(r44828);
        mpfr_init(r44829);
        mpfr_init(r44830);
}

double f_dm(double x, double y) {
        mpfr_set_d(r44821, x, MPFR_RNDN);
        mpfr_set_d(r44822, y, MPFR_RNDN);
        mpfr_add(r44823, r44821, r44822, MPFR_RNDN);
        mpfr_div(r44824, r44821, r44823, MPFR_RNDN);
        mpfr_div(r44825, r44822, r44823, MPFR_RNDN);
        ;
        mpfr_add(r44827, r44822, r44826, MPFR_RNDN);
        mpfr_add(r44828, r44827, r44821, MPFR_RNDN);
        mpfr_div(r44829, r44825, r44828, MPFR_RNDN);
        mpfr_mul(r44830, r44824, r44829, MPFR_RNDN);
        return mpfr_get_d(r44830, MPFR_RNDN);
}

