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

char *name = "normal distribution";

double f_if(float u1, float u2) {
        float r7677 = 1.0f;
        float r7678 = 6.0f;
        float r7679 = r7677 / r7678;
        float r7680 = -2.0f;
        float r7681 = u1;
        float r7682 = log(r7681);
        float r7683 = r7680 * r7682;
        float r7684 = 0.5f;
        float r7685 = pow(r7683, r7684);
        float r7686 = r7679 * r7685;
        float r7687 = 2.0f;
        float r7688 = atan2(1.0, 0.0);
        float r7689 = r7687 * r7688;
        float r7690 = u2;
        float r7691 = r7689 * r7690;
        float r7692 = cos(r7691);
        float r7693 = r7686 * r7692;
        float r7694 = r7693 + r7684;
        return r7694;
}

double f_id(double u1, double u2) {
        double r7695 = 1.0;
        double r7696 = 6.0;
        double r7697 = r7695 / r7696;
        double r7698 = -2.0;
        double r7699 = u1;
        double r7700 = log(r7699);
        double r7701 = r7698 * r7700;
        double r7702 = 0.5;
        double r7703 = pow(r7701, r7702);
        double r7704 = r7697 * r7703;
        double r7705 = 2.0;
        double r7706 = atan2(1.0, 0.0);
        double r7707 = r7705 * r7706;
        double r7708 = u2;
        double r7709 = r7707 * r7708;
        double r7710 = cos(r7709);
        double r7711 = r7704 * r7710;
        double r7712 = r7711 + r7702;
        return r7712;
}


double f_of(float u1, float u2) {
        float r7713 = 1.0f;
        float r7714 = 6.0f;
        float r7715 = u1;
        float r7716 = log(r7715);
        float r7717 = -2.0f;
        float r7718 = r7716 * r7717;
        float r7719 = 0.5f;
        float r7720 = pow(r7718, r7719);
        float r7721 = r7714 / r7720;
        float r7722 = r7713 / r7721;
        float r7723 = 2.0f;
        float r7724 = atan2(1.0, 0.0);
        float r7725 = u2;
        float r7726 = r7724 * r7725;
        float r7727 = r7723 * r7726;
        float r7728 = cos(r7727);
        float r7729 = fma(r7722, r7728, r7719);
        return r7729;
}

double f_od(double u1, double u2) {
        double r7730 = 1.0;
        double r7731 = 6.0;
        double r7732 = u1;
        double r7733 = log(r7732);
        double r7734 = -2.0;
        double r7735 = r7733 * r7734;
        double r7736 = 0.5;
        double r7737 = pow(r7735, r7736);
        double r7738 = r7731 / r7737;
        double r7739 = r7730 / r7738;
        double r7740 = 2.0;
        double r7741 = atan2(1.0, 0.0);
        double r7742 = u2;
        double r7743 = r7741 * r7742;
        double r7744 = r7740 * r7743;
        double r7745 = cos(r7744);
        double r7746 = fma(r7739, r7745, r7736);
        return r7746;
}

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 r7747, r7748, r7749, r7750, r7751, r7752, r7753, r7754, r7755, r7756, r7757, r7758, r7759, r7760, r7761, r7762, r7763, r7764;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7747, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7748, "6", 10, MPFR_RNDN);
        mpfr_init(r7749);
        mpfr_init_set_str(r7750, "-2", 10, MPFR_RNDN);
        mpfr_init(r7751);
        mpfr_init(r7752);
        mpfr_init(r7753);
        mpfr_init_set_str(r7754, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7755);
        mpfr_init(r7756);
        mpfr_init_set_str(r7757, "2", 10, MPFR_RNDN);
        mpfr_init(r7758);
        mpfr_init(r7759);
        mpfr_init(r7760);
        mpfr_init(r7761);
        mpfr_init(r7762);
        mpfr_init(r7763);
        mpfr_init(r7764);
}

