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

char *name = "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2";

double f_if(float x, float y, float z, float t, float a, float b) {
        float r25674 = x;
        float r25675 = y;
        float r25676 = z;
        float r25677 = log(r25676);
        float r25678 = r25675 * r25677;
        float r25679 = t;
        float r25680 = 1.0;
        float r25681 = r25679 - r25680;
        float r25682 = a;
        float r25683 = log(r25682);
        float r25684 = r25681 * r25683;
        float r25685 = r25678 + r25684;
        float r25686 = b;
        float r25687 = r25685 - r25686;
        float r25688 = exp(r25687);
        float r25689 = r25674 * r25688;
        float r25690 = r25689 / r25675;
        return r25690;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r25691 = x;
        double r25692 = y;
        double r25693 = z;
        double r25694 = log(r25693);
        double r25695 = r25692 * r25694;
        double r25696 = t;
        double r25697 = 1.0;
        double r25698 = r25696 - r25697;
        double r25699 = a;
        double r25700 = log(r25699);
        double r25701 = r25698 * r25700;
        double r25702 = r25695 + r25701;
        double r25703 = b;
        double r25704 = r25702 - r25703;
        double r25705 = exp(r25704);
        double r25706 = r25691 * r25705;
        double r25707 = r25706 / r25692;
        return r25707;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r25708 = 1;
        float r25709 = b;
        float r25710 = exp(r25709);
        float r25711 = y;
        float r25712 = x;
        float r25713 = r25711 / r25712;
        float r25714 = z;
        float r25715 = pow(r25714, r25711);
        float r25716 = r25713 / r25715;
        float r25717 = a;
        float r25718 = t;
        float r25719 = 1.0;
        float r25720 = r25718 - r25719;
        float r25721 = pow(r25717, r25720);
        float r25722 = r25716 / r25721;
        float r25723 = r25710 * r25722;
        float r25724 = r25708 / r25723;
        float r25725 = 1.5183379026880107e+299;
        bool r25726 = r25724 <= r25725;
        float r25727 = -r25719;
        float r25728 = pow(r25717, r25727);
        float r25729 = r25715 * r25728;
        float r25730 = r25713 * r25710;
        float r25731 = -r25718;
        float r25732 = pow(r25717, r25731);
        float r25733 = r25730 * r25732;
        float r25734 = r25729 / r25733;
        float r25735 = exp(1.0);
        float r25736 = log(r25714);
        float r25737 = r25711 * r25736;
        float r25738 = log(r25717);
        float r25739 = r25720 * r25738;
        float r25740 = r25737 + r25739;
        float r25741 = r25740 - r25709;
        float r25742 = pow(r25735, r25741);
        float r25743 = r25712 * r25742;
        float r25744 = r25743 / r25711;
        float r25745 = r25726 ? r25734 : r25744;
        return r25745;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r25746 = 1;
        double r25747 = b;
        double r25748 = exp(r25747);
        double r25749 = y;
        double r25750 = x;
        double r25751 = r25749 / r25750;
        double r25752 = z;
        double r25753 = pow(r25752, r25749);
        double r25754 = r25751 / r25753;
        double r25755 = a;
        double r25756 = t;
        double r25757 = 1.0;
        double r25758 = r25756 - r25757;
        double r25759 = pow(r25755, r25758);
        double r25760 = r25754 / r25759;
        double r25761 = r25748 * r25760;
        double r25762 = r25746 / r25761;
        double r25763 = 1.5183379026880107e+299;
        bool r25764 = r25762 <= r25763;
        double r25765 = -r25757;
        double r25766 = pow(r25755, r25765);
        double r25767 = r25753 * r25766;
        double r25768 = r25751 * r25748;
        double r25769 = -r25756;
        double r25770 = pow(r25755, r25769);
        double r25771 = r25768 * r25770;
        double r25772 = r25767 / r25771;
        double r25773 = exp(1.0);
        double r25774 = log(r25752);
        double r25775 = r25749 * r25774;
        double r25776 = log(r25755);
        double r25777 = r25758 * r25776;
        double r25778 = r25775 + r25777;
        double r25779 = r25778 - r25747;
        double r25780 = pow(r25773, r25779);
        double r25781 = r25750 * r25780;
        double r25782 = r25781 / r25749;
        double r25783 = r25764 ? r25772 : r25782;
        return r25783;
}

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 r25784, r25785, r25786, r25787, r25788, r25789, r25790, r25791, r25792, r25793, r25794, r25795, r25796, r25797, r25798, r25799, r25800;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r25784);
        mpfr_init(r25785);
        mpfr_init(r25786);
        mpfr_init(r25787);
        mpfr_init(r25788);
        mpfr_init(r25789);
        mpfr_init_set_str(r25790, "1.0", 10, MPFR_RNDN);
        mpfr_init(r25791);
        mpfr_init(r25792);
        mpfr_init(r25793);
        mpfr_init(r25794);
        mpfr_init(r25795);
        mpfr_init(r25796);
        mpfr_init(r25797);
        mpfr_init(r25798);
        mpfr_init(r25799);
        mpfr_init(r25800);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r25784, x, MPFR_RNDN);
        mpfr_set_d(r25785, y, MPFR_RNDN);
        mpfr_set_d(r25786, z, MPFR_RNDN);
        mpfr_log(r25787, r25786, MPFR_RNDN);
        mpfr_mul(r25788, r25785, r25787, MPFR_RNDN);
        mpfr_set_d(r25789, t, MPFR_RNDN);
        ;
        mpfr_sub(r25791, r25789, r25790, MPFR_RNDN);
        mpfr_set_d(r25792, a, MPFR_RNDN);
        mpfr_log(r25793, r25792, MPFR_RNDN);
        mpfr_mul(r25794, r25791, r25793, MPFR_RNDN);
        mpfr_add(r25795, r25788, r25794, MPFR_RNDN);
        mpfr_set_d(r25796, b, MPFR_RNDN);
        mpfr_sub(r25797, r25795, r25796, MPFR_RNDN);
        mpfr_exp(r25798, r25797, MPFR_RNDN);
        mpfr_mul(r25799, r25784, r25798, MPFR_RNDN);
        mpfr_div(r25800, r25799, r25785, MPFR_RNDN);
        return mpfr_get_d(r25800, MPFR_RNDN);
}

