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

double f_if(float x, float y) {
        float r43743 = x;
        float r43744 = y;
        float r43745 = r43743 + r43744;
        float r43746 = r43743 / r43745;
        float r43747 = log(r43746);
        float r43748 = r43743 * r43747;
        float r43749 = exp(r43748);
        float r43750 = r43749 / r43743;
        return r43750;
}

double f_id(double x, double y) {
        double r43751 = x;
        double r43752 = y;
        double r43753 = r43751 + r43752;
        double r43754 = r43751 / r43753;
        double r43755 = log(r43754);
        double r43756 = r43751 * r43755;
        double r43757 = exp(r43756);
        double r43758 = r43757 / r43751;
        return r43758;
}


double f_of(float x, float y) {
        float r43759 = y;
        float r43760 = -3.7026164623559706e+74;
        bool r43761 = r43759 <= r43760;
        float r43762 = 1;
        float r43763 = r43762 / r43759;
        float r43764 = -r43763;
        float r43765 = exp(r43764);
        float r43766 = x;
        float r43767 = r43765 / r43766;
        float r43768 = 12558354769362.566;
        bool r43769 = r43759 <= r43768;
        float r43770 = r43759 + r43766;
        float r43771 = r43766 / r43770;
        float r43772 = pow(r43771, r43766);
        float r43773 = r43772 / r43766;
        float r43774 = exp(r43773);
        float r43775 = log(r43774);
        float r43776 = r43769 ? r43773 : r43775;
        float r43777 = r43761 ? r43767 : r43776;
        return r43777;
}

double f_od(double x, double y) {
        double r43778 = y;
        double r43779 = -3.7026164623559706e+74;
        bool r43780 = r43778 <= r43779;
        double r43781 = 1;
        double r43782 = r43781 / r43778;
        double r43783 = -r43782;
        double r43784 = exp(r43783);
        double r43785 = x;
        double r43786 = r43784 / r43785;
        double r43787 = 12558354769362.566;
        bool r43788 = r43778 <= r43787;
        double r43789 = r43778 + r43785;
        double r43790 = r43785 / r43789;
        double r43791 = pow(r43790, r43785);
        double r43792 = r43791 / r43785;
        double r43793 = exp(r43792);
        double r43794 = log(r43793);
        double r43795 = r43788 ? r43792 : r43794;
        double r43796 = r43780 ? r43786 : r43795;
        return r43796;
}

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 r43797, r43798, r43799, r43800, r43801, r43802, r43803, r43804;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43797);
        mpfr_init(r43798);
        mpfr_init(r43799);
        mpfr_init(r43800);
        mpfr_init(r43801);
        mpfr_init(r43802);
        mpfr_init(r43803);
        mpfr_init(r43804);
}

double f_im(double x, double y) {
        mpfr_set_d(r43797, x, MPFR_RNDN);
        mpfr_set_d(r43798, y, MPFR_RNDN);
        mpfr_add(r43799, r43797, r43798, MPFR_RNDN);
        mpfr_div(r43800, r43797, r43799, MPFR_RNDN);
        mpfr_log(r43801, r43800, MPFR_RNDN);
        mpfr_mul(r43802, r43797, r43801, MPFR_RNDN);
        mpfr_exp(r43803, r43802, MPFR_RNDN);
        mpfr_div(r43804, r43803, r43797, MPFR_RNDN);
        return mpfr_get_d(r43804, MPFR_RNDN);
}

static mpfr_t r43805, r43806, r43807, r43808, r43809, r43810, r43811, r43812, r43813, r43814, r43815, r43816, r43817, r43818, r43819, r43820, r43821, r43822, r43823;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43805);
        mpfr_init_set_str(r43806, "-3.7026164623559706e+74", 10, MPFR_RNDN);
        mpfr_init(r43807);
        mpfr_init_set_str(r43808, "1", 10, MPFR_RNDN);
        mpfr_init(r43809);
        mpfr_init(r43810);
        mpfr_init(r43811);
        mpfr_init(r43812);
        mpfr_init(r43813);
        mpfr_init_set_str(r43814, "12558354769362.566", 10, MPFR_RNDN);
        mpfr_init(r43815);
        mpfr_init(r43816);
        mpfr_init(r43817);
        mpfr_init(r43818);
        mpfr_init(r43819);
        mpfr_init(r43820);
        mpfr_init(r43821);
        mpfr_init(r43822);
        mpfr_init(r43823);
}