double f_im(double u1, double u2) {
        ;
        ;
        mpfr_div(r7749, r7747, r7748, MPFR_RNDN);
        ;
        mpfr_set_d(r7751, u1, MPFR_RNDN);
        mpfr_log(r7752, r7751, MPFR_RNDN);
        mpfr_mul(r7753, r7750, r7752, MPFR_RNDN);
        ;
        mpfr_pow(r7755, r7753, r7754, MPFR_RNDN);
        mpfr_mul(r7756, r7749, r7755, MPFR_RNDN);
        ;
        mpfr_const_pi(r7758, MPFR_RNDN);
        mpfr_mul(r7759, r7757, r7758, MPFR_RNDN);
        mpfr_set_d(r7760, u2, MPFR_RNDN);
        mpfr_mul(r7761, r7759, r7760, MPFR_RNDN);
        mpfr_cos(r7762, r7761, MPFR_RNDN);
        mpfr_mul(r7763, r7756, r7762, MPFR_RNDN);
        mpfr_add(r7764, r7763, r7754, MPFR_RNDN);
        return mpfr_get_d(r7764, MPFR_RNDN);
}

static mpfr_t r7765, r7766, r7767, r7768, r7769, r7770, r7771, r7772, r7773, r7774, r7775, r7776, r7777, r7778, r7779, r7780, r7781;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7765, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7766, "6", 10, MPFR_RNDN);
        mpfr_init(r7767);
        mpfr_init(r7768);
        mpfr_init_set_str(r7769, "-2", 10, MPFR_RNDN);
        mpfr_init(r7770);
        mpfr_init_set_str(r7771, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7772);
        mpfr_init(r7773);
        mpfr_init(r7774);
        mpfr_init_set_str(r7775, "2", 10, MPFR_RNDN);
        mpfr_init(r7776);
        mpfr_init(r7777);
        mpfr_init(r7778);
        mpfr_init(r7779);
        mpfr_init(r7780);
        mpfr_init(r7781);
}

double f_fm(double u1, double u2) {
        ;
        ;
        mpfr_set_d(r7767, u1, MPFR_RNDN);
        mpfr_log(r7768, r7767, MPFR_RNDN);
        ;
        mpfr_mul(r7770, r7768, r7769, MPFR_RNDN);
        ;
        mpfr_pow(r7772, r7770, r7771, MPFR_RNDN);
        mpfr_div(r7773, r7766, r7772, MPFR_RNDN);
        mpfr_div(r7774, r7765, r7773, MPFR_RNDN);
        ;
        mpfr_const_pi(r7776, MPFR_RNDN);
        mpfr_set_d(r7777, u2, MPFR_RNDN);
        mpfr_mul(r7778, r7776, r7777, MPFR_RNDN);
        mpfr_mul(r7779, r7775, r7778, MPFR_RNDN);
        mpfr_cos(r7780, r7779, MPFR_RNDN);
        mpfr_fma(r7781, r7774, r7780, r7771, MPFR_RNDN);
        return mpfr_get_d(r7781, MPFR_RNDN);
}

static mpfr_t r7782, r7783, r7784, r7785, r7786, r7787, r7788, r7789, r7790, r7791, r7792, r7793, r7794, r7795, r7796, r7797, r7798;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7782, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7783, "6", 10, MPFR_RNDN);
        mpfr_init(r7784);
        mpfr_init(r7785);
        mpfr_init_set_str(r7786, "-2", 10, MPFR_RNDN);
        mpfr_init(r7787);
        mpfr_init_set_str(r7788, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7789);
        mpfr_init(r7790);
        mpfr_init(r7791);
        mpfr_init_set_str(r7792, "2", 10, MPFR_RNDN);
        mpfr_init(r7793);
        mpfr_init(r7794);
        mpfr_init(r7795);
        mpfr_init(r7796);
        mpfr_init(r7797);
        mpfr_init(r7798);
}

double f_dm(double u1, double u2) {
        ;
        ;
        mpfr_set_d(r7784, u1, MPFR_RNDN);
        mpfr_log(r7785, r7784, MPFR_RNDN);
        ;
        mpfr_mul(r7787, r7785, r7786, MPFR_RNDN);
        ;
        mpfr_pow(r7789, r7787, r7788, MPFR_RNDN);
        mpfr_div(r7790, r7783, r7789, MPFR_RNDN);
        mpfr_div(r7791, r7782, r7790, MPFR_RNDN);
        ;
        mpfr_const_pi(r7793, MPFR_RNDN);
        mpfr_set_d(r7794, u2, MPFR_RNDN);
        mpfr_mul(r7795, r7793, r7794, MPFR_RNDN);
        mpfr_mul(r7796, r7792, r7795, MPFR_RNDN);
        mpfr_cos(r7797, r7796, MPFR_RNDN);
        mpfr_fma(r7798, r7791, r7797, r7788, MPFR_RNDN);
        return mpfr_get_d(r7798, MPFR_RNDN);
}

