#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 r9516 = x;
        float r9517 = y;
        float r9518 = z;
        float r9519 = log(r9518);
        float r9520 = r9517 * r9519;
        float r9521 = t;
        float r9522 = 1.0;
        float r9523 = r9521 - r9522;
        float r9524 = a;
        float r9525 = log(r9524);
        float r9526 = r9523 * r9525;
        float r9527 = r9520 + r9526;
        float r9528 = b;
        float r9529 = r9527 - r9528;
        float r9530 = exp(r9529);
        float r9531 = r9516 * r9530;
        float r9532 = r9531 / r9517;
        return r9532;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r9533 = x;
        double r9534 = y;
        double r9535 = z;
        double r9536 = log(r9535);
        double r9537 = r9534 * r9536;
        double r9538 = t;
        double r9539 = 1.0;
        double r9540 = r9538 - r9539;
        double r9541 = a;
        double r9542 = log(r9541);
        double r9543 = r9540 * r9542;
        double r9544 = r9537 + r9543;
        double r9545 = b;
        double r9546 = r9544 - r9545;
        double r9547 = exp(r9546);
        double r9548 = r9533 * r9547;
        double r9549 = r9548 / r9534;
        return r9549;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r9550 = b;
        float r9551 = exp(r9550);
        float r9552 = a;
        float r9553 = t;
        float r9554 = 1.0;
        float r9555 = r9553 - r9554;
        float r9556 = pow(r9552, r9555);
        float r9557 = r9551 / r9556;
        float r9558 = 3.501376709226839e-214;
        bool r9559 = r9557 <= r9558;
        float r9560 = 1.88510480953367e+301;
        bool r9561 = r9557 <= r9560;
        float r9562 = !r9561;
        bool r9563 = r9559 || r9562;
        float r9564 = x;
        float r9565 = z;
        float r9566 = log(r9565);
        float r9567 = y;
        float r9568 = r9566 * r9567;
        float r9569 = log(r9552);
        float r9570 = r9569 * r9555;
        float r9571 = r9568 + r9570;
        float r9572 = r9571 - r9550;
        float r9573 = cbrt(r9572);
        float r9574 = r9573 * r9573;
        float r9575 = exp(r9574);
        float r9576 = pow(r9575, r9573);
        float r9577 = r9564 * r9576;
        float r9578 = r9577 / r9567;
        float r9579 = r9567 * r9551;
        float r9580 = pow(r9552, r9553);
        float r9581 = pow(r9565, r9567);
        float r9582 = -r9554;
        float r9583 = pow(r9552, r9582);
        float r9584 = r9581 * r9583;
        float r9585 = r9580 * r9584;
        float r9586 = r9579 / r9585;
        float r9587 = r9564 / r9586;
        float r9588 = r9563 ? r9578 : r9587;
        return r9588;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r9589 = b;
        double r9590 = exp(r9589);
        double r9591 = a;
        double r9592 = t;
        double r9593 = 1.0;
        double r9594 = r9592 - r9593;
        double r9595 = pow(r9591, r9594);
        double r9596 = r9590 / r9595;
        double r9597 = 3.501376709226839e-214;
        bool r9598 = r9596 <= r9597;
        double r9599 = 1.88510480953367e+301;
        bool r9600 = r9596 <= r9599;
        double r9601 = !r9600;
        bool r9602 = r9598 || r9601;
        double r9603 = x;
        double r9604 = z;
        double r9605 = log(r9604);
        double r9606 = y;
        double r9607 = r9605 * r9606;
        double r9608 = log(r9591);
        double r9609 = r9608 * r9594;
        double r9610 = r9607 + r9609;
        double r9611 = r9610 - r9589;
        double r9612 = cbrt(r9611);
        double r9613 = r9612 * r9612;
        double r9614 = exp(r9613);
        double r9615 = pow(r9614, r9612);
        double r9616 = r9603 * r9615;
        double r9617 = r9616 / r9606;
        double r9618 = r9606 * r9590;
        double r9619 = pow(r9591, r9592);
        double r9620 = pow(r9604, r9606);
        double r9621 = -r9593;
        double r9622 = pow(r9591, r9621);
        double r9623 = r9620 * r9622;
        double r9624 = r9619 * r9623;
        double r9625 = r9618 / r9624;
        double r9626 = r9603 / r9625;
        double r9627 = r9602 ? r9617 : r9626;
        return r9627;
}

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 r9628, r9629, r9630, r9631, r9632, r9633, r9634, r9635, r9636, r9637, r9638, r9639, r9640, r9641, r9642, r9643, r9644;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9628);
        mpfr_init(r9629);
        mpfr_init(r9630);
        mpfr_init(r9631);
        mpfr_init(r9632);
        mpfr_init(r9633);
        mpfr_init_set_str(r9634, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9635);
        mpfr_init(r9636);
        mpfr_init(r9637);
        mpfr_init(r9638);
        mpfr_init(r9639);
        mpfr_init(r9640);
        mpfr_init(r9641);
        mpfr_init(r9642);
        mpfr_init(r9643);
        mpfr_init(r9644);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9628, x, MPFR_RNDN);
        mpfr_set_d(r9629, y, MPFR_RNDN);
        mpfr_set_d(r9630, z, MPFR_RNDN);
        mpfr_log(r9631, r9630, MPFR_RNDN);
        mpfr_mul(r9632, r9629, r9631, MPFR_RNDN);
        mpfr_set_d(r9633, t, MPFR_RNDN);
        ;
        mpfr_sub(r9635, r9633, r9634, MPFR_RNDN);
        mpfr_set_d(r9636, a, MPFR_RNDN);
        mpfr_log(r9637, r9636, MPFR_RNDN);
        mpfr_mul(r9638, r9635, r9637, MPFR_RNDN);
        mpfr_add(r9639, r9632, r9638, MPFR_RNDN);
        mpfr_set_d(r9640, b, MPFR_RNDN);
        mpfr_sub(r9641, r9639, r9640, MPFR_RNDN);
        mpfr_exp(r9642, r9641, MPFR_RNDN);
        mpfr_mul(r9643, r9628, r9642, MPFR_RNDN);
        mpfr_div(r9644, r9643, r9629, MPFR_RNDN);
        return mpfr_get_d(r9644, MPFR_RNDN);
}

