#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 r9538 = x;
        float r9539 = y;
        float r9540 = z;
        float r9541 = log(r9540);
        float r9542 = r9539 * r9541;
        float r9543 = t;
        float r9544 = 1.0;
        float r9545 = r9543 - r9544;
        float r9546 = a;
        float r9547 = log(r9546);
        float r9548 = r9545 * r9547;
        float r9549 = r9542 + r9548;
        float r9550 = b;
        float r9551 = r9549 - r9550;
        float r9552 = exp(r9551);
        float r9553 = r9538 * r9552;
        float r9554 = r9553 / r9539;
        return r9554;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r9555 = x;
        double r9556 = y;
        double r9557 = z;
        double r9558 = log(r9557);
        double r9559 = r9556 * r9558;
        double r9560 = t;
        double r9561 = 1.0;
        double r9562 = r9560 - r9561;
        double r9563 = a;
        double r9564 = log(r9563);
        double r9565 = r9562 * r9564;
        double r9566 = r9559 + r9565;
        double r9567 = b;
        double r9568 = r9566 - r9567;
        double r9569 = exp(r9568);
        double r9570 = r9555 * r9569;
        double r9571 = r9570 / r9556;
        return r9571;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r9572 = x;
        float r9573 = b;
        float r9574 = exp(r9573);
        float r9575 = z;
        float r9576 = y;
        float r9577 = pow(r9575, r9576);
        float r9578 = r9577 / r9576;
        float r9579 = r9574 / r9578;
        float r9580 = r9572 / r9579;
        float r9581 = -2.030640281883843e+302;
        bool r9582 = r9580 <= r9581;
        float r9583 = -2.2168054990413952e-259;
        bool r9584 = r9580 <= r9583;
        float r9585 = !r9584;
        bool r9586 = r9582 || r9585;
        float r9587 = exp(1.0);
        float r9588 = t;
        float r9589 = 1.0;
        float r9590 = r9588 - r9589;
        float r9591 = a;
        float r9592 = log(r9591);
        float r9593 = r9590 * r9592;
        float r9594 = log(r9575);
        float r9595 = r9576 * r9594;
        float r9596 = r9593 + r9595;
        float r9597 = r9596 - r9573;
        float r9598 = pow(r9587, r9597);
        float r9599 = r9572 * r9598;
        float r9600 = r9599 / r9576;
        float r9601 = 1;
        float r9602 = r9601 / r9575;
        float r9603 = -r9576;
        float r9604 = pow(r9602, r9603);
        float r9605 = r9576 / r9572;
        float r9606 = r9604 / r9605;
        float r9607 = r9601 / r9591;
        float r9608 = pow(r9607, r9590);
        float r9609 = r9574 * r9608;
        float r9610 = r9606 / r9609;
        float r9611 = r9586 ? r9600 : r9610;
        return r9611;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r9612 = x;
        double r9613 = b;
        double r9614 = exp(r9613);
        double r9615 = z;
        double r9616 = y;
        double r9617 = pow(r9615, r9616);
        double r9618 = r9617 / r9616;
        double r9619 = r9614 / r9618;
        double r9620 = r9612 / r9619;
        double r9621 = -2.030640281883843e+302;
        bool r9622 = r9620 <= r9621;
        double r9623 = -2.2168054990413952e-259;
        bool r9624 = r9620 <= r9623;
        double r9625 = !r9624;
        bool r9626 = r9622 || r9625;
        double r9627 = exp(1.0);
        double r9628 = t;
        double r9629 = 1.0;
        double r9630 = r9628 - r9629;
        double r9631 = a;
        double r9632 = log(r9631);
        double r9633 = r9630 * r9632;
        double r9634 = log(r9615);
        double r9635 = r9616 * r9634;
        double r9636 = r9633 + r9635;
        double r9637 = r9636 - r9613;
        double r9638 = pow(r9627, r9637);
        double r9639 = r9612 * r9638;
        double r9640 = r9639 / r9616;
        double r9641 = 1;
        double r9642 = r9641 / r9615;
        double r9643 = -r9616;
        double r9644 = pow(r9642, r9643);
        double r9645 = r9616 / r9612;
        double r9646 = r9644 / r9645;
        double r9647 = r9641 / r9631;
        double r9648 = pow(r9647, r9630);
        double r9649 = r9614 * r9648;
        double r9650 = r9646 / r9649;
        double r9651 = r9626 ? r9640 : r9650;
        return r9651;
}

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 r9652, r9653, r9654, r9655, r9656, r9657, r9658, r9659, r9660, r9661, r9662, r9663, r9664, r9665, r9666, r9667, r9668;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9652);
        mpfr_init(r9653);
        mpfr_init(r9654);
        mpfr_init(r9655);
        mpfr_init(r9656);
        mpfr_init(r9657);
        mpfr_init_set_str(r9658, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9659);
        mpfr_init(r9660);
        mpfr_init(r9661);
        mpfr_init(r9662);
        mpfr_init(r9663);
        mpfr_init(r9664);
        mpfr_init(r9665);
        mpfr_init(r9666);
        mpfr_init(r9667);
        mpfr_init(r9668);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9652, x, MPFR_RNDN);
        mpfr_set_d(r9653, y, MPFR_RNDN);
        mpfr_set_d(r9654, z, MPFR_RNDN);
        mpfr_log(r9655, r9654, MPFR_RNDN);
        mpfr_mul(r9656, r9653, r9655, MPFR_RNDN);
        mpfr_set_d(r9657, t, MPFR_RNDN);
        ;
        mpfr_sub(r9659, r9657, r9658, MPFR_RNDN);
        mpfr_set_d(r9660, a, MPFR_RNDN);
        mpfr_log(r9661, r9660, MPFR_RNDN);
        mpfr_mul(r9662, r9659, r9661, MPFR_RNDN);
        mpfr_add(r9663, r9656, r9662, MPFR_RNDN);
        mpfr_set_d(r9664, b, MPFR_RNDN);
        mpfr_sub(r9665, r9663, r9664, MPFR_RNDN);
        mpfr_exp(r9666, r9665, MPFR_RNDN);
        mpfr_mul(r9667, r9652, r9666, MPFR_RNDN);
        mpfr_div(r9668, r9667, r9653, MPFR_RNDN);
        return mpfr_get_d(r9668, MPFR_RNDN);
}

