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

char *name = "Data.Random.Distribution.Normal:normalTail from random-fu-0.2.6.2";

double f_if(float x, float y) {
        float r55723 = x;
        float r55724 = r55723 * r55723;
        float r55725 = y;
        float r55726 = r55724 + r55725;
        float r55727 = r55726 + r55725;
        return r55727;
}

double f_id(double x, double y) {
        double r55728 = x;
        double r55729 = r55728 * r55728;
        double r55730 = y;
        double r55731 = r55729 + r55730;
        double r55732 = r55731 + r55730;
        return r55732;
}


double f_of(float x, float y) {
        float r55733 = x;
        float r55734 = r55733 * r55733;
        float r55735 = y;
        float r55736 = r55734 + r55735;
        float r55737 = r55736 + r55735;
        return r55737;
}

double f_od(double x, double y) {
        double r55738 = x;
        double r55739 = r55738 * r55738;
        double r55740 = y;
        double r55741 = r55739 + r55740;
        double r55742 = r55741 + r55740;
        return r55742;
}

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 r55743, r55744, r55745, r55746, r55747;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55743);
        mpfr_init(r55744);
        mpfr_init(r55745);
        mpfr_init(r55746);
        mpfr_init(r55747);
}

double f_im(double x, double y) {
        mpfr_set_d(r55743, x, MPFR_RNDN);
        mpfr_mul(r55744, r55743, r55743, MPFR_RNDN);
        mpfr_set_d(r55745, y, MPFR_RNDN);
        mpfr_add(r55746, r55744, r55745, MPFR_RNDN);
        mpfr_add(r55747, r55746, r55745, MPFR_RNDN);
        return mpfr_get_d(r55747, MPFR_RNDN);
}

static mpfr_t r55748, r55749, r55750, r55751, r55752;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55748);
        mpfr_init(r55749);
        mpfr_init(r55750);
        mpfr_init(r55751);
        mpfr_init(r55752);
}

double f_fm(double x, double y) {
        mpfr_set_d(r55748, x, MPFR_RNDN);
        mpfr_mul(r55749, r55748, r55748, MPFR_RNDN);
        mpfr_set_d(r55750, y, MPFR_RNDN);
        mpfr_add(r55751, r55749, r55750, MPFR_RNDN);
        mpfr_add(r55752, r55751, r55750, MPFR_RNDN);
        return mpfr_get_d(r55752, MPFR_RNDN);
}

static mpfr_t r55753, r55754, r55755, r55756, r55757;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55753);
        mpfr_init(r55754);
        mpfr_init(r55755);
        mpfr_init(r55756);
        mpfr_init(r55757);
}

double f_dm(double x, double y) {
        mpfr_set_d(r55753, x, MPFR_RNDN);
        mpfr_mul(r55754, r55753, r55753, MPFR_RNDN);
        mpfr_set_d(r55755, y, MPFR_RNDN);
        mpfr_add(r55756, r55754, r55755, MPFR_RNDN);
        mpfr_add(r55757, r55756, r55755, MPFR_RNDN);
        return mpfr_get_d(r55757, MPFR_RNDN);
}

