#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 r40526 = x;
        float r40527 = y;
        float r40528 = 1.0;
        float r40529 = r40527 - r40528;
        float r40530 = z;
        float r40531 = r40529 * r40530;
        float r40532 = r40526 - r40531;
        float r40533 = t;
        float r40534 = r40533 - r40528;
        float r40535 = a;
        float r40536 = r40534 * r40535;
        float r40537 = r40532 - r40536;
        float r40538 = r40527 + r40533;
        float r40539 = 2.0;
        float r40540 = r40538 - r40539;
        float r40541 = b;
        float r40542 = r40540 * r40541;
        float r40543 = r40537 + r40542;
        return r40543;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r40544 = x;
        double r40545 = y;
        double r40546 = 1.0;
        double r40547 = r40545 - r40546;
        double r40548 = z;
        double r40549 = r40547 * r40548;
        double r40550 = r40544 - r40549;
        double r40551 = t;
        double r40552 = r40551 - r40546;
        double r40553 = a;
        double r40554 = r40552 * r40553;
        double r40555 = r40550 - r40554;
        double r40556 = r40545 + r40551;
        double r40557 = 2.0;
        double r40558 = r40556 - r40557;
        double r40559 = b;
        double r40560 = r40558 * r40559;
        double r40561 = r40555 + r40560;
        return r40561;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r40562 = x;
        float r40563 = y;
        float r40564 = 1.0;
        float r40565 = r40563 - r40564;
        float r40566 = z;
        float r40567 = r40565 * r40566;
        float r40568 = r40562 - r40567;
        float r40569 = t;
        float r40570 = r40569 - r40564;
        float r40571 = a;
        float r40572 = r40570 * r40571;
        float r40573 = r40568 - r40572;
        float r40574 = r40563 + r40569;
        float r40575 = 2.0;
        float r40576 = r40574 - r40575;
        float r40577 = b;
        float r40578 = r40576 * r40577;
        float r40579 = r40573 + r40578;
        return r40579;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r40580 = x;
        double r40581 = y;
        double r40582 = 1.0;
        double r40583 = r40581 - r40582;
        double r40584 = z;
        double r40585 = r40583 * r40584;
        double r40586 = r40580 - r40585;
        double r40587 = t;
        double r40588 = r40587 - r40582;
        double r40589 = a;
        double r40590 = r40588 * r40589;
        double r40591 = r40586 - r40590;
        double r40592 = r40581 + r40587;
        double r40593 = 2.0;
        double r40594 = r40592 - r40593;
        double r40595 = b;
        double r40596 = r40594 * r40595;
        double r40597 = r40591 + r40596;
        return r40597;
}

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 r40598, r40599, r40600, r40601, r40602, r40603, r40604, r40605, r40606, r40607, r40608, r40609, r40610, r40611, r40612, r40613, r40614, r40615;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r40598);
        mpfr_init(r40599);
        mpfr_init_set_str(r40600, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40601);
        mpfr_init(r40602);
        mpfr_init(r40603);
        mpfr_init(r40604);
        mpfr_init(r40605);
        mpfr_init(r40606);
        mpfr_init(r40607);
        mpfr_init(r40608);
        mpfr_init(r40609);
        mpfr_init(r40610);
        mpfr_init_set_str(r40611, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40612);
        mpfr_init(r40613);
        mpfr_init(r40614);
        mpfr_init(r40615);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40598, x, MPFR_RNDN);
        mpfr_set_d(r40599, y, MPFR_RNDN);
        ;
        mpfr_sub(r40601, r40599, r40600, MPFR_RNDN);
        mpfr_set_d(r40602, z, MPFR_RNDN);
        mpfr_mul(r40603, r40601, r40602, MPFR_RNDN);
        mpfr_sub(r40604, r40598, r40603, MPFR_RNDN);
        mpfr_set_d(r40605, t, MPFR_RNDN);
        mpfr_sub(r40606, r40605, r40600, MPFR_RNDN);
        mpfr_set_d(r40607, a, MPFR_RNDN);
        mpfr_mul(r40608, r40606, r40607, MPFR_RNDN);
        mpfr_sub(r40609, r40604, r40608, MPFR_RNDN);
        mpfr_add(r40610, r40599, r40605, MPFR_RNDN);
        ;
        mpfr_sub(r40612, r40610, r40611, MPFR_RNDN);
        mpfr_set_d(r40613, b, MPFR_RNDN);
        mpfr_mul(r40614, r40612, r40613, MPFR_RNDN);
        mpfr_add(r40615, r40609, r40614, MPFR_RNDN);
        return mpfr_get_d(r40615, MPFR_RNDN);
}

