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

char *name = "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2";

double f_if(float x, float y, float z) {
        float r40577 = x;
        float r40578 = y;
        float r40579 = r40577 * r40578;
        float r40580 = z;
        float r40581 = r40580 * r40580;
        float r40582 = 1.0;
        float r40583 = r40580 + r40582;
        float r40584 = r40581 * r40583;
        float r40585 = r40579 / r40584;
        return r40585;
}

double f_id(double x, double y, double z) {
        double r40586 = x;
        double r40587 = y;
        double r40588 = r40586 * r40587;
        double r40589 = z;
        double r40590 = r40589 * r40589;
        double r40591 = 1.0;
        double r40592 = r40589 + r40591;
        double r40593 = r40590 * r40592;
        double r40594 = r40588 / r40593;
        return r40594;
}


double f_of(float x, float y, float z) {
        float r40595 = x;
        float r40596 = 2.250919124792156e-36;
        bool r40597 = r40595 <= r40596;
        float r40598 = y;
        float r40599 = z;
        float r40600 = r40595 / r40599;
        float r40601 = r40598 * r40600;
        float r40602 = 1.0;
        float r40603 = r40599 + r40602;
        float r40604 = r40599 * r40603;
        float r40605 = r40601 / r40604;
        float r40606 = r40598 / r40599;
        float r40607 = r40606 / r40599;
        float r40608 = r40602 + r40599;
        float r40609 = r40595 / r40608;
        float r40610 = cbrt(r40609);
        float r40611 = r40610 * r40610;
        float r40612 = r40607 * r40611;
        float r40613 = r40612 * r40610;
        float r40614 = r40597 ? r40605 : r40613;
        return r40614;
}

double f_od(double x, double y, double z) {
        double r40615 = x;
        double r40616 = 2.250919124792156e-36;
        bool r40617 = r40615 <= r40616;
        double r40618 = y;
        double r40619 = z;
        double r40620 = r40615 / r40619;
        double r40621 = r40618 * r40620;
        double r40622 = 1.0;
        double r40623 = r40619 + r40622;
        double r40624 = r40619 * r40623;
        double r40625 = r40621 / r40624;
        double r40626 = r40618 / r40619;
        double r40627 = r40626 / r40619;
        double r40628 = r40622 + r40619;
        double r40629 = r40615 / r40628;
        double r40630 = cbrt(r40629);
        double r40631 = r40630 * r40630;
        double r40632 = r40627 * r40631;
        double r40633 = r40632 * r40630;
        double r40634 = r40617 ? r40625 : r40633;
        return r40634;
}

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 r40635, r40636, r40637, r40638, r40639, r40640, r40641, r40642, r40643;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40635);
        mpfr_init(r40636);
        mpfr_init(r40637);
        mpfr_init(r40638);
        mpfr_init(r40639);
        mpfr_init_set_str(r40640, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40641);
        mpfr_init(r40642);
        mpfr_init(r40643);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r40635, x, MPFR_RNDN);
        mpfr_set_d(r40636, y, MPFR_RNDN);
        mpfr_mul(r40637, r40635, r40636, MPFR_RNDN);
        mpfr_set_d(r40638, z, MPFR_RNDN);
        mpfr_mul(r40639, r40638, r40638, MPFR_RNDN);
        ;
        mpfr_add(r40641, r40638, r40640, MPFR_RNDN);
        mpfr_mul(r40642, r40639, r40641, MPFR_RNDN);
        mpfr_div(r40643, r40637, r40642, MPFR_RNDN);
        return mpfr_get_d(r40643, MPFR_RNDN);
}

