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

double f_if(float x, float y, float z, float t, float a, float b, float c) {
        float r25510 = x;
        float r25511 = y;
        float r25512 = 2.0;
        float r25513 = z;
        float r25514 = t;
        float r25515 = a;
        float r25516 = r25514 + r25515;
        float r25517 = sqrt(r25516);
        float r25518 = r25513 * r25517;
        float r25519 = r25518 / r25514;
        float r25520 = b;
        float r25521 = c;
        float r25522 = r25520 - r25521;
        float r25523 = 5.0;
        float r25524 = 6.0;
        float r25525 = r25523 / r25524;
        float r25526 = r25515 + r25525;
        float r25527 = 3.0;
        float r25528 = r25514 * r25527;
        float r25529 = r25512 / r25528;
        float r25530 = r25526 - r25529;
        float r25531 = r25522 * r25530;
        float r25532 = r25519 - r25531;
        float r25533 = r25512 * r25532;
        float r25534 = exp(r25533);
        float r25535 = r25511 * r25534;
        float r25536 = r25510 + r25535;
        float r25537 = r25510 / r25536;
        return r25537;
}

double f_id(double x, double y, double z, double t, double a, double b, double c) {
        double r25538 = x;
        double r25539 = y;
        double r25540 = 2.0;
        double r25541 = z;
        double r25542 = t;
        double r25543 = a;
        double r25544 = r25542 + r25543;
        double r25545 = sqrt(r25544);
        double r25546 = r25541 * r25545;
        double r25547 = r25546 / r25542;
        double r25548 = b;
        double r25549 = c;
        double r25550 = r25548 - r25549;
        double r25551 = 5.0;
        double r25552 = 6.0;
        double r25553 = r25551 / r25552;
        double r25554 = r25543 + r25553;
        double r25555 = 3.0;
        double r25556 = r25542 * r25555;
        double r25557 = r25540 / r25556;
        double r25558 = r25554 - r25557;
        double r25559 = r25550 * r25558;
        double r25560 = r25547 - r25559;
        double r25561 = r25540 * r25560;
        double r25562 = exp(r25561);
        double r25563 = r25539 * r25562;
        double r25564 = r25538 + r25563;
        double r25565 = r25538 / r25564;
        return r25565;
}


double f_of(float x, float y, float z, float t, float a, float b, float c) {
        float r25566 = x;
        float r25567 = y;
        float r25568 = 2.0;
        float r25569 = z;
        float r25570 = t;
        float r25571 = a;
        float r25572 = r25570 + r25571;
        float r25573 = sqrt(r25572);
        float r25574 = r25570 / r25573;
        float r25575 = r25569 / r25574;
        float r25576 = b;
        float r25577 = c;
        float r25578 = r25576 - r25577;
        float r25579 = 5.0;
        float r25580 = 6.0;
        float r25581 = r25579 / r25580;
        float r25582 = r25571 + r25581;
        float r25583 = 3.0;
        float r25584 = r25570 * r25583;
        float r25585 = r25568 / r25584;
        float r25586 = r25582 - r25585;
        float r25587 = r25578 * r25586;
        float r25588 = r25575 - r25587;
        float r25589 = r25568 * r25588;
        float r25590 = exp(r25589);
        float r25591 = r25567 * r25590;
        float r25592 = r25566 + r25591;
        float r25593 = r25566 / r25592;
        float r25594 = 1.0000000000012905;
        bool r25595 = r25593 <= r25594;
        float r25596 = r25577 * r25571;
        float r25597 = 0.8333333333333334;
        float r25598 = r25597 * r25577;
        float r25599 = r25596 + r25598;
        float r25600 = r25576 * r25571;
        float r25601 = r25599 - r25600;
        float r25602 = r25568 * r25601;
        float r25603 = exp(r25602);
        float r25604 = r25567 * r25603;
        float r25605 = r25566 + r25604;
        float r25606 = r25566 / r25605;
        float r25607 = r25595 ? r25593 : r25606;
        return r25607;
}

