#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 r40867 = x;
        float r40868 = y;
        float r40869 = 1.0;
        float r40870 = r40868 - r40869;
        float r40871 = z;
        float r40872 = r40870 * r40871;
        float r40873 = r40867 - r40872;
        float r40874 = t;
        float r40875 = r40874 - r40869;
        float r40876 = a;
        float r40877 = r40875 * r40876;
        float r40878 = r40873 - r40877;
        float r40879 = r40868 + r40874;
        float r40880 = 2.0;
        float r40881 = r40879 - r40880;
        float r40882 = b;
        float r40883 = r40881 * r40882;
        float r40884 = r40878 + r40883;
        return r40884;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r40885 = x;
        double r40886 = y;
        double r40887 = 1.0;
        double r40888 = r40886 - r40887;
        double r40889 = z;
        double r40890 = r40888 * r40889;
        double r40891 = r40885 - r40890;
        double r40892 = t;
        double r40893 = r40892 - r40887;
        double r40894 = a;
        double r40895 = r40893 * r40894;
        double r40896 = r40891 - r40895;
        double r40897 = r40886 + r40892;
        double r40898 = 2.0;
        double r40899 = r40897 - r40898;
        double r40900 = b;
        double r40901 = r40899 * r40900;
        double r40902 = r40896 + r40901;
        return r40902;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r40903 = x;
        float r40904 = y;
        float r40905 = 1.0;
        float r40906 = r40904 - r40905;
        float r40907 = z;
        float r40908 = r40906 * r40907;
        float r40909 = r40903 - r40908;
        float r40910 = t;
        float r40911 = r40910 - r40905;
        float r40912 = a;
        float r40913 = r40911 * r40912;
        float r40914 = r40909 - r40913;
        float r40915 = r40904 + r40910;
        float r40916 = 2.0;
        float r40917 = r40915 - r40916;
        float r40918 = b;
        float r40919 = r40917 * r40918;
        float r40920 = r40914 + r40919;
        return r40920;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r40921 = x;
        double r40922 = y;
        double r40923 = 1.0;
        double r40924 = r40922 - r40923;
        double r40925 = z;
        double r40926 = r40924 * r40925;
        double r40927 = r40921 - r40926;
        double r40928 = t;
        double r40929 = r40928 - r40923;
        double r40930 = a;
        double r40931 = r40929 * r40930;
        double r40932 = r40927 - r40931;
        double r40933 = r40922 + r40928;
        double r40934 = 2.0;
        double r40935 = r40933 - r40934;
        double r40936 = b;
        double r40937 = r40935 * r40936;
        double r40938 = r40932 + r40937;
        return r40938;
}

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 r40939, r40940, r40941, r40942, r40943, r40944, r40945, r40946, r40947, r40948, r40949, r40950, r40951, r40952, r40953, r40954, r40955, r40956;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r40939);
        mpfr_init(r40940);
        mpfr_init_set_str(r40941, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40942);
        mpfr_init(r40943);
        mpfr_init(r40944);
        mpfr_init(r40945);
        mpfr_init(r40946);
        mpfr_init(r40947);
        mpfr_init(r40948);
        mpfr_init(r40949);
        mpfr_init(r40950);
        mpfr_init(r40951);
        mpfr_init_set_str(r40952, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40953);
        mpfr_init(r40954);
        mpfr_init(r40955);
        mpfr_init(r40956);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40939, x, MPFR_RNDN);
        mpfr_set_d(r40940, y, MPFR_RNDN);
        ;
        mpfr_sub(r40942, r40940, r40941, MPFR_RNDN);
        mpfr_set_d(r40943, z, MPFR_RNDN);
        mpfr_mul(r40944, r40942, r40943, MPFR_RNDN);
        mpfr_sub(r40945, r40939, r40944, MPFR_RNDN);
        mpfr_set_d(r40946, t, MPFR_RNDN);
        mpfr_sub(r40947, r40946, r40941, MPFR_RNDN);
        mpfr_set_d(r40948, a, MPFR_RNDN);
        mpfr_mul(r40949, r40947, r40948, MPFR_RNDN);
        mpfr_sub(r40950, r40945, r40949, MPFR_RNDN);
        mpfr_add(r40951, r40940, r40946, MPFR_RNDN);
        ;
        mpfr_sub(r40953, r40951, r40952, MPFR_RNDN);
        mpfr_set_d(r40954, b, MPFR_RNDN);
        mpfr_mul(r40955, r40953, r40954, MPFR_RNDN);
        mpfr_add(r40956, r40950, r40955, MPFR_RNDN);
        return mpfr_get_d(r40956, MPFR_RNDN);
}