static mpfr_t r40644, r40645, r40646, r40647, r40648, r40649, r40650, r40651, r40652, r40653, r40654, r40655, r40656, r40657, r40658, r40659, r40660, r40661, r40662, r40663;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40644);
        mpfr_init_set_str(r40645, "2.250919124792156e-36", 10, MPFR_RNDN);
        mpfr_init(r40646);
        mpfr_init(r40647);
        mpfr_init(r40648);
        mpfr_init(r40649);
        mpfr_init(r40650);
        mpfr_init_set_str(r40651, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40652);
        mpfr_init(r40653);
        mpfr_init(r40654);
        mpfr_init(r40655);
        mpfr_init(r40656);
        mpfr_init(r40657);
        mpfr_init(r40658);
        mpfr_init(r40659);
        mpfr_init(r40660);
        mpfr_init(r40661);
        mpfr_init(r40662);
        mpfr_init(r40663);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r40644, x, MPFR_RNDN);
        ;
        mpfr_set_si(r40646, mpfr_cmp(r40644, r40645) <= 0, MPFR_RNDN);
        mpfr_set_d(r40647, y, MPFR_RNDN);
        mpfr_set_d(r40648, z, MPFR_RNDN);
        mpfr_div(r40649, r40644, r40648, MPFR_RNDN);
        mpfr_mul(r40650, r40647, r40649, MPFR_RNDN);
        ;
        mpfr_add(r40652, r40648, r40651, MPFR_RNDN);
        mpfr_mul(r40653, r40648, r40652, MPFR_RNDN);
        mpfr_div(r40654, r40650, r40653, MPFR_RNDN);
        mpfr_div(r40655, r40647, r40648, MPFR_RNDN);
        mpfr_div(r40656, r40655, r40648, MPFR_RNDN);
        mpfr_add(r40657, r40651, r40648, MPFR_RNDN);
        mpfr_div(r40658, r40644, r40657, MPFR_RNDN);
        mpfr_cbrt(r40659, r40658, MPFR_RNDN);
        mpfr_mul(r40660, r40659, r40659, MPFR_RNDN);
        mpfr_mul(r40661, r40656, r40660, MPFR_RNDN);
        mpfr_mul(r40662, r40661, r40659, MPFR_RNDN);
        if (mpfr_get_si(r40646, MPFR_RNDN)) { mpfr_set(r40663, r40654, MPFR_RNDN); } else { mpfr_set(r40663, r40662, MPFR_RNDN); };
        return mpfr_get_d(r40663, MPFR_RNDN);
}

static mpfr_t r40664, r40665, r40666, r40667, r40668, r40669, r40670, r40671, r40672, r40673, r40674, r40675, r40676, r40677, r40678, r40679, r40680, r40681, r40682, r40683;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40664);
        mpfr_init_set_str(r40665, "2.250919124792156e-36", 10, MPFR_RNDN);
        mpfr_init(r40666);
        mpfr_init(r40667);
        mpfr_init(r40668);
        mpfr_init(r40669);
        mpfr_init(r40670);
        mpfr_init_set_str(r40671, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40672);
        mpfr_init(r40673);
        mpfr_init(r40674);
        mpfr_init(r40675);
        mpfr_init(r40676);
        mpfr_init(r40677);
        mpfr_init(r40678);
        mpfr_init(r40679);
        mpfr_init(r40680);
        mpfr_init(r40681);
        mpfr_init(r40682);
        mpfr_init(r40683);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r40664, x, MPFR_RNDN);
        ;
        mpfr_set_si(r40666, mpfr_cmp(r40664, r40665) <= 0, MPFR_RNDN);
        mpfr_set_d(r40667, y, MPFR_RNDN);
        mpfr_set_d(r40668, z, MPFR_RNDN);
        mpfr_div(r40669, r40664, r40668, MPFR_RNDN);
        mpfr_mul(r40670, r40667, r40669, MPFR_RNDN);
        ;
        mpfr_add(r40672, r40668, r40671, MPFR_RNDN);
        mpfr_mul(r40673, r40668, r40672, MPFR_RNDN);
        mpfr_div(r40674, r40670, r40673, MPFR_RNDN);
        mpfr_div(r40675, r40667, r40668, MPFR_RNDN);
        mpfr_div(r40676, r40675, r40668, MPFR_RNDN);
        mpfr_add(r40677, r40671, r40668, MPFR_RNDN);
        mpfr_div(r40678, r40664, r40677, MPFR_RNDN);
        mpfr_cbrt(r40679, r40678, MPFR_RNDN);
        mpfr_mul(r40680, r40679, r40679, MPFR_RNDN);
        mpfr_mul(r40681, r40676, r40680, MPFR_RNDN);
        mpfr_mul(r40682, r40681, r40679, MPFR_RNDN);
        if (mpfr_get_si(r40666, MPFR_RNDN)) { mpfr_set(r40683, r40674, MPFR_RNDN); } else { mpfr_set(r40683, r40682, MPFR_RNDN); };
        return mpfr_get_d(r40683, MPFR_RNDN);
}

