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

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

double f_if(float x, float y, float z, float t) {
        float r40652 = x;
        float r40653 = 1.0;
        float r40654 = r40652 - r40653;
        float r40655 = y;
        float r40656 = log(r40655);
        float r40657 = r40654 * r40656;
        float r40658 = z;
        float r40659 = r40658 - r40653;
        float r40660 = r40653 - r40655;
        float r40661 = log(r40660);
        float r40662 = r40659 * r40661;
        float r40663 = r40657 + r40662;
        float r40664 = t;
        float r40665 = r40663 - r40664;
        return r40665;
}

double f_id(double x, double y, double z, double t) {
        double r40666 = x;
        double r40667 = 1.0;
        double r40668 = r40666 - r40667;
        double r40669 = y;
        double r40670 = log(r40669);
        double r40671 = r40668 * r40670;
        double r40672 = z;
        double r40673 = r40672 - r40667;
        double r40674 = r40667 - r40669;
        double r40675 = log(r40674);
        double r40676 = r40673 * r40675;
        double r40677 = r40671 + r40676;
        double r40678 = t;
        double r40679 = r40677 - r40678;
        return r40679;
}


double f_of(float x, float y, float z, float t) {
        float r40680 = x;
        float r40681 = 1.0;
        float r40682 = r40680 - r40681;
        float r40683 = y;
        float r40684 = log(r40683);
        float r40685 = r40682 * r40684;
        float r40686 = z;
        float r40687 = r40686 - r40681;
        float r40688 = cbrt(r40687);
        float r40689 = r40688 * r40688;
        float r40690 = log(r40681);
        float r40691 = 1/2;
        float r40692 = 2;
        float r40693 = pow(r40683, r40692);
        float r40694 = pow(r40681, r40692);
        float r40695 = r40693 / r40694;
        float r40696 = r40691 * r40695;
        float r40697 = r40681 * r40683;
        float r40698 = r40696 + r40697;
        float r40699 = r40690 - r40698;
        float r40700 = r40688 * r40699;
        float r40701 = r40689 * r40700;
        float r40702 = r40685 + r40701;
        float r40703 = t;
        float r40704 = r40702 - r40703;
        return r40704;
}

double f_od(double x, double y, double z, double t) {
        double r40705 = x;
        double r40706 = 1.0;
        double r40707 = r40705 - r40706;
        double r40708 = y;
        double r40709 = log(r40708);
        double r40710 = r40707 * r40709;
        double r40711 = z;
        double r40712 = r40711 - r40706;
        double r40713 = cbrt(r40712);
        double r40714 = r40713 * r40713;
        double r40715 = log(r40706);
        double r40716 = 1/2;
        double r40717 = 2;
        double r40718 = pow(r40708, r40717);
        double r40719 = pow(r40706, r40717);
        double r40720 = r40718 / r40719;
        double r40721 = r40716 * r40720;
        double r40722 = r40706 * r40708;
        double r40723 = r40721 + r40722;
        double r40724 = r40715 - r40723;
        double r40725 = r40713 * r40724;
        double r40726 = r40714 * r40725;
        double r40727 = r40710 + r40726;
        double r40728 = t;
        double r40729 = r40727 - r40728;
        return r40729;
}

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 r40730, r40731, r40732, r40733, r40734, r40735, r40736, r40737, r40738, r40739, r40740, r40741, r40742, r40743;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        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_im(double x, double y, double z, double t) {
        mpfr_set_d(r40730, x, MPFR_RNDN);
        ;
        mpfr_sub(r40732, r40730, r40731, MPFR_RNDN);
        mpfr_set_d(r40733, y, MPFR_RNDN);
        mpfr_log(r40734, r40733, MPFR_RNDN);
        mpfr_mul(r40735, r40732, r40734, MPFR_RNDN);
        mpfr_set_d(r40736, z, MPFR_RNDN);
        mpfr_sub(r40737, r40736, r40731, MPFR_RNDN);
        mpfr_sub(r40738, r40731, r40733, MPFR_RNDN);
        mpfr_log(r40739, r40738, MPFR_RNDN);
        mpfr_mul(r40740, r40737, r40739, MPFR_RNDN);
        mpfr_add(r40741, r40735, r40740, MPFR_RNDN);
        mpfr_set_d(r40742, t, MPFR_RNDN);
        mpfr_sub(r40743, r40741, 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, r40764, r40765, r40766, r40767, r40768;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r40744);
        mpfr_init_set_str(r40745, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40746);
        mpfr_init(r40747);
        mpfr_init(r40748);
        mpfr_init(r40749);
        mpfr_init(r40750);
        mpfr_init(r40751);
        mpfr_init(r40752);
        mpfr_init(r40753);
        mpfr_init(r40754);
        mpfr_init_set_str(r40755, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r40756, "2", 10, MPFR_RNDN);
        mpfr_init(r40757);
        mpfr_init(r40758);
        mpfr_init(r40759);
        mpfr_init(r40760);
        mpfr_init(r40761);
        mpfr_init(r40762);
        mpfr_init(r40763);
        mpfr_init(r40764);
        mpfr_init(r40765);
        mpfr_init(r40766);
        mpfr_init(r40767);
        mpfr_init(r40768);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r40744, x, MPFR_RNDN);
        ;
        mpfr_sub(r40746, r40744, r40745, MPFR_RNDN);
        mpfr_set_d(r40747, y, MPFR_RNDN);
        mpfr_log(r40748, r40747, MPFR_RNDN);
        mpfr_mul(r40749, r40746, r40748, MPFR_RNDN);
        mpfr_set_d(r40750, z, MPFR_RNDN);
        mpfr_sub(r40751, r40750, r40745, MPFR_RNDN);
        mpfr_cbrt(r40752, r40751, MPFR_RNDN);
        mpfr_mul(r40753, r40752, r40752, MPFR_RNDN);
        mpfr_log(r40754, r40745, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r40757, r40747, r40756, MPFR_RNDN);
        mpfr_pow(r40758, r40745, r40756, MPFR_RNDN);
        mpfr_div(r40759, r40757, r40758, MPFR_RNDN);
        mpfr_mul(r40760, r40755, r40759, MPFR_RNDN);
        mpfr_mul(r40761, r40745, r40747, MPFR_RNDN);
        mpfr_add(r40762, r40760, r40761, MPFR_RNDN);
        mpfr_sub(r40763, r40754, r40762, MPFR_RNDN);
        mpfr_mul(r40764, r40752, r40763, MPFR_RNDN);
        mpfr_mul(r40765, r40753, r40764, MPFR_RNDN);
        mpfr_add(r40766, r40749, r40765, MPFR_RNDN);
        mpfr_set_d(r40767, t, MPFR_RNDN);
        mpfr_sub(r40768, r40766, r40767, MPFR_RNDN);
        return mpfr_get_d(r40768, MPFR_RNDN);
}

