#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 r20790 = 1;
        float r20791 = 6;
        float r20792 = r20790 / r20791;
        float r20793 = -2;
        float r20794 = u1;
        float r20795 = log(r20794);
        float r20796 = r20793 * r20795;
        float r20797 = 0.5;
        float r20798 = pow(r20796, r20797);
        float r20799 = r20792 * r20798;
        float r20800 = 2;
        float r20801 = atan2(1.0, 0.0);
        float r20802 = r20800 * r20801;
        float r20803 = u2;
        float r20804 = r20802 * r20803;
        float r20805 = cos(r20804);
        float r20806 = r20799 * r20805;
        float r20807 = r20806 + r20797;
        return r20807;
}

double f_id(double u1, double u2) {
        double r20808 = 1;
        double r20809 = 6;
        double r20810 = r20808 / r20809;
        double r20811 = -2;
        double r20812 = u1;
        double r20813 = log(r20812);
        double r20814 = r20811 * r20813;
        double r20815 = 0.5;
        double r20816 = pow(r20814, r20815);
        double r20817 = r20810 * r20816;
        double r20818 = 2;
        double r20819 = atan2(1.0, 0.0);
        double r20820 = r20818 * r20819;
        double r20821 = u2;
        double r20822 = r20820 * r20821;
        double r20823 = cos(r20822);
        double r20824 = r20817 * r20823;
        double r20825 = r20824 + r20815;
        return r20825;
}


double f_of(float u1, float u2) {
        float r20826 = 0.5;
        float r20827 = u2;
        float r20828 = atan2(1.0, 0.0);
        float r20829 = r20828 + r20828;
        float r20830 = r20827 * r20829;
        float r20831 = cos(r20830);
        float r20832 = 1;
        float r20833 = 6;
        float r20834 = -2;
        float r20835 = u1;
        float r20836 = log(r20835);
        float r20837 = r20834 * r20836;
        float r20838 = pow(r20837, r20826);
        float r20839 = r20833 / r20838;
        float r20840 = r20832 / r20839;
        float r20841 = r20831 * r20840;
        float r20842 = r20826 + r20841;
        return r20842;
}

double f_od(double u1, double u2) {
        double r20843 = 0.5;
        double r20844 = u2;
        double r20845 = atan2(1.0, 0.0);
        double r20846 = r20845 + r20845;
        double r20847 = r20844 * r20846;
        double r20848 = cos(r20847);
        double r20849 = 1;
        double r20850 = 6;
        double r20851 = -2;
        double r20852 = u1;
        double r20853 = log(r20852);
        double r20854 = r20851 * r20853;
        double r20855 = pow(r20854, r20843);
        double r20856 = r20850 / r20855;
        double r20857 = r20849 / r20856;
        double r20858 = r20848 * r20857;
        double r20859 = r20843 + r20858;
        return r20859;
}

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 r20860, r20861, r20862, r20863, r20864, r20865, r20866, r20867, r20868, r20869, r20870, r20871, r20872, r20873, r20874, r20875, r20876, r20877;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20860, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r20861, "6", 10, MPFR_RNDN);
        mpfr_init(r20862);
        mpfr_init_set_str(r20863, "-2", 10, MPFR_RNDN);
        mpfr_init(r20864);
        mpfr_init(r20865);
        mpfr_init(r20866);
        mpfr_init_set_str(r20867, "0.5", 10, MPFR_RNDN);
        mpfr_init(r20868);
        mpfr_init(r20869);
        mpfr_init_set_str(r20870, "2", 10, MPFR_RNDN);
        mpfr_init(r20871);
        mpfr_init(r20872);
        mpfr_init(r20873);
        mpfr_init(r20874);
        mpfr_init(r20875);
        mpfr_init(r20876);
        mpfr_init(r20877);
}

double f_im(double u1, double u2) {
        ;
        ;
        mpfr_div(r20862, r20860, r20861, MPFR_RNDN);
        ;
        mpfr_set_d(r20864, u1, MPFR_RNDN);
        mpfr_log(r20865, r20864, MPFR_RNDN);
        mpfr_mul(r20866, r20863, r20865, MPFR_RNDN);
        ;
        mpfr_pow(r20868, r20866, r20867, MPFR_RNDN);
        mpfr_mul(r20869, r20862, r20868, MPFR_RNDN);
        ;
        mpfr_const_pi(r20871, MPFR_RNDN);
        mpfr_mul(r20872, r20870, r20871, MPFR_RNDN);
        mpfr_set_d(r20873, u2, MPFR_RNDN);
        mpfr_mul(r20874, r20872, r20873, MPFR_RNDN);
        mpfr_cos(r20875, r20874, MPFR_RNDN);
        mpfr_mul(r20876, r20869, r20875, MPFR_RNDN);
        mpfr_add(r20877, r20876, r20867, MPFR_RNDN);
        return mpfr_get_d(r20877, MPFR_RNDN);
}

