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

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

double f_if(float x, float y, float z) {
        float r40416 = x;
        float r40417 = y;
        float r40418 = r40416 * r40417;
        float r40419 = z;
        float r40420 = r40419 * r40419;
        float r40421 = 1.0;
        float r40422 = r40419 + r40421;
        float r40423 = r40420 * r40422;
        float r40424 = r40418 / r40423;
        return r40424;
}

double f_id(double x, double y, double z) {
        double r40425 = x;
        double r40426 = y;
        double r40427 = r40425 * r40426;
        double r40428 = z;
        double r40429 = r40428 * r40428;
        double r40430 = 1.0;
        double r40431 = r40428 + r40430;
        double r40432 = r40429 * r40431;
        double r40433 = r40427 / r40432;
        return r40433;
}


double f_of(float x, float y, float z) {
        float r40434 = z;
        float r40435 = -2.623960079892894e+119;
        bool r40436 = r40434 <= r40435;
        float r40437 = y;
        float r40438 = r40437 / r40434;
        float r40439 = r40438 / r40434;
        float r40440 = x;
        float r40441 = r40439 * r40440;
        float r40442 = 1;
        float r40443 = 1.0;
        float r40444 = r40443 + r40434;
        float r40445 = r40442 / r40444;
        float r40446 = r40441 * r40445;
        float r40447 = r40440 / r40434;
        float r40448 = r40437 * r40447;
        float r40449 = r40434 + r40443;
        float r40450 = r40434 * r40449;
        float r40451 = r40448 / r40450;
        float r40452 = r40436 ? r40446 : r40451;
        return r40452;
}

double f_od(double x, double y, double z) {
        double r40453 = z;
        double r40454 = -2.623960079892894e+119;
        bool r40455 = r40453 <= r40454;
        double r40456 = y;
        double r40457 = r40456 / r40453;
        double r40458 = r40457 / r40453;
        double r40459 = x;
        double r40460 = r40458 * r40459;
        double r40461 = 1;
        double r40462 = 1.0;
        double r40463 = r40462 + r40453;
        double r40464 = r40461 / r40463;
        double r40465 = r40460 * r40464;
        double r40466 = r40459 / r40453;
        double r40467 = r40456 * r40466;
        double r40468 = r40453 + r40462;
        double r40469 = r40453 * r40468;
        double r40470 = r40467 / r40469;
        double r40471 = r40455 ? r40465 : r40470;
        return r40471;
}

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 r40472, r40473, r40474, r40475, r40476, r40477, r40478, r40479, r40480;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40472);
        mpfr_init(r40473);
        mpfr_init(r40474);
        mpfr_init(r40475);
        mpfr_init(r40476);
        mpfr_init_set_str(r40477, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40478);
        mpfr_init(r40479);
        mpfr_init(r40480);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r40472, x, MPFR_RNDN);
        mpfr_set_d(r40473, y, MPFR_RNDN);
        mpfr_mul(r40474, r40472, r40473, MPFR_RNDN);
        mpfr_set_d(r40475, z, MPFR_RNDN);
        mpfr_mul(r40476, r40475, r40475, MPFR_RNDN);
        ;
        mpfr_add(r40478, r40475, r40477, MPFR_RNDN);
        mpfr_mul(r40479, r40476, r40478, MPFR_RNDN);
        mpfr_div(r40480, r40474, r40479, MPFR_RNDN);
        return mpfr_get_d(r40480, MPFR_RNDN);
}

