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

double f_if(float x, float y, float z, float t, float a, float b) {
        float r41565 = x;
        float r41566 = y;
        float r41567 = z;
        float r41568 = log(r41567);
        float r41569 = r41566 * r41568;
        float r41570 = t;
        float r41571 = 1.0f;
        float r41572 = r41570 - r41571;
        float r41573 = a;
        float r41574 = log(r41573);
        float r41575 = r41572 * r41574;
        float r41576 = r41569 + r41575;
        float r41577 = b;
        float r41578 = r41576 - r41577;
        float r41579 = exp(r41578);
        float r41580 = r41565 * r41579;
        float r41581 = r41580 / r41566;
        return r41581;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r41582 = x;
        double r41583 = y;
        double r41584 = z;
        double r41585 = log(r41584);
        double r41586 = r41583 * r41585;
        double r41587 = t;
        double r41588 = 1.0;
        double r41589 = r41587 - r41588;
        double r41590 = a;
        double r41591 = log(r41590);
        double r41592 = r41589 * r41591;
        double r41593 = r41586 + r41592;
        double r41594 = b;
        double r41595 = r41593 - r41594;
        double r41596 = exp(r41595);
        double r41597 = r41582 * r41596;
        double r41598 = r41597 / r41583;
        return r41598;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r41599 = y;
        float r41600 = -6.408792807834615e+52f;
        bool r41601 = r41599 <= r41600;
        float r41602 = z;
        float r41603 = pow(r41602, r41599);
        float r41604 = x;
        float r41605 = r41603 * r41604;
        float r41606 = a;
        float r41607 = r41599 * r41606;
        float r41608 = r41605 / r41607;
        float r41609 = 1.0f;
        float r41610 = b;
        float r41611 = r41609 + r41610;
        float r41612 = t;
        float r41613 = log(r41606);
        float r41614 = r41612 * r41613;
        float r41615 = r41611 - r41614;
        float r41616 = r41608 / r41615;
        float r41617 = -69.525409230544f;
        bool r41618 = r41599 <= r41617;
        float r41619 = r41604 / r41599;
        float r41620 = log(r41602);
        float r41621 = r41604 * r41620;
        float r41622 = 0.5f;
        float r41623 = r41620 * r41620;
        float r41624 = r41604 * r41623;
        float r41625 = r41599 * r41624;
        float r41626 = r41622 * r41625;
        float r41627 = r41621 + r41626;
        float r41628 = r41619 + r41627;
        float r41629 = 1.0f;
        float r41630 = r41612 - r41629;
        float r41631 = r41613 * r41630;
        float r41632 = r41610 - r41631;
        float r41633 = exp(r41632);
        float r41634 = r41628 / r41633;
        float r41635 = 1.4591773572605082e-06f;
        bool r41636 = r41599 <= r41635;
        float r41637 = r41633 * r41599;
        float r41638 = r41605 / r41637;
        float r41639 = r41636 ? r41638 : r41616;
        float r41640 = r41618 ? r41634 : r41639;
        float r41641 = r41601 ? r41616 : r41640;
        return r41641;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r41642 = y;
        double r41643 = -6.408792807834615e+52;
        bool r41644 = r41642 <= r41643;
        double r41645 = z;
        double r41646 = pow(r41645, r41642);
        double r41647 = x;
        double r41648 = r41646 * r41647;
        double r41649 = a;
        double r41650 = r41642 * r41649;
        double r41651 = r41648 / r41650;
        double r41652 = 1.0;
        double r41653 = b;
        double r41654 = r41652 + r41653;
        double r41655 = t;
        double r41656 = log(r41649);
        double r41657 = r41655 * r41656;
        double r41658 = r41654 - r41657;
        double r41659 = r41651 / r41658;
        double r41660 = -69.525409230544;
        bool r41661 = r41642 <= r41660;
        double r41662 = r41647 / r41642;
        double r41663 = log(r41645);
        double r41664 = r41647 * r41663;
        double r41665 = 0.5;
        double r41666 = r41663 * r41663;
        double r41667 = r41647 * r41666;
        double r41668 = r41642 * r41667;
        double r41669 = r41665 * r41668;
        double r41670 = r41664 + r41669;
        double r41671 = r41662 + r41670;
        double r41672 = 1.0;
        double r41673 = r41655 - r41672;
        double r41674 = r41656 * r41673;
        double r41675 = r41653 - r41674;
        double r41676 = exp(r41675);
        double r41677 = r41671 / r41676;
        double r41678 = 1.4591773572605082e-06;
        bool r41679 = r41642 <= r41678;
        double r41680 = r41676 * r41642;
        double r41681 = r41648 / r41680;
        double r41682 = r41679 ? r41681 : r41659;
        double r41683 = r41661 ? r41677 : r41682;
        double r41684 = r41644 ? r41659 : r41683;
        return r41684;
}

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 r41685, r41686, r41687, r41688, r41689, r41690, r41691, r41692, r41693, r41694, r41695, r41696, r41697, r41698, r41699, r41700, r41701;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r41685);
        mpfr_init(r41686);
        mpfr_init(r41687);
        mpfr_init(r41688);
        mpfr_init(r41689);
        mpfr_init(r41690);
        mpfr_init_set_str(r41691, "1.0", 10, MPFR_RNDN);
        mpfr_init(r41692);
        mpfr_init(r41693);
        mpfr_init(r41694);
        mpfr_init(r41695);
        mpfr_init(r41696);
        mpfr_init(r41697);
        mpfr_init(r41698);
        mpfr_init(r41699);
        mpfr_init(r41700);
        mpfr_init(r41701);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r41685, x, MPFR_RNDN);
        mpfr_set_d(r41686, y, MPFR_RNDN);
        mpfr_set_d(r41687, z, MPFR_RNDN);
        mpfr_log(r41688, r41687, MPFR_RNDN);
        mpfr_mul(r41689, r41686, r41688, MPFR_RNDN);
        mpfr_set_d(r41690, t, MPFR_RNDN);
        ;
        mpfr_sub(r41692, r41690, r41691, MPFR_RNDN);
        mpfr_set_d(r41693, a, MPFR_RNDN);
        mpfr_log(r41694, r41693, MPFR_RNDN);
        mpfr_mul(r41695, r41692, r41694, MPFR_RNDN);
        mpfr_add(r41696, r41689, r41695, MPFR_RNDN);
        mpfr_set_d(r41697, b, MPFR_RNDN);
        mpfr_sub(r41698, r41696, r41697, MPFR_RNDN);
        mpfr_exp(r41699, r41698, MPFR_RNDN);
        mpfr_mul(r41700, r41685, r41699, MPFR_RNDN);
        mpfr_div(r41701, r41700, r41686, MPFR_RNDN);
        return mpfr_get_d(r41701, MPFR_RNDN);
}

