#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 r40760 = x;
        float r40761 = y;
        float r40762 = r40760 * r40761;
        float r40763 = z;
        float r40764 = r40763 * r40763;
        float r40765 = 1.0;
        float r40766 = r40763 + r40765;
        float r40767 = r40764 * r40766;
        float r40768 = r40762 / r40767;
        return r40768;
}

double f_id(double x, double y, double z) {
        double r40769 = x;
        double r40770 = y;
        double r40771 = r40769 * r40770;
        double r40772 = z;
        double r40773 = r40772 * r40772;
        double r40774 = 1.0;
        double r40775 = r40772 + r40774;
        double r40776 = r40773 * r40775;
        double r40777 = r40771 / r40776;
        return r40777;
}


double f_of(float x, float y, float z) {
        float r40778 = x;
        float r40779 = 2.2502306453381415e-36;
        bool r40780 = r40778 <= r40779;
        float r40781 = y;
        float r40782 = z;
        float r40783 = r40778 / r40782;
        float r40784 = r40781 * r40783;
        float r40785 = 1.0;
        float r40786 = r40782 + r40785;
        float r40787 = r40782 * r40786;
        float r40788 = r40784 / r40787;
        float r40789 = r40781 / r40782;
        float r40790 = r40789 / r40782;
        float r40791 = r40785 + r40782;
        float r40792 = r40778 / r40791;
        float r40793 = cbrt(r40792);
        float r40794 = r40793 * r40793;
        float r40795 = r40790 * r40794;
        float r40796 = r40795 * r40793;
        float r40797 = r40780 ? r40788 : r40796;
        return r40797;
}

double f_od(double x, double y, double z) {
        double r40798 = x;
        double r40799 = 2.2502306453381415e-36;
        bool r40800 = r40798 <= r40799;
        double r40801 = y;
        double r40802 = z;
        double r40803 = r40798 / r40802;
        double r40804 = r40801 * r40803;
        double r40805 = 1.0;
        double r40806 = r40802 + r40805;
        double r40807 = r40802 * r40806;
        double r40808 = r40804 / r40807;
        double r40809 = r40801 / r40802;
        double r40810 = r40809 / r40802;
        double r40811 = r40805 + r40802;
        double r40812 = r40798 / r40811;
        double r40813 = cbrt(r40812);
        double r40814 = r40813 * r40813;
        double r40815 = r40810 * r40814;
        double r40816 = r40815 * r40813;
        double r40817 = r40800 ? r40808 : r40816;
        return r40817;
}

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 r40818, r40819, r40820, r40821, r40822, r40823, r40824, r40825, r40826;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40818);
        mpfr_init(r40819);
        mpfr_init(r40820);
        mpfr_init(r40821);
        mpfr_init(r40822);
        mpfr_init_set_str(r40823, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40824);
        mpfr_init(r40825);
        mpfr_init(r40826);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r40818, x, MPFR_RNDN);
        mpfr_set_d(r40819, y, MPFR_RNDN);
        mpfr_mul(r40820, r40818, r40819, MPFR_RNDN);
        mpfr_set_d(r40821, z, MPFR_RNDN);
        mpfr_mul(r40822, r40821, r40821, MPFR_RNDN);
        ;
        mpfr_add(r40824, r40821, r40823, MPFR_RNDN);
        mpfr_mul(r40825, r40822, r40824, MPFR_RNDN);
        mpfr_div(r40826, r40820, r40825, MPFR_RNDN);
        return mpfr_get_d(r40826, MPFR_RNDN);
}

