#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 r40972 = x;
        float r40973 = y;
        float r40974 = 1.0;
        float r40975 = r40973 - r40974;
        float r40976 = z;
        float r40977 = r40975 * r40976;
        float r40978 = r40972 - r40977;
        float r40979 = t;
        float r40980 = r40979 - r40974;
        float r40981 = a;
        float r40982 = r40980 * r40981;
        float r40983 = r40978 - r40982;
        float r40984 = r40973 + r40979;
        float r40985 = 2.0;
        float r40986 = r40984 - r40985;
        float r40987 = b;
        float r40988 = r40986 * r40987;
        float r40989 = r40983 + r40988;
        return r40989;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r40990 = x;
        double r40991 = y;
        double r40992 = 1.0;
        double r40993 = r40991 - r40992;
        double r40994 = z;
        double r40995 = r40993 * r40994;
        double r40996 = r40990 - r40995;
        double r40997 = t;
        double r40998 = r40997 - r40992;
        double r40999 = a;
        double r41000 = r40998 * r40999;
        double r41001 = r40996 - r41000;
        double r41002 = r40991 + r40997;
        double r41003 = 2.0;
        double r41004 = r41002 - r41003;
        double r41005 = b;
        double r41006 = r41004 * r41005;
        double r41007 = r41001 + r41006;
        return r41007;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r41008 = x;
        float r41009 = y;
        float r41010 = 1.0;
        float r41011 = r41009 - r41010;
        float r41012 = z;
        float r41013 = r41011 * r41012;
        float r41014 = r41008 - r41013;
        float r41015 = t;
        float r41016 = r41015 - r41010;
        float r41017 = a;
        float r41018 = r41016 * r41017;
        float r41019 = r41014 - r41018;
        float r41020 = r41009 + r41015;
        float r41021 = 2.0;
        float r41022 = r41020 - r41021;
        float r41023 = b;
        float r41024 = r41022 * r41023;
        float r41025 = r41019 + r41024;
        return r41025;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r41026 = x;
        double r41027 = y;
        double r41028 = 1.0;
        double r41029 = r41027 - r41028;
        double r41030 = z;
        double r41031 = r41029 * r41030;
        double r41032 = r41026 - r41031;
        double r41033 = t;
        double r41034 = r41033 - r41028;
        double r41035 = a;
        double r41036 = r41034 * r41035;
        double r41037 = r41032 - r41036;
        double r41038 = r41027 + r41033;
        double r41039 = 2.0;
        double r41040 = r41038 - r41039;
        double r41041 = b;
        double r41042 = r41040 * r41041;
        double r41043 = r41037 + r41042;
        return r41043;
}

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 r41044, r41045, r41046, r41047, r41048, r41049, r41050, r41051, r41052, r41053, r41054, r41055, r41056, r41057, r41058, r41059, r41060, r41061;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r41044);
        mpfr_init(r41045);
        mpfr_init_set_str(r41046, "1.0", 10, MPFR_RNDN);
        mpfr_init(r41047);
        mpfr_init(r41048);
        mpfr_init(r41049);
        mpfr_init(r41050);
        mpfr_init(r41051);
        mpfr_init(r41052);
        mpfr_init(r41053);
        mpfr_init(r41054);
        mpfr_init(r41055);
        mpfr_init(r41056);
        mpfr_init_set_str(r41057, "2.0", 10, MPFR_RNDN);
        mpfr_init(r41058);
        mpfr_init(r41059);
        mpfr_init(r41060);
        mpfr_init(r41061);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r41044, x, MPFR_RNDN);
        mpfr_set_d(r41045, y, MPFR_RNDN);
        ;
        mpfr_sub(r41047, r41045, r41046, MPFR_RNDN);
        mpfr_set_d(r41048, z, MPFR_RNDN);
        mpfr_mul(r41049, r41047, r41048, MPFR_RNDN);
        mpfr_sub(r41050, r41044, r41049, MPFR_RNDN);
        mpfr_set_d(r41051, t, MPFR_RNDN);
        mpfr_sub(r41052, r41051, r41046, MPFR_RNDN);
        mpfr_set_d(r41053, a, MPFR_RNDN);
        mpfr_mul(r41054, r41052, r41053, MPFR_RNDN);
        mpfr_sub(r41055, r41050, r41054, MPFR_RNDN);
        mpfr_add(r41056, r41045, r41051, MPFR_RNDN);
        ;
        mpfr_sub(r41058, r41056, r41057, MPFR_RNDN);
        mpfr_set_d(r41059, b, MPFR_RNDN);
        mpfr_mul(r41060, r41058, r41059, MPFR_RNDN);
        mpfr_add(r41061, r41055, r41060, MPFR_RNDN);
        return mpfr_get_d(r41061, MPFR_RNDN);
}