static mpfr_t r25801, r25802, r25803, r25804, r25805, r25806, r25807, r25808, r25809, r25810, r25811, r25812, r25813, r25814, r25815, r25816, r25817, r25818, r25819, r25820, r25821, r25822, r25823, r25824, r25825, r25826, r25827, r25828, r25829, r25830, r25831, r25832, r25833, r25834, r25835, r25836, r25837, r25838;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25801, "1", 10, MPFR_RNDN);
        mpfr_init(r25802);
        mpfr_init(r25803);
        mpfr_init(r25804);
        mpfr_init(r25805);
        mpfr_init(r25806);
        mpfr_init(r25807);
        mpfr_init(r25808);
        mpfr_init(r25809);
        mpfr_init(r25810);
        mpfr_init(r25811);
        mpfr_init_set_str(r25812, "1.0", 10, MPFR_RNDN);
        mpfr_init(r25813);
        mpfr_init(r25814);
        mpfr_init(r25815);
        mpfr_init(r25816);
        mpfr_init(r25817);
        mpfr_init_set_str(r25818, "1.5183379026880107e+299", 10, MPFR_RNDN);
        mpfr_init(r25819);
        mpfr_init(r25820);
        mpfr_init(r25821);
        mpfr_init(r25822);
        mpfr_init(r25823);
        mpfr_init(r25824);
        mpfr_init(r25825);
        mpfr_init(r25826);
        mpfr_init(r25827);
        mpfr_init(r25828);
        mpfr_init(r25829);
        mpfr_init(r25830);
        mpfr_init(r25831);
        mpfr_init(r25832);
        mpfr_init(r25833);
        mpfr_init(r25834);
        mpfr_init(r25835);
        mpfr_init(r25836);
        mpfr_init(r25837);
        mpfr_init(r25838);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        ;
        mpfr_set_d(r25802, b, MPFR_RNDN);
        mpfr_exp(r25803, r25802, MPFR_RNDN);
        mpfr_set_d(r25804, y, MPFR_RNDN);
        mpfr_set_d(r25805, x, MPFR_RNDN);
        mpfr_div(r25806, r25804, r25805, MPFR_RNDN);
        mpfr_set_d(r25807, z, MPFR_RNDN);
        mpfr_pow(r25808, r25807, r25804, MPFR_RNDN);
        mpfr_div(r25809, r25806, r25808, MPFR_RNDN);
        mpfr_set_d(r25810, a, MPFR_RNDN);
        mpfr_set_d(r25811, t, MPFR_RNDN);
        ;
        mpfr_sub(r25813, r25811, r25812, MPFR_RNDN);
        mpfr_pow(r25814, r25810, r25813, MPFR_RNDN);
        mpfr_div(r25815, r25809, r25814, MPFR_RNDN);
        mpfr_mul(r25816, r25803, r25815, MPFR_RNDN);
        mpfr_div(r25817, r25801, r25816, MPFR_RNDN);
        ;
        mpfr_set_si(r25819, mpfr_cmp(r25817, r25818) <= 0, MPFR_RNDN);
        mpfr_neg(r25820, r25812, MPFR_RNDN);
        mpfr_pow(r25821, r25810, r25820, MPFR_RNDN);
        mpfr_mul(r25822, r25808, r25821, MPFR_RNDN);
        mpfr_mul(r25823, r25806, r25803, MPFR_RNDN);
        mpfr_neg(r25824, r25811, MPFR_RNDN);
        mpfr_pow(r25825, r25810, r25824, MPFR_RNDN);
        mpfr_mul(r25826, r25823, r25825, MPFR_RNDN);
        mpfr_div(r25827, r25822, r25826, MPFR_RNDN);
        mpfr_set_si(r25828, 1, MPFR_RNDN), mpfr_const_exp(r25828, r25828, MPFR_RNDN);
        mpfr_log(r25829, r25807, MPFR_RNDN);
        mpfr_mul(r25830, r25804, r25829, MPFR_RNDN);
        mpfr_log(r25831, r25810, MPFR_RNDN);
        mpfr_mul(r25832, r25813, r25831, MPFR_RNDN);
        mpfr_add(r25833, r25830, r25832, MPFR_RNDN);
        mpfr_sub(r25834, r25833, r25802, MPFR_RNDN);
        mpfr_pow(r25835, r25828, r25834, MPFR_RNDN);
        mpfr_mul(r25836, r25805, r25835, MPFR_RNDN);
        mpfr_div(r25837, r25836, r25804, MPFR_RNDN);
        if (mpfr_get_si(r25819, MPFR_RNDN)) { mpfr_set(r25838, r25827, MPFR_RNDN); } else { mpfr_set(r25838, r25837, MPFR_RNDN); };
        return mpfr_get_d(r25838, MPFR_RNDN);
}