static mpfr_t r40957, r40958, r40959, r40960, r40961, r40962, r40963, r40964, r40965, r40966, r40967, r40968, r40969, r40970, r40971, r40972, r40973, r40974;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r40957);
        mpfr_init(r40958);
        mpfr_init_set_str(r40959, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40960);
        mpfr_init(r40961);
        mpfr_init(r40962);
        mpfr_init(r40963);
        mpfr_init(r40964);
        mpfr_init(r40965);
        mpfr_init(r40966);
        mpfr_init(r40967);
        mpfr_init(r40968);
        mpfr_init(r40969);
        mpfr_init_set_str(r40970, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40971);
        mpfr_init(r40972);
        mpfr_init(r40973);
        mpfr_init(r40974);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40957, x, MPFR_RNDN);
        mpfr_set_d(r40958, y, MPFR_RNDN);
        ;
        mpfr_sub(r40960, r40958, r40959, MPFR_RNDN);
        mpfr_set_d(r40961, z, MPFR_RNDN);
        mpfr_mul(r40962, r40960, r40961, MPFR_RNDN);
        mpfr_sub(r40963, r40957, r40962, MPFR_RNDN);
        mpfr_set_d(r40964, t, MPFR_RNDN);
        mpfr_sub(r40965, r40964, r40959, MPFR_RNDN);
        mpfr_set_d(r40966, a, MPFR_RNDN);
        mpfr_mul(r40967, r40965, r40966, MPFR_RNDN);
        mpfr_sub(r40968, r40963, r40967, MPFR_RNDN);
        mpfr_add(r40969, r40958, r40964, MPFR_RNDN);
        ;
        mpfr_sub(r40971, r40969, r40970, MPFR_RNDN);
        mpfr_set_d(r40972, b, MPFR_RNDN);
        mpfr_mul(r40973, r40971, r40972, MPFR_RNDN);
        mpfr_add(r40974, r40968, r40973, MPFR_RNDN);
        return mpfr_get_d(r40974, MPFR_RNDN);
}

static mpfr_t r40975, r40976, r40977, r40978, r40979, r40980, r40981, r40982, r40983, r40984, r40985, r40986, r40987, r40988, r40989, r40990, r40991, r40992;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r40975);
        mpfr_init(r40976);
        mpfr_init_set_str(r40977, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40978);
        mpfr_init(r40979);
        mpfr_init(r40980);
        mpfr_init(r40981);
        mpfr_init(r40982);
        mpfr_init(r40983);
        mpfr_init(r40984);
        mpfr_init(r40985);
        mpfr_init(r40986);
        mpfr_init(r40987);
        mpfr_init_set_str(r40988, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40989);
        mpfr_init(r40990);
        mpfr_init(r40991);
        mpfr_init(r40992);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40975, x, MPFR_RNDN);
        mpfr_set_d(r40976, y, MPFR_RNDN);
        ;
        mpfr_sub(r40978, r40976, r40977, MPFR_RNDN);
        mpfr_set_d(r40979, z, MPFR_RNDN);
        mpfr_mul(r40980, r40978, r40979, MPFR_RNDN);
        mpfr_sub(r40981, r40975, r40980, MPFR_RNDN);
        mpfr_set_d(r40982, t, MPFR_RNDN);
        mpfr_sub(r40983, r40982, r40977, MPFR_RNDN);
        mpfr_set_d(r40984, a, MPFR_RNDN);
        mpfr_mul(r40985, r40983, r40984, MPFR_RNDN);
        mpfr_sub(r40986, r40981, r40985, MPFR_RNDN);
        mpfr_add(r40987, r40976, r40982, MPFR_RNDN);
        ;
        mpfr_sub(r40989, r40987, r40988, MPFR_RNDN);
        mpfr_set_d(r40990, b, MPFR_RNDN);
        mpfr_mul(r40991, r40989, r40990, MPFR_RNDN);
        mpfr_add(r40992, r40986, r40991, MPFR_RNDN);
        return mpfr_get_d(r40992, MPFR_RNDN);
}