static mpfr_t r41702, r41703, r41704, r41705, r41706, r41707, r41708, r41709, r41710, r41711, r41712, r41713, r41714, r41715, r41716, r41717, r41718, r41719, r41720, r41721, r41722, r41723, r41724, r41725, r41726, r41727, r41728, r41729, r41730, r41731, r41732, r41733, r41734, r41735, r41736, r41737, r41738, r41739, r41740, r41741, r41742, r41743, r41744;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r41702);
        mpfr_init_set_str(r41703, "-6.408792807834615e+52", 10, MPFR_RNDN);
        mpfr_init(r41704);
        mpfr_init(r41705);
        mpfr_init(r41706);
        mpfr_init(r41707);
        mpfr_init(r41708);
        mpfr_init(r41709);
        mpfr_init(r41710);
        mpfr_init(r41711);
        mpfr_init_set_str(r41712, "1", 10, MPFR_RNDN);
        mpfr_init(r41713);
        mpfr_init(r41714);
        mpfr_init(r41715);
        mpfr_init(r41716);
        mpfr_init(r41717);
        mpfr_init(r41718);
        mpfr_init(r41719);
        mpfr_init_set_str(r41720, "-69.525409230544", 10, MPFR_RNDN);
        mpfr_init(r41721);
        mpfr_init(r41722);
        mpfr_init(r41723);
        mpfr_init(r41724);
        mpfr_init_set_str(r41725, "1/2", 10, MPFR_RNDN);
        mpfr_init(r41726);
        mpfr_init(r41727);
        mpfr_init(r41728);
        mpfr_init(r41729);
        mpfr_init(r41730);
        mpfr_init(r41731);
        mpfr_init_set_str(r41732, "1.0", 10, MPFR_RNDN);
        mpfr_init(r41733);
        mpfr_init(r41734);
        mpfr_init(r41735);
        mpfr_init(r41736);
        mpfr_init(r41737);
        mpfr_init_set_str(r41738, "1.4591773572605082e-06", 10, MPFR_RNDN);
        mpfr_init(r41739);
        mpfr_init(r41740);
        mpfr_init(r41741);
        mpfr_init(r41742);
        mpfr_init(r41743);
        mpfr_init(r41744);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r41702, y, MPFR_RNDN);
        ;
        mpfr_set_si(r41704, mpfr_cmp(r41702, r41703) <= 0, MPFR_RNDN);
        mpfr_set_d(r41705, z, MPFR_RNDN);
        mpfr_pow(r41706, r41705, r41702, MPFR_RNDN);
        mpfr_set_d(r41707, x, MPFR_RNDN);
        mpfr_mul(r41708, r41706, r41707, MPFR_RNDN);
        mpfr_set_d(r41709, a, MPFR_RNDN);
        mpfr_mul(r41710, r41702, r41709, MPFR_RNDN);
        mpfr_div(r41711, r41708, r41710, MPFR_RNDN);
        ;
        mpfr_set_d(r41713, b, MPFR_RNDN);
        mpfr_add(r41714, r41712, r41713, MPFR_RNDN);
        mpfr_set_d(r41715, t, MPFR_RNDN);
        mpfr_log(r41716, r41709, MPFR_RNDN);
        mpfr_mul(r41717, r41715, r41716, MPFR_RNDN);
        mpfr_sub(r41718, r41714, r41717, MPFR_RNDN);
        mpfr_div(r41719, r41711, r41718, MPFR_RNDN);
        ;
        mpfr_set_si(r41721, mpfr_cmp(r41702, r41720) <= 0, MPFR_RNDN);
        mpfr_div(r41722, r41707, r41702, MPFR_RNDN);
        mpfr_log(r41723, r41705, MPFR_RNDN);
        mpfr_mul(r41724, r41707, r41723, MPFR_RNDN);
        ;
        mpfr_sqr(r41726, r41723, MPFR_RNDN);
        mpfr_mul(r41727, r41707, r41726, MPFR_RNDN);
        mpfr_mul(r41728, r41702, r41727, MPFR_RNDN);
        mpfr_mul(r41729, r41725, r41728, MPFR_RNDN);
        mpfr_add(r41730, r41724, r41729, MPFR_RNDN);
        mpfr_add(r41731, r41722, r41730, MPFR_RNDN);
        ;
        mpfr_sub(r41733, r41715, r41732, MPFR_RNDN);
        mpfr_mul(r41734, r41716, r41733, MPFR_RNDN);
        mpfr_sub(r41735, r41713, r41734, MPFR_RNDN);
        mpfr_exp(r41736, r41735, MPFR_RNDN);
        mpfr_div(r41737, r41731, r41736, MPFR_RNDN);
        ;
        mpfr_set_si(r41739, mpfr_cmp(r41702, r41738) <= 0, MPFR_RNDN);
        mpfr_mul(r41740, r41736, r41702, MPFR_RNDN);
        mpfr_div(r41741, r41708, r41740, MPFR_RNDN);
        if (mpfr_get_si(r41739, MPFR_RNDN)) { mpfr_set(r41742, r41741, MPFR_RNDN); } else { mpfr_set(r41742, r41719, MPFR_RNDN); };
        if (mpfr_get_si(r41721, MPFR_RNDN)) { mpfr_set(r41743, r41737, MPFR_RNDN); } else { mpfr_set(r41743, r41742, MPFR_RNDN); };
        if (mpfr_get_si(r41704, MPFR_RNDN)) { mpfr_set(r41744, r41719, MPFR_RNDN); } else { mpfr_set(r41744, r41743, MPFR_RNDN); };
        return mpfr_get_d(r41744, MPFR_RNDN);
}

