#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 r40720 = x;
        float r40721 = y;
        float r40722 = r40720 + r40721;
        float r40723 = r40720 / r40722;
        float r40724 = log(r40723);
        float r40725 = r40720 * r40724;
        float r40726 = exp(r40725);
        float r40727 = r40726 / r40720;
        return r40727;
}

double f_id(double x, double y) {
        double r40728 = x;
        double r40729 = y;
        double r40730 = r40728 + r40729;
        double r40731 = r40728 / r40730;
        double r40732 = log(r40731);
        double r40733 = r40728 * r40732;
        double r40734 = exp(r40733);
        double r40735 = r40734 / r40728;
        return r40735;
}


double f_of(float x, float y) {
        float r40736 = y;
        float r40737 = -9.070182556111448e+26f;
        bool r40738 = r40736 <= r40737;
        float r40739 = 1.0f;
        float r40740 = r40739 / r40736;
        float r40741 = -r40740;
        float r40742 = exp(r40741);
        float r40743 = x;
        float r40744 = r40742 / r40743;
        float r40745 = 3161902.943760184f;
        bool r40746 = r40736 <= r40745;
        float r40747 = r40743 + r40736;
        float r40748 = r40743 / r40747;
        float r40749 = pow(r40748, r40743);
        float r40750 = r40749 / r40743;
        float r40751 = 4.863799357303041e+32f;
        bool r40752 = r40736 <= r40751;
        float r40753 = exp(r40750);
        float r40754 = log(r40753);
        float r40755 = 3.6621373869794807e+53f;
        bool r40756 = r40736 <= r40755;
        float r40757 = r40756 ? r40750 : r40754;
        float r40758 = r40752 ? r40754 : r40757;
        float r40759 = r40746 ? r40750 : r40758;
        float r40760 = r40738 ? r40744 : r40759;
        return r40760;
}

double f_od(double x, double y) {
        double r40761 = y;
        double r40762 = -9.070182556111448e+26;
        bool r40763 = r40761 <= r40762;
        double r40764 = 1.0;
        double r40765 = r40764 / r40761;
        double r40766 = -r40765;
        double r40767 = exp(r40766);
        double r40768 = x;
        double r40769 = r40767 / r40768;
        double r40770 = 3161902.943760184;
        bool r40771 = r40761 <= r40770;
        double r40772 = r40768 + r40761;
        double r40773 = r40768 / r40772;
        double r40774 = pow(r40773, r40768);
        double r40775 = r40774 / r40768;
        double r40776 = 4.863799357303041e+32;
        bool r40777 = r40761 <= r40776;
        double r40778 = exp(r40775);
        double r40779 = log(r40778);
        double r40780 = 3.6621373869794807e+53;
        bool r40781 = r40761 <= r40780;
        double r40782 = r40781 ? r40775 : r40779;
        double r40783 = r40777 ? r40779 : r40782;
        double r40784 = r40771 ? r40775 : r40783;
        double r40785 = r40763 ? r40769 : r40784;
        return r40785;
}

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 r40786, r40787, r40788, r40789, r40790, r40791, r40792, r40793;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r40786);
        mpfr_init(r40787);
        mpfr_init(r40788);
        mpfr_init(r40789);
        mpfr_init(r40790);
        mpfr_init(r40791);
        mpfr_init(r40792);
        mpfr_init(r40793);
}

double f_im(double x, double y) {
        mpfr_set_d(r40786, x, MPFR_RNDN);
        mpfr_set_d(r40787, y, MPFR_RNDN);
        mpfr_add(r40788, r40786, r40787, MPFR_RNDN);
        mpfr_div(r40789, r40786, r40788, MPFR_RNDN);
        mpfr_log(r40790, r40789, MPFR_RNDN);
        mpfr_mul(r40791, r40786, r40790, MPFR_RNDN);
        mpfr_exp(r40792, r40791, MPFR_RNDN);
        mpfr_div(r40793, r40792, r40786, MPFR_RNDN);
        return mpfr_get_d(r40793, MPFR_RNDN);
}

static mpfr_t r40794, r40795, r40796, r40797, r40798, r40799, r40800, r40801, r40802, r40803, r40804, r40805, r40806, r40807, r40808, r40809, r40810, r40811, r40812, r40813, r40814, r40815, r40816, r40817, r40818;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r40794);
        mpfr_init_set_str(r40795, "-9.070182556111448e+26", 10, MPFR_RNDN);
        mpfr_init(r40796);
        mpfr_init_set_str(r40797, "1", 10, MPFR_RNDN);
        mpfr_init(r40798);
        mpfr_init(r40799);
        mpfr_init(r40800);
        mpfr_init(r40801);
        mpfr_init(r40802);
        mpfr_init_set_str(r40803, "3161902.943760184", 10, MPFR_RNDN);
        mpfr_init(r40804);
        mpfr_init(r40805);
        mpfr_init(r40806);
        mpfr_init(r40807);
        mpfr_init(r40808);
        mpfr_init_set_str(r40809, "4.863799357303041e+32", 10, MPFR_RNDN);
        mpfr_init(r40810);
        mpfr_init(r40811);
        mpfr_init(r40812);
        mpfr_init_set_str(r40813, "3.6621373869794807e+53", 10, MPFR_RNDN);
        mpfr_init(r40814);
        mpfr_init(r40815);
        mpfr_init(r40816);
        mpfr_init(r40817);
        mpfr_init(r40818);
}