double f_fm(double x, double y) {
        mpfr_set_d(r43805, y, MPFR_RNDN);
        ;
        mpfr_set_si(r43807, mpfr_cmp(r43805, r43806) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r43809, r43808, r43805, MPFR_RNDN);
        mpfr_neg(r43810, r43809, MPFR_RNDN);
        mpfr_exp(r43811, r43810, MPFR_RNDN);
        mpfr_set_d(r43812, x, MPFR_RNDN);
        mpfr_div(r43813, r43811, r43812, MPFR_RNDN);
        ;
        mpfr_set_si(r43815, mpfr_cmp(r43805, r43814) <= 0, MPFR_RNDN);
        mpfr_add(r43816, r43805, r43812, MPFR_RNDN);
        mpfr_div(r43817, r43812, r43816, MPFR_RNDN);
        mpfr_pow(r43818, r43817, r43812, MPFR_RNDN);
        mpfr_div(r43819, r43818, r43812, MPFR_RNDN);
        mpfr_exp(r43820, r43819, MPFR_RNDN);
        mpfr_log(r43821, r43820, MPFR_RNDN);
        if (mpfr_get_si(r43815, MPFR_RNDN)) { mpfr_set(r43822, r43819, MPFR_RNDN); } else { mpfr_set(r43822, r43821, MPFR_RNDN); };
        if (mpfr_get_si(r43807, MPFR_RNDN)) { mpfr_set(r43823, r43813, MPFR_RNDN); } else { mpfr_set(r43823, r43822, MPFR_RNDN); };
        return mpfr_get_d(r43823, MPFR_RNDN);
}

static mpfr_t r43824, r43825, r43826, r43827, r43828, r43829, r43830, r43831, r43832, r43833, r43834, r43835, r43836, r43837, r43838, r43839, r43840, r43841, r43842;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43824);
        mpfr_init_set_str(r43825, "-3.7026164623559706e+74", 10, MPFR_RNDN);
        mpfr_init(r43826);
        mpfr_init_set_str(r43827, "1", 10, MPFR_RNDN);
        mpfr_init(r43828);
        mpfr_init(r43829);
        mpfr_init(r43830);
        mpfr_init(r43831);
        mpfr_init(r43832);
        mpfr_init_set_str(r43833, "12558354769362.566", 10, MPFR_RNDN);
        mpfr_init(r43834);
        mpfr_init(r43835);
        mpfr_init(r43836);
        mpfr_init(r43837);
        mpfr_init(r43838);
        mpfr_init(r43839);
        mpfr_init(r43840);
        mpfr_init(r43841);
        mpfr_init(r43842);
}

double f_dm(double x, double y) {
        mpfr_set_d(r43824, y, MPFR_RNDN);
        ;
        mpfr_set_si(r43826, mpfr_cmp(r43824, r43825) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r43828, r43827, r43824, MPFR_RNDN);
        mpfr_neg(r43829, r43828, MPFR_RNDN);
        mpfr_exp(r43830, r43829, MPFR_RNDN);
        mpfr_set_d(r43831, x, MPFR_RNDN);
        mpfr_div(r43832, r43830, r43831, MPFR_RNDN);
        ;
        mpfr_set_si(r43834, mpfr_cmp(r43824, r43833) <= 0, MPFR_RNDN);
        mpfr_add(r43835, r43824, r43831, MPFR_RNDN);
        mpfr_div(r43836, r43831, r43835, MPFR_RNDN);
        mpfr_pow(r43837, r43836, r43831, MPFR_RNDN);
        mpfr_div(r43838, r43837, r43831, MPFR_RNDN);
        mpfr_exp(r43839, r43838, MPFR_RNDN);
        mpfr_log(r43840, r43839, MPFR_RNDN);
        if (mpfr_get_si(r43834, MPFR_RNDN)) { mpfr_set(r43841, r43838, MPFR_RNDN); } else { mpfr_set(r43841, r43840, MPFR_RNDN); };
        if (mpfr_get_si(r43826, MPFR_RNDN)) { mpfr_set(r43842, r43832, MPFR_RNDN); } else { mpfr_set(r43842, r43841, MPFR_RNDN); };
        return mpfr_get_d(r43842, MPFR_RNDN);
}

