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

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

double f_if(float x, float y, float z, float t, float a, float b) {
        float r40684 = x;
        float r40685 = y;
        float r40686 = 1.0;
        float r40687 = r40685 - r40686;
        float r40688 = z;
        float r40689 = r40687 * r40688;
        float r40690 = r40684 - r40689;
        float r40691 = t;
        float r40692 = r40691 - r40686;
        float r40693 = a;
        float r40694 = r40692 * r40693;
        float r40695 = r40690 - r40694;
        float r40696 = r40685 + r40691;
        float r40697 = 2.0;
        float r40698 = r40696 - r40697;
        float r40699 = b;
        float r40700 = r40698 * r40699;
        float r40701 = r40695 + r40700;
        return r40701;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r40702 = x;
        double r40703 = y;
        double r40704 = 1.0;
        double r40705 = r40703 - r40704;
        double r40706 = z;
        double r40707 = r40705 * r40706;
        double r40708 = r40702 - r40707;
        double r40709 = t;
        double r40710 = r40709 - r40704;
        double r40711 = a;
        double r40712 = r40710 * r40711;
        double r40713 = r40708 - r40712;
        double r40714 = r40703 + r40709;
        double r40715 = 2.0;
        double r40716 = r40714 - r40715;
        double r40717 = b;
        double r40718 = r40716 * r40717;
        double r40719 = r40713 + r40718;
        return r40719;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r40720 = x;
        float r40721 = y;
        float r40722 = 1.0;
        float r40723 = r40721 - r40722;
        float r40724 = z;
        float r40725 = r40723 * r40724;
        float r40726 = r40720 - r40725;
        float r40727 = t;
        float r40728 = r40727 - r40722;
        float r40729 = a;
        float r40730 = r40728 * r40729;
        float r40731 = r40726 - r40730;
        float r40732 = r40721 + r40727;
        float r40733 = 2.0;
        float r40734 = r40732 - r40733;
        float r40735 = b;
        float r40736 = r40734 * r40735;
        float r40737 = r40731 + r40736;
        return r40737;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r40738 = x;
        double r40739 = y;
        double r40740 = 1.0;
        double r40741 = r40739 - r40740;
        double r40742 = z;
        double r40743 = r40741 * r40742;
        double r40744 = r40738 - r40743;
        double r40745 = t;
        double r40746 = r40745 - r40740;
        double r40747 = a;
        double r40748 = r40746 * r40747;
        double r40749 = r40744 - r40748;
        double r40750 = r40739 + r40745;
        double r40751 = 2.0;
        double r40752 = r40750 - r40751;
        double r40753 = b;
        double r40754 = r40752 * r40753;
        double r40755 = r40749 + r40754;
        return r40755;
}

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 r40756, r40757, r40758, r40759, r40760, r40761, r40762, r40763, r40764, r40765, r40766, r40767, r40768, r40769, r40770, r40771, r40772, r40773;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r40756);
        mpfr_init(r40757);
        mpfr_init_set_str(r40758, "1.0", 10, MPFR_RNDN);
        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);
        mpfr_init_set_str(r40769, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40770);
        mpfr_init(r40771);
        mpfr_init(r40772);
        mpfr_init(r40773);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40756, x, MPFR_RNDN);
        mpfr_set_d(r40757, y, MPFR_RNDN);
        ;
        mpfr_sub(r40759, r40757, r40758, MPFR_RNDN);
        mpfr_set_d(r40760, z, MPFR_RNDN);
        mpfr_mul(r40761, r40759, r40760, MPFR_RNDN);
        mpfr_sub(r40762, r40756, r40761, MPFR_RNDN);
        mpfr_set_d(r40763, t, MPFR_RNDN);
        mpfr_sub(r40764, r40763, r40758, MPFR_RNDN);
        mpfr_set_d(r40765, a, MPFR_RNDN);
        mpfr_mul(r40766, r40764, r40765, MPFR_RNDN);
        mpfr_sub(r40767, r40762, r40766, MPFR_RNDN);
        mpfr_add(r40768, r40757, r40763, MPFR_RNDN);
        ;
        mpfr_sub(r40770, r40768, r40769, MPFR_RNDN);
        mpfr_set_d(r40771, b, MPFR_RNDN);
        mpfr_mul(r40772, r40770, r40771, MPFR_RNDN);
        mpfr_add(r40773, r40767, r40772, MPFR_RNDN);
        return mpfr_get_d(r40773, MPFR_RNDN);
}