double f_od(double x, double y, double z, double t, double a, double b, double c) {
        double r25608 = x;
        double r25609 = y;
        double r25610 = 2.0;
        double r25611 = z;
        double r25612 = t;
        double r25613 = a;
        double r25614 = r25612 + r25613;
        double r25615 = sqrt(r25614);
        double r25616 = r25612 / r25615;
        double r25617 = r25611 / r25616;
        double r25618 = b;
        double r25619 = c;
        double r25620 = r25618 - r25619;
        double r25621 = 5.0;
        double r25622 = 6.0;
        double r25623 = r25621 / r25622;
        double r25624 = r25613 + r25623;
        double r25625 = 3.0;
        double r25626 = r25612 * r25625;
        double r25627 = r25610 / r25626;
        double r25628 = r25624 - r25627;
        double r25629 = r25620 * r25628;
        double r25630 = r25617 - r25629;
        double r25631 = r25610 * r25630;
        double r25632 = exp(r25631);
        double r25633 = r25609 * r25632;
        double r25634 = r25608 + r25633;
        double r25635 = r25608 / r25634;
        double r25636 = 1.0000000000012905;
        bool r25637 = r25635 <= r25636;
        double r25638 = r25619 * r25613;
        double r25639 = 0.8333333333333334;
        double r25640 = r25639 * r25619;
        double r25641 = r25638 + r25640;
        double r25642 = r25618 * r25613;
        double r25643 = r25641 - r25642;
        double r25644 = r25610 * r25643;
        double r25645 = exp(r25644);
        double r25646 = r25609 * r25645;
        double r25647 = r25608 + r25646;
        double r25648 = r25608 / r25647;
        double r25649 = r25637 ? r25635 : r25648;
        return r25649;
}

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 r25650, r25651, r25652, r25653, r25654, r25655, r25656, r25657, r25658, r25659, r25660, r25661, r25662, r25663, r25664, r25665, r25666, r25667, r25668, r25669, r25670, r25671, r25672, r25673, r25674, r25675, r25676, r25677;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r25650);
        mpfr_init(r25651);
        mpfr_init_set_str(r25652, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25653);
        mpfr_init(r25654);
        mpfr_init(r25655);
        mpfr_init(r25656);
        mpfr_init(r25657);
        mpfr_init(r25658);
        mpfr_init(r25659);
        mpfr_init(r25660);
        mpfr_init(r25661);
        mpfr_init(r25662);
        mpfr_init_set_str(r25663, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r25664, "6.0", 10, MPFR_RNDN);
        mpfr_init(r25665);
        mpfr_init(r25666);
        mpfr_init_set_str(r25667, "3.0", 10, MPFR_RNDN);
        mpfr_init(r25668);
        mpfr_init(r25669);
        mpfr_init(r25670);
        mpfr_init(r25671);
        mpfr_init(r25672);
        mpfr_init(r25673);
        mpfr_init(r25674);
        mpfr_init(r25675);
        mpfr_init(r25676);
        mpfr_init(r25677);
}

double f_im(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r25650, x, MPFR_RNDN);
        mpfr_set_d(r25651, y, MPFR_RNDN);
        ;
        mpfr_set_d(r25653, z, MPFR_RNDN);
        mpfr_set_d(r25654, t, MPFR_RNDN);
        mpfr_set_d(r25655, a, MPFR_RNDN);
        mpfr_add(r25656, r25654, r25655, MPFR_RNDN);
        mpfr_sqrt(r25657, r25656, MPFR_RNDN);
        mpfr_mul(r25658, r25653, r25657, MPFR_RNDN);
        mpfr_div(r25659, r25658, r25654, MPFR_RNDN);
        mpfr_set_d(r25660, b, MPFR_RNDN);
        mpfr_set_d(r25661, c, MPFR_RNDN);
        mpfr_sub(r25662, r25660, r25661, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25665, r25663, r25664, MPFR_RNDN);
        mpfr_add(r25666, r25655, r25665, MPFR_RNDN);
        ;
        mpfr_mul(r25668, r25654, r25667, MPFR_RNDN);
        mpfr_div(r25669, r25652, r25668, MPFR_RNDN);
        mpfr_sub(r25670, r25666, r25669, MPFR_RNDN);
        mpfr_mul(r25671, r25662, r25670, MPFR_RNDN);
        mpfr_sub(r25672, r25659, r25671, MPFR_RNDN);
        mpfr_mul(r25673, r25652, r25672, MPFR_RNDN);
        mpfr_exp(r25674, r25673, MPFR_RNDN);
        mpfr_mul(r25675, r25651, r25674, MPFR_RNDN);
        mpfr_add(r25676, r25650, r25675, MPFR_RNDN);
        mpfr_div(r25677, r25650, r25676, MPFR_RNDN);
        return mpfr_get_d(r25677, MPFR_RNDN);
}