static mpfr_t r9645, r9646, r9647, r9648, r9649, r9650, r9651, r9652, r9653, r9654, r9655, r9656, r9657, r9658, r9659, r9660, r9661, r9662, r9663, r9664, r9665, r9666, r9667, r9668, r9669, r9670, r9671, r9672, r9673, r9674, r9675, r9676, r9677, r9678, r9679, r9680, r9681, r9682, r9683;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9645);
        mpfr_init(r9646);
        mpfr_init(r9647);
        mpfr_init(r9648);
        mpfr_init_set_str(r9649, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9650);
        mpfr_init(r9651);
        mpfr_init(r9652);
        mpfr_init_set_str(r9653, "3.501376709226839e-214", 10, MPFR_RNDN);
        mpfr_init(r9654);
        mpfr_init_set_str(r9655, "1.88510480953367e+301", 10, MPFR_RNDN);
        mpfr_init(r9656);
        mpfr_init(r9657);
        mpfr_init(r9658);
        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);
        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(r9678);
        mpfr_init(r9679);
        mpfr_init(r9680);
        mpfr_init(r9681);
        mpfr_init(r9682);
        mpfr_init(r9683);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9645, b, MPFR_RNDN);
        mpfr_exp(r9646, r9645, MPFR_RNDN);
        mpfr_set_d(r9647, a, MPFR_RNDN);
        mpfr_set_d(r9648, t, MPFR_RNDN);
        ;
        mpfr_sub(r9650, r9648, r9649, MPFR_RNDN);
        mpfr_pow(r9651, r9647, r9650, MPFR_RNDN);
        mpfr_div(r9652, r9646, r9651, MPFR_RNDN);
        ;
        mpfr_set_si(r9654, mpfr_cmp(r9652, r9653) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9656, mpfr_cmp(r9652, r9655) <= 0, MPFR_RNDN);
        mpfr_set_si(r9657, !mpfr_get_si(r9656, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9658, mpfr_get_si(r9654, MPFR_RNDN) || mpfr_get_si(r9657, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9659, x, MPFR_RNDN);
        mpfr_set_d(r9660, z, MPFR_RNDN);
        mpfr_log(r9661, r9660, MPFR_RNDN);
        mpfr_set_d(r9662, y, MPFR_RNDN);
        mpfr_mul(r9663, r9661, r9662, MPFR_RNDN);
        mpfr_log(r9664, r9647, MPFR_RNDN);
        mpfr_mul(r9665, r9664, r9650, MPFR_RNDN);
        mpfr_add(r9666, r9663, r9665, MPFR_RNDN);
        mpfr_sub(r9667, r9666, r9645, MPFR_RNDN);
        mpfr_cbrt(r9668, r9667, MPFR_RNDN);
        mpfr_mul(r9669, r9668, r9668, MPFR_RNDN);
        mpfr_exp(r9670, r9669, MPFR_RNDN);
        mpfr_pow(r9671, r9670, r9668, MPFR_RNDN);
        mpfr_mul(r9672, r9659, r9671, MPFR_RNDN);
        mpfr_div(r9673, r9672, r9662, MPFR_RNDN);
        mpfr_mul(r9674, r9662, r9646, MPFR_RNDN);
        mpfr_pow(r9675, r9647, r9648, MPFR_RNDN);
        mpfr_pow(r9676, r9660, r9662, MPFR_RNDN);
        mpfr_neg(r9677, r9649, MPFR_RNDN);
        mpfr_pow(r9678, r9647, r9677, MPFR_RNDN);
        mpfr_mul(r9679, r9676, r9678, MPFR_RNDN);
        mpfr_mul(r9680, r9675, r9679, MPFR_RNDN);
        mpfr_div(r9681, r9674, r9680, MPFR_RNDN);
        mpfr_div(r9682, r9659, r9681, MPFR_RNDN);
        if (mpfr_get_si(r9658, MPFR_RNDN)) { mpfr_set(r9683, r9673, MPFR_RNDN); } else { mpfr_set(r9683, r9682, MPFR_RNDN); };
        return mpfr_get_d(r9683, MPFR_RNDN);
}

static mpfr_t 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, r9709, r9710, r9711, r9712, r9713, r9714, r9715, r9716, r9717, r9718, r9719, r9720, r9721, r9722;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9684);
        mpfr_init(r9685);
        mpfr_init(r9686);
        mpfr_init(r9687);
        mpfr_init_set_str(r9688, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9689);
        mpfr_init(r9690);
        mpfr_init(r9691);
        mpfr_init_set_str(r9692, "3.501376709226839e-214", 10, MPFR_RNDN);
        mpfr_init(r9693);
        mpfr_init_set_str(r9694, "1.88510480953367e+301", 10, MPFR_RNDN);
        mpfr_init(r9695);
        mpfr_init(r9696);
        mpfr_init(r9697);
        mpfr_init(r9698);
        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);
        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(r9718);
        mpfr_init(r9719);
        mpfr_init(r9720);
        mpfr_init(r9721);
        mpfr_init(r9722);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r9684, b, MPFR_RNDN);
        mpfr_exp(r9685, r9684, MPFR_RNDN);
        mpfr_set_d(r9686, a, MPFR_RNDN);
        mpfr_set_d(r9687, t, MPFR_RNDN);
        ;
        mpfr_sub(r9689, r9687, r9688, MPFR_RNDN);
        mpfr_pow(r9690, r9686, r9689, MPFR_RNDN);
        mpfr_div(r9691, r9685, r9690, MPFR_RNDN);
        ;
        mpfr_set_si(r9693, mpfr_cmp(r9691, r9692) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9695, mpfr_cmp(r9691, r9694) <= 0, MPFR_RNDN);
        mpfr_set_si(r9696, !mpfr_get_si(r9695, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9697, mpfr_get_si(r9693, MPFR_RNDN) || mpfr_get_si(r9696, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9698, x, MPFR_RNDN);
        mpfr_set_d(r9699, z, MPFR_RNDN);
        mpfr_log(r9700, r9699, MPFR_RNDN);
        mpfr_set_d(r9701, y, MPFR_RNDN);
        mpfr_mul(r9702, r9700, r9701, MPFR_RNDN);
        mpfr_log(r9703, r9686, MPFR_RNDN);
        mpfr_mul(r9704, r9703, r9689, MPFR_RNDN);
        mpfr_add(r9705, r9702, r9704, MPFR_RNDN);
        mpfr_sub(r9706, r9705, r9684, MPFR_RNDN);
        mpfr_cbrt(r9707, r9706, MPFR_RNDN);
        mpfr_mul(r9708, r9707, r9707, MPFR_RNDN);
        mpfr_exp(r9709, r9708, MPFR_RNDN);
        mpfr_pow(r9710, r9709, r9707, MPFR_RNDN);
        mpfr_mul(r9711, r9698, r9710, MPFR_RNDN);
        mpfr_div(r9712, r9711, r9701, MPFR_RNDN);
        mpfr_mul(r9713, r9701, r9685, MPFR_RNDN);
        mpfr_pow(r9714, r9686, r9687, MPFR_RNDN);
        mpfr_pow(r9715, r9699, r9701, MPFR_RNDN);
        mpfr_neg(r9716, r9688, MPFR_RNDN);
        mpfr_pow(r9717, r9686, r9716, MPFR_RNDN);
        mpfr_mul(r9718, r9715, r9717, MPFR_RNDN);
        mpfr_mul(r9719, r9714, r9718, MPFR_RNDN);
        mpfr_div(r9720, r9713, r9719, MPFR_RNDN);
        mpfr_div(r9721, r9698, r9720, MPFR_RNDN);
        if (mpfr_get_si(r9697, MPFR_RNDN)) { mpfr_set(r9722, r9712, MPFR_RNDN); } else { mpfr_set(r9722, r9721, MPFR_RNDN); };
        return mpfr_get_d(r9722, MPFR_RNDN);
}