static mpfr_t r40616, r40617, r40618, r40619, r40620, r40621, r40622, r40623, r40624, r40625, r40626, r40627, r40628, r40629, r40630, r40631, r40632, r40633;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r40616);
        mpfr_init(r40617);
        mpfr_init_set_str(r40618, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40619);
        mpfr_init(r40620);
        mpfr_init(r40621);
        mpfr_init(r40622);
        mpfr_init(r40623);
        mpfr_init(r40624);
        mpfr_init(r40625);
        mpfr_init(r40626);
        mpfr_init(r40627);
        mpfr_init(r40628);
        mpfr_init_set_str(r40629, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40630);
        mpfr_init(r40631);
        mpfr_init(r40632);
        mpfr_init(r40633);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40616, x, MPFR_RNDN);
        mpfr_set_d(r40617, y, MPFR_RNDN);
        ;
        mpfr_sub(r40619, r40617, r40618, MPFR_RNDN);
        mpfr_set_d(r40620, z, MPFR_RNDN);
        mpfr_mul(r40621, r40619, r40620, MPFR_RNDN);
        mpfr_sub(r40622, r40616, r40621, MPFR_RNDN);
        mpfr_set_d(r40623, t, MPFR_RNDN);
        mpfr_sub(r40624, r40623, r40618, MPFR_RNDN);
        mpfr_set_d(r40625, a, MPFR_RNDN);
        mpfr_mul(r40626, r40624, r40625, MPFR_RNDN);
        mpfr_sub(r40627, r40622, r40626, MPFR_RNDN);
        mpfr_add(r40628, r40617, r40623, MPFR_RNDN);
        ;
        mpfr_sub(r40630, r40628, r40629, MPFR_RNDN);
        mpfr_set_d(r40631, b, MPFR_RNDN);
        mpfr_mul(r40632, r40630, r40631, MPFR_RNDN);
        mpfr_add(r40633, r40627, r40632, MPFR_RNDN);
        return mpfr_get_d(r40633, MPFR_RNDN);
}

static mpfr_t r40634, r40635, r40636, r40637, r40638, r40639, r40640, r40641, r40642, r40643, r40644, r40645, r40646, r40647, r40648, r40649, r40650, r40651;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r40634);
        mpfr_init(r40635);
        mpfr_init_set_str(r40636, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40637);
        mpfr_init(r40638);
        mpfr_init(r40639);
        mpfr_init(r40640);
        mpfr_init(r40641);
        mpfr_init(r40642);
        mpfr_init(r40643);
        mpfr_init(r40644);
        mpfr_init(r40645);
        mpfr_init(r40646);
        mpfr_init_set_str(r40647, "2.0", 10, MPFR_RNDN);
        mpfr_init(r40648);
        mpfr_init(r40649);
        mpfr_init(r40650);
        mpfr_init(r40651);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r40634, x, MPFR_RNDN);
        mpfr_set_d(r40635, y, MPFR_RNDN);
        ;
        mpfr_sub(r40637, r40635, r40636, MPFR_RNDN);
        mpfr_set_d(r40638, z, MPFR_RNDN);
        mpfr_mul(r40639, r40637, r40638, MPFR_RNDN);
        mpfr_sub(r40640, r40634, r40639, MPFR_RNDN);
        mpfr_set_d(r40641, t, MPFR_RNDN);
        mpfr_sub(r40642, r40641, r40636, MPFR_RNDN);
        mpfr_set_d(r40643, a, MPFR_RNDN);
        mpfr_mul(r40644, r40642, r40643, MPFR_RNDN);
        mpfr_sub(r40645, r40640, r40644, MPFR_RNDN);
        mpfr_add(r40646, r40635, r40641, MPFR_RNDN);
        ;
        mpfr_sub(r40648, r40646, r40647, MPFR_RNDN);
        mpfr_set_d(r40649, b, MPFR_RNDN);
        mpfr_mul(r40650, r40648, r40649, MPFR_RNDN);
        mpfr_add(r40651, r40645, r40650, MPFR_RNDN);
        return mpfr_get_d(r40651, MPFR_RNDN);
}