static mpfr_t r25678, r25679, r25680, r25681, r25682, r25683, r25684, r25685, r25686, r25687, r25688, r25689, r25690, r25691, r25692, r25693, r25694, r25695, r25696, r25697, r25698, r25699, r25700, r25701, r25702, r25703, r25704, r25705, r25706, r25707, r25708, r25709, r25710, r25711, r25712, r25713, r25714, r25715, r25716, r25717, r25718, r25719;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25678);
        mpfr_init(r25679);
        mpfr_init_set_str(r25680, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25681);
        mpfr_init(r25682);
        mpfr_init(r25683);
        mpfr_init(r25684);
        mpfr_init(r25685);
        mpfr_init(r25686);
        mpfr_init(r25687);
        mpfr_init(r25688);
        mpfr_init(r25689);
        mpfr_init(r25690);
        mpfr_init_set_str(r25691, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r25692, "6.0", 10, MPFR_RNDN);
        mpfr_init(r25693);
        mpfr_init(r25694);
        mpfr_init_set_str(r25695, "3.0", 10, MPFR_RNDN);
        mpfr_init(r25696);
        mpfr_init(r25697);
        mpfr_init(r25698);
        mpfr_init(r25699);
        mpfr_init(r25700);
        mpfr_init(r25701);
        mpfr_init(r25702);
        mpfr_init(r25703);
        mpfr_init(r25704);
        mpfr_init(r25705);
        mpfr_init_set_str(r25706, "1.0000000000012905", 10, MPFR_RNDN);
        mpfr_init(r25707);
        mpfr_init(r25708);
        mpfr_init_set_str(r25709, "0.8333333333333334", 10, MPFR_RNDN);
        mpfr_init(r25710);
        mpfr_init(r25711);
        mpfr_init(r25712);
        mpfr_init(r25713);
        mpfr_init(r25714);
        mpfr_init(r25715);
        mpfr_init(r25716);
        mpfr_init(r25717);
        mpfr_init(r25718);
        mpfr_init(r25719);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r25678, x, MPFR_RNDN);
        mpfr_set_d(r25679, y, MPFR_RNDN);
        ;
        mpfr_set_d(r25681, z, MPFR_RNDN);
        mpfr_set_d(r25682, t, MPFR_RNDN);
        mpfr_set_d(r25683, a, MPFR_RNDN);
        mpfr_add(r25684, r25682, r25683, MPFR_RNDN);
        mpfr_sqrt(r25685, r25684, MPFR_RNDN);
        mpfr_div(r25686, r25682, r25685, MPFR_RNDN);
        mpfr_div(r25687, r25681, r25686, MPFR_RNDN);
        mpfr_set_d(r25688, b, MPFR_RNDN);
        mpfr_set_d(r25689, c, MPFR_RNDN);
        mpfr_sub(r25690, r25688, r25689, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25693, r25691, r25692, MPFR_RNDN);
        mpfr_add(r25694, r25683, r25693, MPFR_RNDN);
        ;
        mpfr_mul(r25696, r25682, r25695, MPFR_RNDN);
        mpfr_div(r25697, r25680, r25696, MPFR_RNDN);
        mpfr_sub(r25698, r25694, r25697, MPFR_RNDN);
        mpfr_mul(r25699, r25690, r25698, MPFR_RNDN);
        mpfr_sub(r25700, r25687, r25699, MPFR_RNDN);
        mpfr_mul(r25701, r25680, r25700, MPFR_RNDN);
        mpfr_exp(r25702, r25701, MPFR_RNDN);
        mpfr_mul(r25703, r25679, r25702, MPFR_RNDN);
        mpfr_add(r25704, r25678, r25703, MPFR_RNDN);
        mpfr_div(r25705, r25678, r25704, MPFR_RNDN);
        ;
        mpfr_set_si(r25707, mpfr_cmp(r25705, r25706) <= 0, MPFR_RNDN);
        mpfr_mul(r25708, r25689, r25683, MPFR_RNDN);
        ;
        mpfr_mul(r25710, r25709, r25689, MPFR_RNDN);
        mpfr_add(r25711, r25708, r25710, MPFR_RNDN);
        mpfr_mul(r25712, r25688, r25683, MPFR_RNDN);
        mpfr_sub(r25713, r25711, r25712, MPFR_RNDN);
        mpfr_mul(r25714, r25680, r25713, MPFR_RNDN);
        mpfr_exp(r25715, r25714, MPFR_RNDN);
        mpfr_mul(r25716, r25679, r25715, MPFR_RNDN);
        mpfr_add(r25717, r25678, r25716, MPFR_RNDN);
        mpfr_div(r25718, r25678, r25717, MPFR_RNDN);
        if (mpfr_get_si(r25707, MPFR_RNDN)) { mpfr_set(r25719, r25705, MPFR_RNDN); } else { mpfr_set(r25719, r25718, MPFR_RNDN); };
        return mpfr_get_d(r25719, MPFR_RNDN);
}

