#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 r40657 = x;
        float r40658 = y;
        float r40659 = r40657 * r40658;
        float r40660 = z;
        float r40661 = r40660 * r40660;
        float r40662 = 1.0;
        float r40663 = r40660 + r40662;
        float r40664 = r40661 * r40663;
        float r40665 = r40659 / r40664;
        return r40665;
}

double f_id(double x, double y, double z) {
        double r40666 = x;
        double r40667 = y;
        double r40668 = r40666 * r40667;
        double r40669 = z;
        double r40670 = r40669 * r40669;
        double r40671 = 1.0;
        double r40672 = r40669 + r40671;
        double r40673 = r40670 * r40672;
        double r40674 = r40668 / r40673;
        return r40674;
}


double f_of(float x, float y, float z) {
        float r40675 = x;
        float r40676 = 2.2502306453381415e-36;
        bool r40677 = r40675 <= r40676;
        float r40678 = y;
        float r40679 = z;
        float r40680 = r40675 / r40679;
        float r40681 = r40678 * r40680;
        float r40682 = 1.0;
        float r40683 = r40679 + r40682;
        float r40684 = r40679 * r40683;
        float r40685 = r40681 / r40684;
        float r40686 = r40678 / r40679;
        float r40687 = r40686 / r40679;
        float r40688 = r40682 + r40679;
        float r40689 = r40675 / r40688;
        float r40690 = cbrt(r40689);
        float r40691 = r40690 * r40690;
        float r40692 = r40687 * r40691;
        float r40693 = r40692 * r40690;
        float r40694 = r40677 ? r40685 : r40693;
        return r40694;
}

double f_od(double x, double y, double z) {
        double r40695 = x;
        double r40696 = 2.2502306453381415e-36;
        bool r40697 = r40695 <= r40696;
        double r40698 = y;
        double r40699 = z;
        double r40700 = r40695 / r40699;
        double r40701 = r40698 * r40700;
        double r40702 = 1.0;
        double r40703 = r40699 + r40702;
        double r40704 = r40699 * r40703;
        double r40705 = r40701 / r40704;
        double r40706 = r40698 / r40699;
        double r40707 = r40706 / r40699;
        double r40708 = r40702 + r40699;
        double r40709 = r40695 / r40708;
        double r40710 = cbrt(r40709);
        double r40711 = r40710 * r40710;
        double r40712 = r40707 * r40711;
        double r40713 = r40712 * r40710;
        double r40714 = r40697 ? r40705 : r40713;
        return r40714;
}

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 r40715, r40716, r40717, r40718, r40719, r40720, r40721, r40722, r40723;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40715);
        mpfr_init(r40716);
        mpfr_init(r40717);
        mpfr_init(r40718);
        mpfr_init(r40719);
        mpfr_init_set_str(r40720, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40721);
        mpfr_init(r40722);
        mpfr_init(r40723);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r40715, x, MPFR_RNDN);
        mpfr_set_d(r40716, y, MPFR_RNDN);
        mpfr_mul(r40717, r40715, r40716, MPFR_RNDN);
        mpfr_set_d(r40718, z, MPFR_RNDN);
        mpfr_mul(r40719, r40718, r40718, MPFR_RNDN);
        ;
        mpfr_add(r40721, r40718, r40720, MPFR_RNDN);
        mpfr_mul(r40722, r40719, r40721, MPFR_RNDN);
        mpfr_div(r40723, r40717, r40722, MPFR_RNDN);
        return mpfr_get_d(r40723, MPFR_RNDN);
}