double f_fm(double x, double y) {
        mpfr_set_d(r40794, y, MPFR_RNDN);
        ;
        mpfr_set_si(r40796, mpfr_cmp(r40794, r40795) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r40798, r40797, r40794, MPFR_RNDN);
        mpfr_neg(r40799, r40798, MPFR_RNDN);
        mpfr_exp(r40800, r40799, MPFR_RNDN);
        mpfr_set_d(r40801, x, MPFR_RNDN);
        mpfr_div(r40802, r40800, r40801, MPFR_RNDN);
        ;
        mpfr_set_si(r40804, mpfr_cmp(r40794, r40803) <= 0, MPFR_RNDN);
        mpfr_add(r40805, r40801, r40794, MPFR_RNDN);
        mpfr_div(r40806, r40801, r40805, MPFR_RNDN);
        mpfr_pow(r40807, r40806, r40801, MPFR_RNDN);
        mpfr_div(r40808, r40807, r40801, MPFR_RNDN);
        ;
        mpfr_set_si(r40810, mpfr_cmp(r40794, r40809) <= 0, MPFR_RNDN);
        mpfr_exp(r40811, r40808, MPFR_RNDN);
        mpfr_log(r40812, r40811, MPFR_RNDN);
        ;
        mpfr_set_si(r40814, mpfr_cmp(r40794, r40813) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r40814, MPFR_RNDN)) { mpfr_set(r40815, r40808, MPFR_RNDN); } else { mpfr_set(r40815, r40812, MPFR_RNDN); };
        if (mpfr_get_si(r40810, MPFR_RNDN)) { mpfr_set(r40816, r40812, MPFR_RNDN); } else { mpfr_set(r40816, r40815, MPFR_RNDN); };
        if (mpfr_get_si(r40804, MPFR_RNDN)) { mpfr_set(r40817, r40808, MPFR_RNDN); } else { mpfr_set(r40817, r40816, MPFR_RNDN); };
        if (mpfr_get_si(r40796, MPFR_RNDN)) { mpfr_set(r40818, r40802, MPFR_RNDN); } else { mpfr_set(r40818, r40817, MPFR_RNDN); };
        return mpfr_get_d(r40818, MPFR_RNDN);
}

static mpfr_t r40819, r40820, r40821, r40822, r40823, r40824, r40825, r40826, r40827, r40828, r40829, r40830, r40831, r40832, r40833, r40834, r40835, r40836, r40837, r40838, r40839, r40840, r40841, r40842, r40843;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r40819);
        mpfr_init_set_str(r40820, "-9.070182556111448e+26", 10, MPFR_RNDN);
        mpfr_init(r40821);
        mpfr_init_set_str(r40822, "1", 10, MPFR_RNDN);
        mpfr_init(r40823);
        mpfr_init(r40824);
        mpfr_init(r40825);
        mpfr_init(r40826);
        mpfr_init(r40827);
        mpfr_init_set_str(r40828, "3161902.943760184", 10, MPFR_RNDN);
        mpfr_init(r40829);
        mpfr_init(r40830);
        mpfr_init(r40831);
        mpfr_init(r40832);
        mpfr_init(r40833);
        mpfr_init_set_str(r40834, "4.863799357303041e+32", 10, MPFR_RNDN);
        mpfr_init(r40835);
        mpfr_init(r40836);
        mpfr_init(r40837);
        mpfr_init_set_str(r40838, "3.6621373869794807e+53", 10, MPFR_RNDN);
        mpfr_init(r40839);
        mpfr_init(r40840);
        mpfr_init(r40841);
        mpfr_init(r40842);
        mpfr_init(r40843);
}

double f_dm(double x, double y) {
        mpfr_set_d(r40819, y, MPFR_RNDN);
        ;
        mpfr_set_si(r40821, mpfr_cmp(r40819, r40820) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r40823, r40822, r40819, MPFR_RNDN);
        mpfr_neg(r40824, r40823, MPFR_RNDN);
        mpfr_exp(r40825, r40824, MPFR_RNDN);
        mpfr_set_d(r40826, x, MPFR_RNDN);
        mpfr_div(r40827, r40825, r40826, MPFR_RNDN);
        ;
        mpfr_set_si(r40829, mpfr_cmp(r40819, r40828) <= 0, MPFR_RNDN);
        mpfr_add(r40830, r40826, r40819, MPFR_RNDN);
        mpfr_div(r40831, r40826, r40830, MPFR_RNDN);
        mpfr_pow(r40832, r40831, r40826, MPFR_RNDN);
        mpfr_div(r40833, r40832, r40826, MPFR_RNDN);
        ;
        mpfr_set_si(r40835, mpfr_cmp(r40819, r40834) <= 0, MPFR_RNDN);
        mpfr_exp(r40836, r40833, MPFR_RNDN);
        mpfr_log(r40837, r40836, MPFR_RNDN);
        ;
        mpfr_set_si(r40839, mpfr_cmp(r40819, r40838) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r40839, MPFR_RNDN)) { mpfr_set(r40840, r40833, MPFR_RNDN); } else { mpfr_set(r40840, r40837, MPFR_RNDN); };
        if (mpfr_get_si(r40835, MPFR_RNDN)) { mpfr_set(r40841, r40837, MPFR_RNDN); } else { mpfr_set(r40841, r40840, MPFR_RNDN); };
        if (mpfr_get_si(r40829, MPFR_RNDN)) { mpfr_set(r40842, r40833, MPFR_RNDN); } else { mpfr_set(r40842, r40841, MPFR_RNDN); };
        if (mpfr_get_si(r40821, MPFR_RNDN)) { mpfr_set(r40843, r40827, MPFR_RNDN); } else { mpfr_set(r40843, r40842, MPFR_RNDN); };
        return mpfr_get_d(r40843, MPFR_RNDN);
}