static mpfr_t r40481, r40482, r40483, r40484, r40485, r40486, r40487, r40488, r40489, r40490, r40491, r40492, r40493, r40494, r40495, r40496, r40497, r40498, r40499;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40481);
        mpfr_init_set_str(r40482, "-2.623960079892894e+119", 10, MPFR_RNDN);
        mpfr_init(r40483);
        mpfr_init(r40484);
        mpfr_init(r40485);
        mpfr_init(r40486);
        mpfr_init(r40487);
        mpfr_init(r40488);
        mpfr_init_set_str(r40489, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r40490, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40491);
        mpfr_init(r40492);
        mpfr_init(r40493);
        mpfr_init(r40494);
        mpfr_init(r40495);
        mpfr_init(r40496);
        mpfr_init(r40497);
        mpfr_init(r40498);
        mpfr_init(r40499);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r40481, z, MPFR_RNDN);
        ;
        mpfr_set_si(r40483, mpfr_cmp(r40481, r40482) <= 0, MPFR_RNDN);
        mpfr_set_d(r40484, y, MPFR_RNDN);
        mpfr_div(r40485, r40484, r40481, MPFR_RNDN);
        mpfr_div(r40486, r40485, r40481, MPFR_RNDN);
        mpfr_set_d(r40487, x, MPFR_RNDN);
        mpfr_mul(r40488, r40486, r40487, MPFR_RNDN);
        ;
        ;
        mpfr_add(r40491, r40490, r40481, MPFR_RNDN);
        mpfr_div(r40492, r40489, r40491, MPFR_RNDN);
        mpfr_mul(r40493, r40488, r40492, MPFR_RNDN);
        mpfr_div(r40494, r40487, r40481, MPFR_RNDN);
        mpfr_mul(r40495, r40484, r40494, MPFR_RNDN);
        mpfr_add(r40496, r40481, r40490, MPFR_RNDN);
        mpfr_mul(r40497, r40481, r40496, MPFR_RNDN);
        mpfr_div(r40498, r40495, r40497, MPFR_RNDN);
        if (mpfr_get_si(r40483, MPFR_RNDN)) { mpfr_set(r40499, r40493, MPFR_RNDN); } else { mpfr_set(r40499, r40498, MPFR_RNDN); };
        return mpfr_get_d(r40499, MPFR_RNDN);
}

static mpfr_t r40500, r40501, r40502, r40503, r40504, r40505, r40506, r40507, r40508, r40509, r40510, r40511, r40512, r40513, r40514, r40515, r40516, r40517, r40518;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40500);
        mpfr_init_set_str(r40501, "-2.623960079892894e+119", 10, MPFR_RNDN);
        mpfr_init(r40502);
        mpfr_init(r40503);
        mpfr_init(r40504);
        mpfr_init(r40505);
        mpfr_init(r40506);
        mpfr_init(r40507);
        mpfr_init_set_str(r40508, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r40509, "1.0", 10, MPFR_RNDN);
        mpfr_init(r40510);
        mpfr_init(r40511);
        mpfr_init(r40512);
        mpfr_init(r40513);
        mpfr_init(r40514);
        mpfr_init(r40515);
        mpfr_init(r40516);
        mpfr_init(r40517);
        mpfr_init(r40518);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r40500, z, MPFR_RNDN);
        ;
        mpfr_set_si(r40502, mpfr_cmp(r40500, r40501) <= 0, MPFR_RNDN);
        mpfr_set_d(r40503, y, MPFR_RNDN);
        mpfr_div(r40504, r40503, r40500, MPFR_RNDN);
        mpfr_div(r40505, r40504, r40500, MPFR_RNDN);
        mpfr_set_d(r40506, x, MPFR_RNDN);
        mpfr_mul(r40507, r40505, r40506, MPFR_RNDN);
        ;
        ;
        mpfr_add(r40510, r40509, r40500, MPFR_RNDN);
        mpfr_div(r40511, r40508, r40510, MPFR_RNDN);
        mpfr_mul(r40512, r40507, r40511, MPFR_RNDN);
        mpfr_div(r40513, r40506, r40500, MPFR_RNDN);
        mpfr_mul(r40514, r40503, r40513, MPFR_RNDN);
        mpfr_add(r40515, r40500, r40509, MPFR_RNDN);
        mpfr_mul(r40516, r40500, r40515, MPFR_RNDN);
        mpfr_div(r40517, r40514, r40516, MPFR_RNDN);
        if (mpfr_get_si(r40502, MPFR_RNDN)) { mpfr_set(r40518, r40512, MPFR_RNDN); } else { mpfr_set(r40518, r40517, MPFR_RNDN); };
        return mpfr_get_d(r40518, MPFR_RNDN);
}