static mpfr_t r40827, r40828, r40829, r40830, r40831, r40832, r40833, r40834, r40835, r40836, r40837, r40838, r40839, r40840, r40841, r40842, r40843, r40844, r40845, r40846;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40827);
        mpfr_init_set_str(r40828, "2.2502306453381415e-36", 10, MPFR_RNDN);
        mpfr_init(r40829);
        mpfr_init(r40830);
        mpfr_init(r40831);
        mpfr_init(r40832);
        mpfr_init(r40833);
        mpfr_init_set_str(r40834, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40835);
        mpfr_init(r40836);
        mpfr_init(r40837);
        mpfr_init(r40838);
        mpfr_init(r40839);
        mpfr_init(r40840);
        mpfr_init(r40841);
        mpfr_init(r40842);
        mpfr_init(r40843);
        mpfr_init(r40844);
        mpfr_init(r40845);
        mpfr_init(r40846);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r40827, x, MPFR_RNDN);
        ;
        mpfr_set_si(r40829, mpfr_cmp(r40827, r40828) <= 0, MPFR_RNDN);
        mpfr_set_d(r40830, y, MPFR_RNDN);
        mpfr_set_d(r40831, z, MPFR_RNDN);
        mpfr_div(r40832, r40827, r40831, MPFR_RNDN);
        mpfr_mul(r40833, r40830, r40832, MPFR_RNDN);
        ;
        mpfr_add(r40835, r40831, r40834, MPFR_RNDN);
        mpfr_mul(r40836, r40831, r40835, MPFR_RNDN);
        mpfr_div(r40837, r40833, r40836, MPFR_RNDN);
        mpfr_div(r40838, r40830, r40831, MPFR_RNDN);
        mpfr_div(r40839, r40838, r40831, MPFR_RNDN);
        mpfr_add(r40840, r40834, r40831, MPFR_RNDN);
        mpfr_div(r40841, r40827, r40840, MPFR_RNDN);
        mpfr_cbrt(r40842, r40841, MPFR_RNDN);
        mpfr_mul(r40843, r40842, r40842, MPFR_RNDN);
        mpfr_mul(r40844, r40839, r40843, MPFR_RNDN);
        mpfr_mul(r40845, r40844, r40842, MPFR_RNDN);
        if (mpfr_get_si(r40829, MPFR_RNDN)) { mpfr_set(r40846, r40837, MPFR_RNDN); } else { mpfr_set(r40846, r40845, MPFR_RNDN); };
        return mpfr_get_d(r40846, MPFR_RNDN);
}

static mpfr_t r40847, r40848, r40849, r40850, r40851, r40852, r40853, r40854, r40855, r40856, r40857, r40858, r40859, r40860, r40861, r40862, r40863, r40864, r40865, r40866;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40847);
        mpfr_init_set_str(r40848, "2.2502306453381415e-36", 10, MPFR_RNDN);
        mpfr_init(r40849);
        mpfr_init(r40850);
        mpfr_init(r40851);
        mpfr_init(r40852);
        mpfr_init(r40853);
        mpfr_init_set_str(r40854, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40855);
        mpfr_init(r40856);
        mpfr_init(r40857);
        mpfr_init(r40858);
        mpfr_init(r40859);
        mpfr_init(r40860);
        mpfr_init(r40861);
        mpfr_init(r40862);
        mpfr_init(r40863);
        mpfr_init(r40864);
        mpfr_init(r40865);
        mpfr_init(r40866);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r40847, x, MPFR_RNDN);
        ;
        mpfr_set_si(r40849, mpfr_cmp(r40847, r40848) <= 0, MPFR_RNDN);
        mpfr_set_d(r40850, y, MPFR_RNDN);
        mpfr_set_d(r40851, z, MPFR_RNDN);
        mpfr_div(r40852, r40847, r40851, MPFR_RNDN);
        mpfr_mul(r40853, r40850, r40852, MPFR_RNDN);
        ;
        mpfr_add(r40855, r40851, r40854, MPFR_RNDN);
        mpfr_mul(r40856, r40851, r40855, MPFR_RNDN);
        mpfr_div(r40857, r40853, r40856, MPFR_RNDN);
        mpfr_div(r40858, r40850, r40851, MPFR_RNDN);
        mpfr_div(r40859, r40858, r40851, MPFR_RNDN);
        mpfr_add(r40860, r40854, r40851, MPFR_RNDN);
        mpfr_div(r40861, r40847, r40860, MPFR_RNDN);
        mpfr_cbrt(r40862, r40861, MPFR_RNDN);
        mpfr_mul(r40863, r40862, r40862, MPFR_RNDN);
        mpfr_mul(r40864, r40859, r40863, MPFR_RNDN);
        mpfr_mul(r40865, r40864, r40862, MPFR_RNDN);
        if (mpfr_get_si(r40849, MPFR_RNDN)) { mpfr_set(r40866, r40857, MPFR_RNDN); } else { mpfr_set(r40866, r40865, MPFR_RNDN); };
        return mpfr_get_d(r40866, MPFR_RNDN);
}