static mpfr_t r9669, r9670, r9671, r9672, r9673, r9674, r9675, r9676, r9677, r9678, r9679, r9680, r9681, r9682, r9683, r9684, r9685, r9686, r9687, r9688, r9689, r9690, r9691, r9692, r9693, r9694, r9695, r9696, r9697, r9698, r9699, r9700, r9701, r9702, r9703, r9704, r9705, r9706, r9707, r9708;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9669);
        mpfr_init(r9670);
        mpfr_init(r9671);
        mpfr_init(r9672);
        mpfr_init(r9673);
        mpfr_init(r9674);
        mpfr_init(r9675);
        mpfr_init(r9676);
        mpfr_init(r9677);
        mpfr_init_set_str(r9678, "-2.030640281883843e+302", 10, MPFR_RNDN);
        mpfr_init(r9679);
        mpfr_init_set_str(r9680, "-2.2168054990413952e-259", 10, MPFR_RNDN);
        mpfr_init(r9681);
        mpfr_init(r9682);
        mpfr_init(r9683);
        mpfr_init(r9684);
        mpfr_init(r9685);
        mpfr_init_set_str(r9686, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9687);
        mpfr_init(r9688);
        mpfr_init(r9689);
        mpfr_init(r9690);
        mpfr_init(r9691);
        mpfr_init(r9692);
        mpfr_init(r9693);
        mpfr_init(r9694);
        mpfr_init(r9695);
        mpfr_init(r9696);
        mpfr_init(r9697);
        mpfr_init_set_str(r9698, "1", 10, MPFR_RNDN);
        mpfr_init(r9699);
        mpfr_init(r9700);
        mpfr_init(r9701);
        mpfr_init(r9702);
        mpfr_init(r9703);
        mpfr_init(r9704);
        mpfr_init(r9705);
        mpfr_init(r9706);
        mpfr_init(r9707);
        mpfr_init(r9708);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9669, x, MPFR_RNDN);
        mpfr_set_d(r9670, b, MPFR_RNDN);
        mpfr_exp(r9671, r9670, MPFR_RNDN);
        mpfr_set_d(r9672, z, MPFR_RNDN);
        mpfr_set_d(r9673, y, MPFR_RNDN);
        mpfr_pow(r9674, r9672, r9673, MPFR_RNDN);
        mpfr_div(r9675, r9674, r9673, MPFR_RNDN);
        mpfr_div(r9676, r9671, r9675, MPFR_RNDN);
        mpfr_div(r9677, r9669, r9676, MPFR_RNDN);
        ;
        mpfr_set_si(r9679, mpfr_cmp(r9677, r9678) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9681, mpfr_cmp(r9677, r9680) <= 0, MPFR_RNDN);
        mpfr_set_si(r9682, !mpfr_get_si(r9681, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9683, mpfr_get_si(r9679, MPFR_RNDN) || mpfr_get_si(r9682, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9684, 1, MPFR_RNDN), mpfr_const_exp(r9684, r9684, MPFR_RNDN);
        mpfr_set_d(r9685, t, MPFR_RNDN);
        ;
        mpfr_sub(r9687, r9685, r9686, MPFR_RNDN);
        mpfr_set_d(r9688, a, MPFR_RNDN);
        mpfr_log(r9689, r9688, MPFR_RNDN);
        mpfr_mul(r9690, r9687, r9689, MPFR_RNDN);
        mpfr_log(r9691, r9672, MPFR_RNDN);
        mpfr_mul(r9692, r9673, r9691, MPFR_RNDN);
        mpfr_add(r9693, r9690, r9692, MPFR_RNDN);
        mpfr_sub(r9694, r9693, r9670, MPFR_RNDN);
        mpfr_pow(r9695, r9684, r9694, MPFR_RNDN);
        mpfr_mul(r9696, r9669, r9695, MPFR_RNDN);
        mpfr_div(r9697, r9696, r9673, MPFR_RNDN);
        ;
        mpfr_div(r9699, r9698, r9672, MPFR_RNDN);
        mpfr_neg(r9700, r9673, MPFR_RNDN);
        mpfr_pow(r9701, r9699, r9700, MPFR_RNDN);
        mpfr_div(r9702, r9673, r9669, MPFR_RNDN);
        mpfr_div(r9703, r9701, r9702, MPFR_RNDN);
        mpfr_div(r9704, r9698, r9688, MPFR_RNDN);
        mpfr_pow(r9705, r9704, r9687, MPFR_RNDN);
        mpfr_mul(r9706, r9671, r9705, MPFR_RNDN);
        mpfr_div(r9707, r9703, r9706, MPFR_RNDN);
        if (mpfr_get_si(r9683, MPFR_RNDN)) { mpfr_set(r9708, r9697, MPFR_RNDN); } else { mpfr_set(r9708, r9707, MPFR_RNDN); };
        return mpfr_get_d(r9708, MPFR_RNDN);
}

static mpfr_t r9709, r9710, r9711, r9712, r9713, r9714, r9715, r9716, r9717, r9718, r9719, r9720, r9721, r9722, r9723, r9724, r9725, r9726, r9727, r9728, r9729, r9730, r9731, r9732, r9733, r9734, r9735, r9736, r9737, r9738, r9739, r9740, r9741, r9742, r9743, r9744, r9745, r9746, r9747, r9748;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9709);
        mpfr_init(r9710);
        mpfr_init(r9711);
        mpfr_init(r9712);
        mpfr_init(r9713);
        mpfr_init(r9714);
        mpfr_init(r9715);
        mpfr_init(r9716);
        mpfr_init(r9717);
        mpfr_init_set_str(r9718, "-2.030640281883843e+302", 10, MPFR_RNDN);
        mpfr_init(r9719);
        mpfr_init_set_str(r9720, "-2.2168054990413952e-259", 10, MPFR_RNDN);
        mpfr_init(r9721);
        mpfr_init(r9722);
        mpfr_init(r9723);
        mpfr_init(r9724);
        mpfr_init(r9725);
        mpfr_init_set_str(r9726, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9727);
        mpfr_init(r9728);
        mpfr_init(r9729);
        mpfr_init(r9730);
        mpfr_init(r9731);
        mpfr_init(r9732);
        mpfr_init(r9733);
        mpfr_init(r9734);
        mpfr_init(r9735);
        mpfr_init(r9736);
        mpfr_init(r9737);
        mpfr_init_set_str(r9738, "1", 10, MPFR_RNDN);
        mpfr_init(r9739);
        mpfr_init(r9740);
        mpfr_init(r9741);
        mpfr_init(r9742);
        mpfr_init(r9743);
        mpfr_init(r9744);
        mpfr_init(r9745);
        mpfr_init(r9746);
        mpfr_init(r9747);
        mpfr_init(r9748);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9709, x, MPFR_RNDN);
        mpfr_set_d(r9710, b, MPFR_RNDN);
        mpfr_exp(r9711, r9710, MPFR_RNDN);
        mpfr_set_d(r9712, z, MPFR_RNDN);
        mpfr_set_d(r9713, y, MPFR_RNDN);
        mpfr_pow(r9714, r9712, r9713, MPFR_RNDN);
        mpfr_div(r9715, r9714, r9713, MPFR_RNDN);
        mpfr_div(r9716, r9711, r9715, MPFR_RNDN);
        mpfr_div(r9717, r9709, r9716, MPFR_RNDN);
        ;
        mpfr_set_si(r9719, mpfr_cmp(r9717, r9718) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9721, mpfr_cmp(r9717, r9720) <= 0, MPFR_RNDN);
        mpfr_set_si(r9722, !mpfr_get_si(r9721, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9723, mpfr_get_si(r9719, MPFR_RNDN) || mpfr_get_si(r9722, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9724, 1, MPFR_RNDN), mpfr_const_exp(r9724, r9724, MPFR_RNDN);
        mpfr_set_d(r9725, t, MPFR_RNDN);
        ;
        mpfr_sub(r9727, r9725, r9726, MPFR_RNDN);
        mpfr_set_d(r9728, a, MPFR_RNDN);
        mpfr_log(r9729, r9728, MPFR_RNDN);
        mpfr_mul(r9730, r9727, r9729, MPFR_RNDN);
        mpfr_log(r9731, r9712, MPFR_RNDN);
        mpfr_mul(r9732, r9713, r9731, MPFR_RNDN);
        mpfr_add(r9733, r9730, r9732, MPFR_RNDN);
        mpfr_sub(r9734, r9733, r9710, MPFR_RNDN);
        mpfr_pow(r9735, r9724, r9734, MPFR_RNDN);
        mpfr_mul(r9736, r9709, r9735, MPFR_RNDN);
        mpfr_div(r9737, r9736, r9713, MPFR_RNDN);
        ;
        mpfr_div(r9739, r9738, r9712, MPFR_RNDN);
        mpfr_neg(r9740, r9713, MPFR_RNDN);
        mpfr_pow(r9741, r9739, r9740, MPFR_RNDN);
        mpfr_div(r9742, r9713, r9709, MPFR_RNDN);
        mpfr_div(r9743, r9741, r9742, MPFR_RNDN);
        mpfr_div(r9744, r9738, r9728, MPFR_RNDN);
        mpfr_pow(r9745, r9744, r9727, MPFR_RNDN);
        mpfr_mul(r9746, r9711, r9745, MPFR_RNDN);
        mpfr_div(r9747, r9743, r9746, MPFR_RNDN);
        if (mpfr_get_si(r9723, MPFR_RNDN)) { mpfr_set(r9748, r9737, MPFR_RNDN); } else { mpfr_set(r9748, r9747, MPFR_RNDN); };
        return mpfr_get_d(r9748, MPFR_RNDN);
}