static mpfr_t r20878, r20879, r20880, r20881, r20882, r20883, r20884, r20885, r20886, r20887, r20888, r20889, r20890, r20891, r20892, r20893, r20894;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20878, "0.5", 10, MPFR_RNDN);
        mpfr_init(r20879);
        mpfr_init(r20880);
        mpfr_init(r20881);
        mpfr_init(r20882);
        mpfr_init(r20883);
        mpfr_init_set_str(r20884, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r20885, "6", 10, MPFR_RNDN);
        mpfr_init_set_str(r20886, "-2", 10, MPFR_RNDN);
        mpfr_init(r20887);
        mpfr_init(r20888);
        mpfr_init(r20889);
        mpfr_init(r20890);
        mpfr_init(r20891);
        mpfr_init(r20892);
        mpfr_init(r20893);
        mpfr_init(r20894);
}

double f_fm(double u1, double u2) {
        ;
        mpfr_set_d(r20879, u2, MPFR_RNDN);
        mpfr_const_pi(r20880, MPFR_RNDN);
        mpfr_add(r20881, r20880, r20880, MPFR_RNDN);
        mpfr_mul(r20882, r20879, r20881, MPFR_RNDN);
        mpfr_cos(r20883, r20882, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_set_d(r20887, u1, MPFR_RNDN);
        mpfr_log(r20888, r20887, MPFR_RNDN);
        mpfr_mul(r20889, r20886, r20888, MPFR_RNDN);
        mpfr_pow(r20890, r20889, r20878, MPFR_RNDN);
        mpfr_div(r20891, r20885, r20890, MPFR_RNDN);
        mpfr_div(r20892, r20884, r20891, MPFR_RNDN);
        mpfr_mul(r20893, r20883, r20892, MPFR_RNDN);
        mpfr_add(r20894, r20878, r20893, MPFR_RNDN);
        return mpfr_get_d(r20894, MPFR_RNDN);
}

static mpfr_t r20895, r20896, r20897, r20898, r20899, r20900, r20901, r20902, r20903, r20904, r20905, r20906, r20907, r20908, r20909, r20910, r20911;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20895, "0.5", 10, MPFR_RNDN);
        mpfr_init(r20896);
        mpfr_init(r20897);
        mpfr_init(r20898);
        mpfr_init(r20899);
        mpfr_init(r20900);
        mpfr_init_set_str(r20901, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r20902, "6", 10, MPFR_RNDN);
        mpfr_init_set_str(r20903, "-2", 10, MPFR_RNDN);
        mpfr_init(r20904);
        mpfr_init(r20905);
        mpfr_init(r20906);
        mpfr_init(r20907);
        mpfr_init(r20908);
        mpfr_init(r20909);
        mpfr_init(r20910);
        mpfr_init(r20911);
}

double f_dm(double u1, double u2) {
        ;
        mpfr_set_d(r20896, u2, MPFR_RNDN);
        mpfr_const_pi(r20897, MPFR_RNDN);
        mpfr_add(r20898, r20897, r20897, MPFR_RNDN);
        mpfr_mul(r20899, r20896, r20898, MPFR_RNDN);
        mpfr_cos(r20900, r20899, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_set_d(r20904, u1, MPFR_RNDN);
        mpfr_log(r20905, r20904, MPFR_RNDN);
        mpfr_mul(r20906, r20903, r20905, MPFR_RNDN);
        mpfr_pow(r20907, r20906, r20895, MPFR_RNDN);
        mpfr_div(r20908, r20902, r20907, MPFR_RNDN);
        mpfr_div(r20909, r20901, r20908, MPFR_RNDN);
        mpfr_mul(r20910, r20900, r20909, MPFR_RNDN);
        mpfr_add(r20911, r20895, r20910, MPFR_RNDN);
        return mpfr_get_d(r20911, MPFR_RNDN);
}