static mpfr_t r41062, r41063, r41064, r41065, r41066, r41067, r41068, r41069, r41070, r41071, r41072, r41073, r41074, r41075, r41076, r41077, r41078, r41079;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r41062);
        mpfr_init(r41063);
        mpfr_init_set_str(r41064, "1.0", 10, MPFR_RNDN);
        mpfr_init(r41065);
        mpfr_init(r41066);
        mpfr_init(r41067);
        mpfr_init(r41068);
        mpfr_init(r41069);
        mpfr_init(r41070);
        mpfr_init(r41071);
        mpfr_init(r41072);
        mpfr_init(r41073);
        mpfr_init(r41074);
        mpfr_init_set_str(r41075, "2.0", 10, MPFR_RNDN);
        mpfr_init(r41076);
        mpfr_init(r41077);
        mpfr_init(r41078);
        mpfr_init(r41079);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r41062, x, MPFR_RNDN);
        mpfr_set_d(r41063, y, MPFR_RNDN);
        ;
        mpfr_sub(r41065, r41063, r41064, MPFR_RNDN);
        mpfr_set_d(r41066, z, MPFR_RNDN);
        mpfr_mul(r41067, r41065, r41066, MPFR_RNDN);
        mpfr_sub(r41068, r41062, r41067, MPFR_RNDN);
        mpfr_set_d(r41069, t, MPFR_RNDN);
        mpfr_sub(r41070, r41069, r41064, MPFR_RNDN);
        mpfr_set_d(r41071, a, MPFR_RNDN);
        mpfr_mul(r41072, r41070, r41071, MPFR_RNDN);
        mpfr_sub(r41073, r41068, r41072, MPFR_RNDN);
        mpfr_add(r41074, r41063, r41069, MPFR_RNDN);
        ;
        mpfr_sub(r41076, r41074, r41075, MPFR_RNDN);
        mpfr_set_d(r41077, b, MPFR_RNDN);
        mpfr_mul(r41078, r41076, r41077, MPFR_RNDN);
        mpfr_add(r41079, r41073, r41078, MPFR_RNDN);
        return mpfr_get_d(r41079, MPFR_RNDN);
}

static mpfr_t r41080, r41081, r41082, r41083, r41084, r41085, r41086, r41087, r41088, r41089, r41090, r41091, r41092, r41093, r41094, r41095, r41096, r41097;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r41080);
        mpfr_init(r41081);
        mpfr_init_set_str(r41082, "1.0", 10, MPFR_RNDN);
        mpfr_init(r41083);
        mpfr_init(r41084);
        mpfr_init(r41085);
        mpfr_init(r41086);
        mpfr_init(r41087);
        mpfr_init(r41088);
        mpfr_init(r41089);
        mpfr_init(r41090);
        mpfr_init(r41091);
        mpfr_init(r41092);
        mpfr_init_set_str(r41093, "2.0", 10, MPFR_RNDN);
        mpfr_init(r41094);
        mpfr_init(r41095);
        mpfr_init(r41096);
        mpfr_init(r41097);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r41080, x, MPFR_RNDN);
        mpfr_set_d(r41081, y, MPFR_RNDN);
        ;
        mpfr_sub(r41083, r41081, r41082, MPFR_RNDN);
        mpfr_set_d(r41084, z, MPFR_RNDN);
        mpfr_mul(r41085, r41083, r41084, MPFR_RNDN);
        mpfr_sub(r41086, r41080, r41085, MPFR_RNDN);
        mpfr_set_d(r41087, t, MPFR_RNDN);
        mpfr_sub(r41088, r41087, r41082, MPFR_RNDN);
        mpfr_set_d(r41089, a, MPFR_RNDN);
        mpfr_mul(r41090, r41088, r41089, MPFR_RNDN);
        mpfr_sub(r41091, r41086, r41090, MPFR_RNDN);
        mpfr_add(r41092, r41081, r41087, MPFR_RNDN);
        ;
        mpfr_sub(r41094, r41092, r41093, MPFR_RNDN);
        mpfr_set_d(r41095, b, MPFR_RNDN);
        mpfr_mul(r41096, r41094, r41095, MPFR_RNDN);
        mpfr_add(r41097, r41091, r41096, MPFR_RNDN);
        return mpfr_get_d(r41097, MPFR_RNDN);
}