static mpfr_t r40769, r40770, r40771, r40772, r40773, r40774, r40775, r40776, r40777, r40778, r40779, r40780, r40781, r40782, r40783, r40784, r40785, r40786, r40787, r40788, r40789, r40790, r40791, r40792, r40793;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r40769);
        mpfr_init_set_str(r40770, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40771);
        mpfr_init(r40772);
        mpfr_init(r40773);
        mpfr_init(r40774);
        mpfr_init(r40775);
        mpfr_init(r40776);
        mpfr_init(r40777);
        mpfr_init(r40778);
        mpfr_init(r40779);
        mpfr_init_set_str(r40780, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r40781, "2", 10, MPFR_RNDN);
        mpfr_init(r40782);
        mpfr_init(r40783);
        mpfr_init(r40784);
        mpfr_init(r40785);
        mpfr_init(r40786);
        mpfr_init(r40787);
        mpfr_init(r40788);
        mpfr_init(r40789);
        mpfr_init(r40790);
        mpfr_init(r40791);
        mpfr_init(r40792);
        mpfr_init(r40793);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r40769, x, MPFR_RNDN);
        ;
        mpfr_sub(r40771, r40769, r40770, MPFR_RNDN);
        mpfr_set_d(r40772, y, MPFR_RNDN);
        mpfr_log(r40773, r40772, MPFR_RNDN);
        mpfr_mul(r40774, r40771, r40773, MPFR_RNDN);
        mpfr_set_d(r40775, z, MPFR_RNDN);
        mpfr_sub(r40776, r40775, r40770, MPFR_RNDN);
        mpfr_cbrt(r40777, r40776, MPFR_RNDN);
        mpfr_mul(r40778, r40777, r40777, MPFR_RNDN);
        mpfr_log(r40779, r40770, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r40782, r40772, r40781, MPFR_RNDN);
        mpfr_pow(r40783, r40770, r40781, MPFR_RNDN);
        mpfr_div(r40784, r40782, r40783, MPFR_RNDN);
        mpfr_mul(r40785, r40780, r40784, MPFR_RNDN);
        mpfr_mul(r40786, r40770, r40772, MPFR_RNDN);
        mpfr_add(r40787, r40785, r40786, MPFR_RNDN);
        mpfr_sub(r40788, r40779, r40787, MPFR_RNDN);
        mpfr_mul(r40789, r40777, r40788, MPFR_RNDN);
        mpfr_mul(r40790, r40778, r40789, MPFR_RNDN);
        mpfr_add(r40791, r40774, r40790, MPFR_RNDN);
        mpfr_set_d(r40792, t, MPFR_RNDN);
        mpfr_sub(r40793, r40791, r40792, MPFR_RNDN);
        return mpfr_get_d(r40793, MPFR_RNDN);
}