static mpfr_t r25720, r25721, r25722, r25723, r25724, r25725, r25726, r25727, r25728, r25729, r25730, r25731, r25732, r25733, r25734, r25735, r25736, r25737, r25738, r25739, r25740, r25741, r25742, r25743, r25744, r25745, r25746, r25747, r25748, r25749, r25750, r25751, r25752, r25753, r25754, r25755, r25756, r25757, r25758, r25759, r25760, r25761;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25720);
        mpfr_init(r25721);
        mpfr_init_set_str(r25722, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25723);
        mpfr_init(r25724);
        mpfr_init(r25725);
        mpfr_init(r25726);
        mpfr_init(r25727);
        mpfr_init(r25728);
        mpfr_init(r25729);
        mpfr_init(r25730);
        mpfr_init(r25731);
        mpfr_init(r25732);
        mpfr_init_set_str(r25733, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r25734, "6.0", 10, MPFR_RNDN);
        mpfr_init(r25735);
        mpfr_init(r25736);
        mpfr_init_set_str(r25737, "3.0", 10, MPFR_RNDN);
        mpfr_init(r25738);
        mpfr_init(r25739);
        mpfr_init(r25740);
        mpfr_init(r25741);
        mpfr_init(r25742);
        mpfr_init(r25743);
        mpfr_init(r25744);
        mpfr_init(r25745);
        mpfr_init(r25746);
        mpfr_init(r25747);
        mpfr_init_set_str(r25748, "1.0000000000012905", 10, MPFR_RNDN);
        mpfr_init(r25749);
        mpfr_init(r25750);
        mpfr_init_set_str(r25751, "0.8333333333333334", 10, MPFR_RNDN);
        mpfr_init(r25752);
        mpfr_init(r25753);
        mpfr_init(r25754);
        mpfr_init(r25755);
        mpfr_init(r25756);
        mpfr_init(r25757);
        mpfr_init(r25758);
        mpfr_init(r25759);
        mpfr_init(r25760);
        mpfr_init(r25761);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r25720, x, MPFR_RNDN);
        mpfr_set_d(r25721, y, MPFR_RNDN);
        ;
        mpfr_set_d(r25723, z, MPFR_RNDN);
        mpfr_set_d(r25724, t, MPFR_RNDN);
        mpfr_set_d(r25725, a, MPFR_RNDN);
        mpfr_add(r25726, r25724, r25725, MPFR_RNDN);
        mpfr_sqrt(r25727, r25726, MPFR_RNDN);
        mpfr_div(r25728, r25724, r25727, MPFR_RNDN);
        mpfr_div(r25729, r25723, r25728, MPFR_RNDN);
        mpfr_set_d(r25730, b, MPFR_RNDN);
        mpfr_set_d(r25731, c, MPFR_RNDN);
        mpfr_sub(r25732, r25730, r25731, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25735, r25733, r25734, MPFR_RNDN);
        mpfr_add(r25736, r25725, r25735, MPFR_RNDN);
        ;
        mpfr_mul(r25738, r25724, r25737, MPFR_RNDN);
        mpfr_div(r25739, r25722, r25738, MPFR_RNDN);
        mpfr_sub(r25740, r25736, r25739, MPFR_RNDN);
        mpfr_mul(r25741, r25732, r25740, MPFR_RNDN);
        mpfr_sub(r25742, r25729, r25741, MPFR_RNDN);
        mpfr_mul(r25743, r25722, r25742, MPFR_RNDN);
        mpfr_exp(r25744, r25743, MPFR_RNDN);
        mpfr_mul(r25745, r25721, r25744, MPFR_RNDN);
        mpfr_add(r25746, r25720, r25745, MPFR_RNDN);
        mpfr_div(r25747, r25720, r25746, MPFR_RNDN);
        ;
        mpfr_set_si(r25749, mpfr_cmp(r25747, r25748) <= 0, MPFR_RNDN);
        mpfr_mul(r25750, r25731, r25725, MPFR_RNDN);
        ;
        mpfr_mul(r25752, r25751, r25731, MPFR_RNDN);
        mpfr_add(r25753, r25750, r25752, MPFR_RNDN);
        mpfr_mul(r25754, r25730, r25725, MPFR_RNDN);
        mpfr_sub(r25755, r25753, r25754, MPFR_RNDN);
        mpfr_mul(r25756, r25722, r25755, MPFR_RNDN);
        mpfr_exp(r25757, r25756, MPFR_RNDN);
        mpfr_mul(r25758, r25721, r25757, MPFR_RNDN);
        mpfr_add(r25759, r25720, r25758, MPFR_RNDN);
        mpfr_div(r25760, r25720, r25759, MPFR_RNDN);
        if (mpfr_get_si(r25749, MPFR_RNDN)) { mpfr_set(r25761, r25747, MPFR_RNDN); } else { mpfr_set(r25761, r25760, MPFR_RNDN); };
        return mpfr_get_d(r25761, MPFR_RNDN);
}

