#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 r7680 = 1.0f;
        float r7681 = 6.0f;
        float r7682 = r7680 / r7681;
        float r7683 = -2.0f;
        float r7684 = u1;
        float r7685 = log(r7684);
        float r7686 = r7683 * r7685;
        float r7687 = 0.5f;
        float r7688 = pow(r7686, r7687);
        float r7689 = r7682 * r7688;
        float r7690 = 2.0f;
        float r7691 = atan2(1.0, 0.0);
        float r7692 = r7690 * r7691;
        float r7693 = u2;
        float r7694 = r7692 * r7693;
        float r7695 = cos(r7694);
        float r7696 = r7689 * r7695;
        float r7697 = r7696 + r7687;
        return r7697;
}

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


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

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

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

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

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

static mpfr_t r7768, r7769, r7770, r7771, r7772, r7773, r7774, r7775, r7776, r7777, r7778, r7779, r7780, r7781, r7782, r7783, r7784;

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

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

static mpfr_t r7785, r7786, r7787, r7788, r7789, r7790, r7791, r7792, r7793, r7794, r7795, r7796, r7797, r7798, r7799, r7800, r7801;

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

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