static mpfr_t r40724, r40725, r40726, r40727, r40728, r40729, r40730, r40731, r40732, r40733, r40734, r40735, r40736, r40737, r40738, r40739, r40740, r40741, r40742, r40743;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40724);
        mpfr_init_set_str(r40725, "2.2502306453381415e-36", 10, MPFR_RNDN);
        mpfr_init(r40726);
        mpfr_init(r40727);
        mpfr_init(r40728);
        mpfr_init(r40729);
        mpfr_init(r40730);
        mpfr_init_set_str(r40731, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40732);
        mpfr_init(r40733);
        mpfr_init(r40734);
        mpfr_init(r40735);
        mpfr_init(r40736);
        mpfr_init(r40737);
        mpfr_init(r40738);
        mpfr_init(r40739);
        mpfr_init(r40740);
        mpfr_init(r40741);
        mpfr_init(r40742);
        mpfr_init(r40743);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r40724, x, MPFR_RNDN);
        ;
        mpfr_set_si(r40726, mpfr_cmp(r40724, r40725) <= 0, MPFR_RNDN);
        mpfr_set_d(r40727, y, MPFR_RNDN);
        mpfr_set_d(r40728, z, MPFR_RNDN);
        mpfr_div(r40729, r40724, r40728, MPFR_RNDN);
        mpfr_mul(r40730, r40727, r40729, MPFR_RNDN);
        ;
        mpfr_add(r40732, r40728, r40731, MPFR_RNDN);
        mpfr_mul(r40733, r40728, r40732, MPFR_RNDN);
        mpfr_div(r40734, r40730, r40733, MPFR_RNDN);
        mpfr_div(r40735, r40727, r40728, MPFR_RNDN);
        mpfr_div(r40736, r40735, r40728, MPFR_RNDN);
        mpfr_add(r40737, r40731, r40728, MPFR_RNDN);
        mpfr_div(r40738, r40724, r40737, MPFR_RNDN);
        mpfr_cbrt(r40739, r40738, MPFR_RNDN);
        mpfr_mul(r40740, r40739, r40739, MPFR_RNDN);
        mpfr_mul(r40741, r40736, r40740, MPFR_RNDN);
        mpfr_mul(r40742, r40741, r40739, MPFR_RNDN);
        if (mpfr_get_si(r40726, MPFR_RNDN)) { mpfr_set(r40743, r40734, MPFR_RNDN); } else { mpfr_set(r40743, r40742, MPFR_RNDN); };
        return mpfr_get_d(r40743, MPFR_RNDN);
}

static mpfr_t r40744, r40745, r40746, r40747, r40748, r40749, r40750, r40751, r40752, r40753, r40754, r40755, r40756, r40757, r40758, r40759, r40760, r40761, r40762, r40763;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40744);
        mpfr_init_set_str(r40745, "2.2502306453381415e-36", 10, MPFR_RNDN);
        mpfr_init(r40746);
        mpfr_init(r40747);
        mpfr_init(r40748);
        mpfr_init(r40749);
        mpfr_init(r40750);
        mpfr_init_set_str(r40751, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40752);
        mpfr_init(r40753);
        mpfr_init(r40754);
        mpfr_init(r40755);
        mpfr_init(r40756);
        mpfr_init(r40757);
        mpfr_init(r40758);
        mpfr_init(r40759);
        mpfr_init(r40760);
        mpfr_init(r40761);
        mpfr_init(r40762);
        mpfr_init(r40763);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r40744, x, MPFR_RNDN);
        ;
        mpfr_set_si(r40746, mpfr_cmp(r40744, r40745) <= 0, MPFR_RNDN);
        mpfr_set_d(r40747, y, MPFR_RNDN);
        mpfr_set_d(r40748, z, MPFR_RNDN);
        mpfr_div(r40749, r40744, r40748, MPFR_RNDN);
        mpfr_mul(r40750, r40747, r40749, MPFR_RNDN);
        ;
        mpfr_add(r40752, r40748, r40751, MPFR_RNDN);
        mpfr_mul(r40753, r40748, r40752, MPFR_RNDN);
        mpfr_div(r40754, r40750, r40753, MPFR_RNDN);
        mpfr_div(r40755, r40747, r40748, MPFR_RNDN);
        mpfr_div(r40756, r40755, r40748, MPFR_RNDN);
        mpfr_add(r40757, r40751, r40748, MPFR_RNDN);
        mpfr_div(r40758, r40744, r40757, MPFR_RNDN);
        mpfr_cbrt(r40759, r40758, MPFR_RNDN);
        mpfr_mul(r40760, r40759, r40759, MPFR_RNDN);
        mpfr_mul(r40761, r40756, r40760, MPFR_RNDN);
        mpfr_mul(r40762, r40761, r40759, MPFR_RNDN);
        if (mpfr_get_si(r40746, MPFR_RNDN)) { mpfr_set(r40763, r40754, MPFR_RNDN); } else { mpfr_set(r40763, r40762, MPFR_RNDN); };
        return mpfr_get_d(r40763, MPFR_RNDN);
}

