#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 r7715 = 1.0f;
        float r7716 = 6.0f;
        float r7717 = r7715 / r7716;
        float r7718 = -2.0f;
        float r7719 = u1;
        float r7720 = log(r7719);
        float r7721 = r7718 * r7720;
        float r7722 = 0.5f;
        float r7723 = pow(r7721, r7722);
        float r7724 = r7717 * r7723;
        float r7725 = 2.0f;
        float r7726 = atan2(1.0, 0.0);
        float r7727 = r7725 * r7726;
        float r7728 = u2;
        float r7729 = r7727 * r7728;
        float r7730 = cos(r7729);
        float r7731 = r7724 * r7730;
        float r7732 = r7731 + r7722;
        return r7732;
}

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


double f_of(float u1, float u2) {
        float r7751 = -2.0f;
        float r7752 = u1;
        float r7753 = log(r7752);
        float r7754 = r7751 * r7753;
        float r7755 = 0.5f;
        float r7756 = pow(r7754, r7755);
        float r7757 = 6.0f;
        float r7758 = r7756 / r7757;
        float r7759 = log(r7758);
        float r7760 = exp(r7759);
        float r7761 = 2.0f;
        float r7762 = atan2(1.0, 0.0);
        float r7763 = u2;
        float r7764 = r7762 * r7763;
        float r7765 = r7761 * r7764;
        float r7766 = cos(r7765);
        float r7767 = fma(r7760, r7766, r7755);
        return r7767;
}

double f_od(double u1, double u2) {
        double r7768 = -2.0;
        double r7769 = u1;
        double r7770 = log(r7769);
        double r7771 = r7768 * r7770;
        double r7772 = 0.5;
        double r7773 = pow(r7771, r7772);
        double r7774 = 6.0;
        double r7775 = r7773 / r7774;
        double r7776 = log(r7775);
        double r7777 = exp(r7776);
        double r7778 = 2.0;
        double r7779 = atan2(1.0, 0.0);
        double r7780 = u2;
        double r7781 = r7779 * r7780;
        double r7782 = r7778 * r7781;
        double r7783 = cos(r7782);
        double r7784 = fma(r7777, r7783, r7772);
        return r7784;
}

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 r7785, r7786, r7787, r7788, r7789, r7790, r7791, r7792, r7793, r7794, r7795, r7796, r7797, r7798, r7799, r7800, r7801, r7802;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7785, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7786, "6", 10, MPFR_RNDN);
        mpfr_init(r7787);
        mpfr_init_set_str(r7788, "-2", 10, MPFR_RNDN);
        mpfr_init(r7789);
        mpfr_init(r7790);
        mpfr_init(r7791);
        mpfr_init_set_str(r7792, "0.5", 10, MPFR_RNDN);
        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);
        mpfr_init(r7802);
}

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

static mpfr_t r7803, r7804, r7805, r7806, r7807, r7808, r7809, r7810, r7811, r7812, r7813, r7814, r7815, r7816, r7817, r7818, r7819;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7803, "-2", 10, MPFR_RNDN);
        mpfr_init(r7804);
        mpfr_init(r7805);
        mpfr_init(r7806);
        mpfr_init_set_str(r7807, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7808);
        mpfr_init_set_str(r7809, "6", 10, MPFR_RNDN);
        mpfr_init(r7810);
        mpfr_init(r7811);
        mpfr_init(r7812);
        mpfr_init_set_str(r7813, "2", 10, MPFR_RNDN);
        mpfr_init(r7814);
        mpfr_init(r7815);
        mpfr_init(r7816);
        mpfr_init(r7817);
        mpfr_init(r7818);
        mpfr_init(r7819);
}

double f_fm(double u1, double u2) {
        ;
        mpfr_set_d(r7804, u1, MPFR_RNDN);
        mpfr_log(r7805, r7804, MPFR_RNDN);
        mpfr_mul(r7806, r7803, r7805, MPFR_RNDN);
        ;
        mpfr_pow(r7808, r7806, r7807, MPFR_RNDN);
        ;
        mpfr_div(r7810, r7808, r7809, MPFR_RNDN);
        mpfr_log(r7811, r7810, MPFR_RNDN);
        mpfr_exp(r7812, r7811, MPFR_RNDN);
        ;
        mpfr_const_pi(r7814, MPFR_RNDN);
        mpfr_set_d(r7815, u2, MPFR_RNDN);
        mpfr_mul(r7816, r7814, r7815, MPFR_RNDN);
        mpfr_mul(r7817, r7813, r7816, MPFR_RNDN);
        mpfr_cos(r7818, r7817, MPFR_RNDN);
        mpfr_fma(r7819, r7812, r7818, r7807, MPFR_RNDN);
        return mpfr_get_d(r7819, MPFR_RNDN);
}

static mpfr_t r7820, r7821, r7822, r7823, r7824, r7825, r7826, r7827, r7828, r7829, r7830, r7831, r7832, r7833, r7834, r7835, r7836;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r7820, "-2", 10, MPFR_RNDN);
        mpfr_init(r7821);
        mpfr_init(r7822);
        mpfr_init(r7823);
        mpfr_init_set_str(r7824, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7825);
        mpfr_init_set_str(r7826, "6", 10, MPFR_RNDN);
        mpfr_init(r7827);
        mpfr_init(r7828);
        mpfr_init(r7829);
        mpfr_init_set_str(r7830, "2", 10, MPFR_RNDN);
        mpfr_init(r7831);
        mpfr_init(r7832);
        mpfr_init(r7833);
        mpfr_init(r7834);
        mpfr_init(r7835);
        mpfr_init(r7836);
}

double f_dm(double u1, double u2) {
        ;
        mpfr_set_d(r7821, u1, MPFR_RNDN);
        mpfr_log(r7822, r7821, MPFR_RNDN);
        mpfr_mul(r7823, r7820, r7822, MPFR_RNDN);
        ;
        mpfr_pow(r7825, r7823, r7824, MPFR_RNDN);
        ;
        mpfr_div(r7827, r7825, r7826, MPFR_RNDN);
        mpfr_log(r7828, r7827, MPFR_RNDN);
        mpfr_exp(r7829, r7828, MPFR_RNDN);
        ;
        mpfr_const_pi(r7831, MPFR_RNDN);
        mpfr_set_d(r7832, u2, MPFR_RNDN);
        mpfr_mul(r7833, r7831, r7832, MPFR_RNDN);
        mpfr_mul(r7834, r7830, r7833, MPFR_RNDN);
        mpfr_cos(r7835, r7834, MPFR_RNDN);
        mpfr_fma(r7836, r7829, r7835, r7824, MPFR_RNDN);
        return mpfr_get_d(r7836, MPFR_RNDN);
}