static mpfr_t r40774, r40775, r40776, r40777, r40778, r40779, r40780, r40781, r40782, r40783, r40784, r40785, r40786, r40787, r40788, r40789, r40790, r40791;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r40774);
        mpfr_init(r40775);
        mpfr_init_set_str(r40776, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40777);
        mpfr_init(r40778);
        mpfr_init(r40779);
        mpfr_init(r40780);
        mpfr_init(r40781);
        mpfr_init(r40782);
        mpfr_init(r40783);
        mpfr_init(r40784);
        mpfr_init(r40785);
        mpfr_init(r40786);
        mpfr_init_set_str(r40787, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40788);
        mpfr_init(r40789);
        mpfr_init(r40790);
        mpfr_init(r40791);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40774, x, MPFR_RNDN);
        mpfr_set_d(r40775, y, MPFR_RNDN);
        ;
        mpfr_sub(r40777, r40775, r40776, MPFR_RNDN);
        mpfr_set_d(r40778, z, MPFR_RNDN);
        mpfr_mul(r40779, r40777, r40778, MPFR_RNDN);
        mpfr_sub(r40780, r40774, r40779, MPFR_RNDN);
        mpfr_set_d(r40781, t, MPFR_RNDN);
        mpfr_sub(r40782, r40781, r40776, MPFR_RNDN);
        mpfr_set_d(r40783, a, MPFR_RNDN);
        mpfr_mul(r40784, r40782, r40783, MPFR_RNDN);
        mpfr_sub(r40785, r40780, r40784, MPFR_RNDN);
        mpfr_add(r40786, r40775, r40781, MPFR_RNDN);
        ;
        mpfr_sub(r40788, r40786, r40787, MPFR_RNDN);
        mpfr_set_d(r40789, b, MPFR_RNDN);
        mpfr_mul(r40790, r40788, r40789, MPFR_RNDN);
        mpfr_add(r40791, r40785, r40790, MPFR_RNDN);
        return mpfr_get_d(r40791, MPFR_RNDN);
}

static mpfr_t r40792, r40793, r40794, r40795, r40796, r40797, r40798, r40799, r40800, r40801, r40802, r40803, r40804, r40805, r40806, r40807, r40808, r40809;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r40792);
        mpfr_init(r40793);
        mpfr_init_set_str(r40794, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40795);
        mpfr_init(r40796);
        mpfr_init(r40797);
        mpfr_init(r40798);
        mpfr_init(r40799);
        mpfr_init(r40800);
        mpfr_init(r40801);
        mpfr_init(r40802);
        mpfr_init(r40803);
        mpfr_init(r40804);
        mpfr_init_set_str(r40805, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40806);
        mpfr_init(r40807);
        mpfr_init(r40808);
        mpfr_init(r40809);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40792, x, MPFR_RNDN);
        mpfr_set_d(r40793, y, MPFR_RNDN);
        ;
        mpfr_sub(r40795, r40793, r40794, MPFR_RNDN);
        mpfr_set_d(r40796, z, MPFR_RNDN);
        mpfr_mul(r40797, r40795, r40796, MPFR_RNDN);
        mpfr_sub(r40798, r40792, r40797, MPFR_RNDN);
        mpfr_set_d(r40799, t, MPFR_RNDN);
        mpfr_sub(r40800, r40799, r40794, MPFR_RNDN);
        mpfr_set_d(r40801, a, MPFR_RNDN);
        mpfr_mul(r40802, r40800, r40801, MPFR_RNDN);
        mpfr_sub(r40803, r40798, r40802, MPFR_RNDN);
        mpfr_add(r40804, r40793, r40799, MPFR_RNDN);
        ;
        mpfr_sub(r40806, r40804, r40805, MPFR_RNDN);
        mpfr_set_d(r40807, b, MPFR_RNDN);
        mpfr_mul(r40808, r40806, r40807, MPFR_RNDN);
        mpfr_add(r40809, r40803, r40808, MPFR_RNDN);
        return mpfr_get_d(r40809, MPFR_RNDN);
}