static mpfr_t r25839, r25840, r25841, r25842, r25843, r25844, r25845, r25846, r25847, r25848, r25849, r25850, r25851, r25852, r25853, r25854, r25855, r25856, r25857, r25858, r25859, r25860, r25861, r25862, r25863, r25864, r25865, r25866, r25867, r25868, r25869, r25870, r25871, r25872, r25873, r25874, r25875, r25876;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25839, "1", 10, MPFR_RNDN);
        mpfr_init(r25840);
        mpfr_init(r25841);
        mpfr_init(r25842);
        mpfr_init(r25843);
        mpfr_init(r25844);
        mpfr_init(r25845);
        mpfr_init(r25846);
        mpfr_init(r25847);
        mpfr_init(r25848);
        mpfr_init(r25849);
        mpfr_init_set_str(r25850, "1.0", 10, MPFR_RNDN);
        mpfr_init(r25851);
        mpfr_init(r25852);
        mpfr_init(r25853);
        mpfr_init(r25854);
        mpfr_init(r25855);
        mpfr_init_set_str(r25856, "1.5183379026880107e+299", 10, MPFR_RNDN);
        mpfr_init(r25857);
        mpfr_init(r25858);
        mpfr_init(r25859);
        mpfr_init(r25860);
        mpfr_init(r25861);
        mpfr_init(r25862);
        mpfr_init(r25863);
        mpfr_init(r25864);
        mpfr_init(r25865);
        mpfr_init(r25866);
        mpfr_init(r25867);
        mpfr_init(r25868);
        mpfr_init(r25869);
        mpfr_init(r25870);
        mpfr_init(r25871);
        mpfr_init(r25872);
        mpfr_init(r25873);
        mpfr_init(r25874);
        mpfr_init(r25875);
        mpfr_init(r25876);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        ;
        mpfr_set_d(r25840, b, MPFR_RNDN);
        mpfr_exp(r25841, r25840, MPFR_RNDN);
        mpfr_set_d(r25842, y, MPFR_RNDN);
        mpfr_set_d(r25843, x, MPFR_RNDN);
        mpfr_div(r25844, r25842, r25843, MPFR_RNDN);
        mpfr_set_d(r25845, z, MPFR_RNDN);
        mpfr_pow(r25846, r25845, r25842, MPFR_RNDN);
        mpfr_div(r25847, r25844, r25846, MPFR_RNDN);
        mpfr_set_d(r25848, a, MPFR_RNDN);
        mpfr_set_d(r25849, t, MPFR_RNDN);
        ;
        mpfr_sub(r25851, r25849, r25850, MPFR_RNDN);
        mpfr_pow(r25852, r25848, r25851, MPFR_RNDN);
        mpfr_div(r25853, r25847, r25852, MPFR_RNDN);
        mpfr_mul(r25854, r25841, r25853, MPFR_RNDN);
        mpfr_div(r25855, r25839, r25854, MPFR_RNDN);
        ;
        mpfr_set_si(r25857, mpfr_cmp(r25855, r25856) <= 0, MPFR_RNDN);
        mpfr_neg(r25858, r25850, MPFR_RNDN);
        mpfr_pow(r25859, r25848, r25858, MPFR_RNDN);
        mpfr_mul(r25860, r25846, r25859, MPFR_RNDN);
        mpfr_mul(r25861, r25844, r25841, MPFR_RNDN);
        mpfr_neg(r25862, r25849, MPFR_RNDN);
        mpfr_pow(r25863, r25848, r25862, MPFR_RNDN);
        mpfr_mul(r25864, r25861, r25863, MPFR_RNDN);
        mpfr_div(r25865, r25860, r25864, MPFR_RNDN);
        mpfr_set_si(r25866, 1, MPFR_RNDN), mpfr_const_exp(r25866, r25866, MPFR_RNDN);
        mpfr_log(r25867, r25845, MPFR_RNDN);
        mpfr_mul(r25868, r25842, r25867, MPFR_RNDN);
        mpfr_log(r25869, r25848, MPFR_RNDN);
        mpfr_mul(r25870, r25851, r25869, MPFR_RNDN);
        mpfr_add(r25871, r25868, r25870, MPFR_RNDN);
        mpfr_sub(r25872, r25871, r25840, MPFR_RNDN);
        mpfr_pow(r25873, r25866, r25872, MPFR_RNDN);
        mpfr_mul(r25874, r25843, r25873, MPFR_RNDN);
        mpfr_div(r25875, r25874, r25842, MPFR_RNDN);
        if (mpfr_get_si(r25857, MPFR_RNDN)) { mpfr_set(r25876, r25865, MPFR_RNDN); } else { mpfr_set(r25876, r25875, MPFR_RNDN); };
        return mpfr_get_d(r25876, MPFR_RNDN);
}