static mpfr_t r41745, r41746, r41747, r41748, r41749, r41750, r41751, r41752, r41753, r41754, r41755, r41756, r41757, r41758, r41759, r41760, r41761, r41762, r41763, r41764, r41765, r41766, r41767, r41768, r41769, r41770, r41771, r41772, r41773, r41774, r41775, r41776, r41777, r41778, r41779, r41780, r41781, r41782, r41783, r41784, r41785, r41786, r41787;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r41745);
        mpfr_init_set_str(r41746, "-6.408792807834615e+52", 10, MPFR_RNDN);
        mpfr_init(r41747);
        mpfr_init(r41748);
        mpfr_init(r41749);
        mpfr_init(r41750);
        mpfr_init(r41751);
        mpfr_init(r41752);
        mpfr_init(r41753);
        mpfr_init(r41754);
        mpfr_init_set_str(r41755, "1", 10, MPFR_RNDN);
        mpfr_init(r41756);
        mpfr_init(r41757);
        mpfr_init(r41758);
        mpfr_init(r41759);
        mpfr_init(r41760);
        mpfr_init(r41761);
        mpfr_init(r41762);
        mpfr_init_set_str(r41763, "-69.525409230544", 10, MPFR_RNDN);
        mpfr_init(r41764);
        mpfr_init(r41765);
        mpfr_init(r41766);
        mpfr_init(r41767);
        mpfr_init_set_str(r41768, "1/2", 10, MPFR_RNDN);
        mpfr_init(r41769);
        mpfr_init(r41770);
        mpfr_init(r41771);
        mpfr_init(r41772);
        mpfr_init(r41773);
        mpfr_init(r41774);
        mpfr_init_set_str(r41775, "1.0", 10, MPFR_RNDN);
        mpfr_init(r41776);
        mpfr_init(r41777);
        mpfr_init(r41778);
        mpfr_init(r41779);
        mpfr_init(r41780);
        mpfr_init_set_str(r41781, "1.4591773572605082e-06", 10, MPFR_RNDN);
        mpfr_init(r41782);
        mpfr_init(r41783);
        mpfr_init(r41784);
        mpfr_init(r41785);
        mpfr_init(r41786);
        mpfr_init(r41787);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r41745, y, MPFR_RNDN);
        ;
        mpfr_set_si(r41747, mpfr_cmp(r41745, r41746) <= 0, MPFR_RNDN);
        mpfr_set_d(r41748, z, MPFR_RNDN);
        mpfr_pow(r41749, r41748, r41745, MPFR_RNDN);
        mpfr_set_d(r41750, x, MPFR_RNDN);
        mpfr_mul(r41751, r41749, r41750, MPFR_RNDN);
        mpfr_set_d(r41752, a, MPFR_RNDN);
        mpfr_mul(r41753, r41745, r41752, MPFR_RNDN);
        mpfr_div(r41754, r41751, r41753, MPFR_RNDN);
        ;
        mpfr_set_d(r41756, b, MPFR_RNDN);
        mpfr_add(r41757, r41755, r41756, MPFR_RNDN);
        mpfr_set_d(r41758, t, MPFR_RNDN);
        mpfr_log(r41759, r41752, MPFR_RNDN);
        mpfr_mul(r41760, r41758, r41759, MPFR_RNDN);
        mpfr_sub(r41761, r41757, r41760, MPFR_RNDN);
        mpfr_div(r41762, r41754, r41761, MPFR_RNDN);
        ;
        mpfr_set_si(r41764, mpfr_cmp(r41745, r41763) <= 0, MPFR_RNDN);
        mpfr_div(r41765, r41750, r41745, MPFR_RNDN);
        mpfr_log(r41766, r41748, MPFR_RNDN);
        mpfr_mul(r41767, r41750, r41766, MPFR_RNDN);
        ;
        mpfr_sqr(r41769, r41766, MPFR_RNDN);
        mpfr_mul(r41770, r41750, r41769, MPFR_RNDN);
        mpfr_mul(r41771, r41745, r41770, MPFR_RNDN);
        mpfr_mul(r41772, r41768, r41771, MPFR_RNDN);
        mpfr_add(r41773, r41767, r41772, MPFR_RNDN);
        mpfr_add(r41774, r41765, r41773, MPFR_RNDN);
        ;
        mpfr_sub(r41776, r41758, r41775, MPFR_RNDN);
        mpfr_mul(r41777, r41759, r41776, MPFR_RNDN);
        mpfr_sub(r41778, r41756, r41777, MPFR_RNDN);
        mpfr_exp(r41779, r41778, MPFR_RNDN);
        mpfr_div(r41780, r41774, r41779, MPFR_RNDN);
        ;
        mpfr_set_si(r41782, mpfr_cmp(r41745, r41781) <= 0, MPFR_RNDN);
        mpfr_mul(r41783, r41779, r41745, MPFR_RNDN);
        mpfr_div(r41784, r41751, r41783, MPFR_RNDN);
        if (mpfr_get_si(r41782, MPFR_RNDN)) { mpfr_set(r41785, r41784, MPFR_RNDN); } else { mpfr_set(r41785, r41762, MPFR_RNDN); };
        if (mpfr_get_si(r41764, MPFR_RNDN)) { mpfr_set(r41786, r41780, MPFR_RNDN); } else { mpfr_set(r41786, r41785, MPFR_RNDN); };
        if (mpfr_get_si(r41747, MPFR_RNDN)) { mpfr_set(r41787, r41762, MPFR_RNDN); } else { mpfr_set(r41787, r41786, MPFR_RNDN); };
        return mpfr_get_d(r41787, MPFR_RNDN);
}

