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

char *name = "Data.Random.Distribution.T:$ccdf from random-fu-0.2.6.2";

double f_if(float x, float y) {
        float r55824 = x;
        float r55825 = y;
        float r55826 = r55824 + r55825;
        float r55827 = r55825 + r55825;
        float r55828 = r55826 / r55827;
        return r55828;
}

double f_id(double x, double y) {
        double r55829 = x;
        double r55830 = y;
        double r55831 = r55829 + r55830;
        double r55832 = r55830 + r55830;
        double r55833 = r55831 / r55832;
        return r55833;
}


double f_of(float x, float y) {
        float r55834 = x;
        float r55835 = y;
        float r55836 = r55834 + r55835;
        float r55837 = r55835 + r55835;
        float r55838 = r55836 / r55837;
        return r55838;
}

double f_od(double x, double y) {
        double r55839 = x;
        double r55840 = y;
        double r55841 = r55839 + r55840;
        double r55842 = r55840 + r55840;
        double r55843 = r55841 / r55842;
        return r55843;
}

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 r55844, r55845, r55846, r55847, r55848;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55844);
        mpfr_init(r55845);
        mpfr_init(r55846);
        mpfr_init(r55847);
        mpfr_init(r55848);
}

double f_im(double x, double y) {
        mpfr_set_d(r55844, x, MPFR_RNDN);
        mpfr_set_d(r55845, y, MPFR_RNDN);
        mpfr_add(r55846, r55844, r55845, MPFR_RNDN);
        mpfr_add(r55847, r55845, r55845, MPFR_RNDN);
        mpfr_div(r55848, r55846, r55847, MPFR_RNDN);
        return mpfr_get_d(r55848, MPFR_RNDN);
}

static mpfr_t r55849, r55850, r55851, r55852, r55853;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55849);
        mpfr_init(r55850);
        mpfr_init(r55851);
        mpfr_init(r55852);
        mpfr_init(r55853);
}

double f_fm(double x, double y) {
        mpfr_set_d(r55849, x, MPFR_RNDN);
        mpfr_set_d(r55850, y, MPFR_RNDN);
        mpfr_add(r55851, r55849, r55850, MPFR_RNDN);
        mpfr_add(r55852, r55850, r55850, MPFR_RNDN);
        mpfr_div(r55853, r55851, r55852, MPFR_RNDN);
        return mpfr_get_d(r55853, MPFR_RNDN);
}

static mpfr_t r55854, r55855, r55856, r55857, r55858;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55854);
        mpfr_init(r55855);
        mpfr_init(r55856);
        mpfr_init(r55857);
        mpfr_init(r55858);
}

double f_dm(double x, double y) {
        mpfr_set_d(r55854, x, MPFR_RNDN);
        mpfr_set_d(r55855, y, MPFR_RNDN);
        mpfr_add(r55856, r55854, r55855, MPFR_RNDN);
        mpfr_add(r55857, r55855, r55855, MPFR_RNDN);
        mpfr_div(r55858, r55856, r55857, MPFR_RNDN);
        return mpfr_get_d(r55858, MPFR_RNDN);
}

