#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 r7861 = 1.0f;
        float r7862 = 6.0f;
        float r7863 = r7861 / r7862;
        float r7864 = -2.0f;
        float r7865 = u1;
        float r7866 = log(r7865);
        float r7867 = r7864 * r7866;
        float r7868 = 0.5f;
        float r7869 = pow(r7867, r7868);
        float r7870 = r7863 * r7869;
        float r7871 = 2.0f;
        float r7872 = atan2(1.0, 0.0);
        float r7873 = r7871 * r7872;
        float r7874 = u2;
        float r7875 = r7873 * r7874;
        float r7876 = cos(r7875);
        float r7877 = r7870 * r7876;
        float r7878 = r7877 + r7868;
        return r7878;
}

double f_id(double u1, double u2) {
        double r7879 = 1.0;
        double r7880 = 6.0;
        double r7881 = r7879 / r7880;
        double r7882 = -2.0;
        double r7883 = u1;
        double r7884 = log(r7883);
        double r7885 = r7882 * r7884;
        double r7886 = 0.5;
        double r7887 = pow(r7885, r7886);
        double r7888 = r7881 * r7887;
        double r7889 = 2.0;
        double r7890 = atan2(1.0, 0.0);
        double r7891 = r7889 * r7890;
        double r7892 = u2;
        double r7893 = r7891 * r7892;
        double r7894 = cos(r7893);
        double r7895 = r7888 * r7894;
        double r7896 = r7895 + r7886;
        return r7896;
}


double f_of(float u1, float u2) {
        float r7897 = 1.0f;
        float r7898 = 6.0f;
        float r7899 = -2.0f;
        float r7900 = u1;
        float r7901 = log(r7900);
        float r7902 = r7899 * r7901;
        float r7903 = 0.5f;
        float r7904 = pow(r7902, r7903);
        float r7905 = r7898 / r7904;
        float r7906 = r7897 / r7905;
        float r7907 = atan2(1.0, 0.0);
        float r7908 = 2.0f;
        float r7909 = u2;
        float r7910 = r7908 * r7909;
        float r7911 = r7907 * r7910;
        float r7912 = cos(r7911);
        float r7913 = r7906 * r7912;
        float r7914 = r7913 + r7903;
        return r7914;
}

double f_od(double u1, double u2) {
        double r7915 = 1.0;
        double r7916 = 6.0;
        double r7917 = -2.0;
        double r7918 = u1;
        double r7919 = log(r7918);
        double r7920 = r7917 * r7919;
        double r7921 = 0.5;
        double r7922 = pow(r7920, r7921);
        double r7923 = r7916 / r7922;
        double r7924 = r7915 / r7923;
        double r7925 = atan2(1.0, 0.0);
        double r7926 = 2.0;
        double r7927 = u2;
        double r7928 = r7926 * r7927;
        double r7929 = r7925 * r7928;
        double r7930 = cos(r7929);
        double r7931 = r7924 * r7930;
        double r7932 = r7931 + r7921;
        return r7932;
}

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 r7933, r7934, r7935, r7936, r7937, r7938, r7939, r7940, r7941, r7942, r7943, r7944, r7945, r7946, r7947, r7948, r7949, r7950;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7933, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7934, "6", 10, MPFR_RNDN);
        mpfr_init(r7935);
        mpfr_init_set_str(r7936, "-2", 10, MPFR_RNDN);
        mpfr_init(r7937);
        mpfr_init(r7938);
        mpfr_init(r7939);
        mpfr_init_set_str(r7940, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7941);
        mpfr_init(r7942);
        mpfr_init_set_str(r7943, "2", 10, MPFR_RNDN);
        mpfr_init(r7944);
        mpfr_init(r7945);
        mpfr_init(r7946);
        mpfr_init(r7947);
        mpfr_init(r7948);
        mpfr_init(r7949);
        mpfr_init(r7950);
}

double f_im(double u1, double u2) {
        ;
        ;
        mpfr_div(r7935, r7933, r7934, MPFR_RNDN);
        ;
        mpfr_set_d(r7937, u1, MPFR_RNDN);
        mpfr_log(r7938, r7937, MPFR_RNDN);
        mpfr_mul(r7939, r7936, r7938, MPFR_RNDN);
        ;
        mpfr_pow(r7941, r7939, r7940, MPFR_RNDN);
        mpfr_mul(r7942, r7935, r7941, MPFR_RNDN);
        ;
        mpfr_const_pi(r7944, MPFR_RNDN);
        mpfr_mul(r7945, r7943, r7944, MPFR_RNDN);
        mpfr_set_d(r7946, u2, MPFR_RNDN);
        mpfr_mul(r7947, r7945, r7946, MPFR_RNDN);
        mpfr_cos(r7948, r7947, MPFR_RNDN);
        mpfr_mul(r7949, r7942, r7948, MPFR_RNDN);
        mpfr_add(r7950, r7949, r7940, MPFR_RNDN);
        return mpfr_get_d(r7950, MPFR_RNDN);
}

static mpfr_t r7951, r7952, r7953, r7954, r7955, r7956, r7957, r7958, r7959, r7960, r7961, r7962, r7963, r7964, r7965, r7966, r7967, r7968;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7951, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7952, "6", 10, MPFR_RNDN);
        mpfr_init_set_str(r7953, "-2", 10, MPFR_RNDN);
        mpfr_init(r7954);
        mpfr_init(r7955);
        mpfr_init(r7956);
        mpfr_init_set_str(r7957, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7958);
        mpfr_init(r7959);
        mpfr_init(r7960);
        mpfr_init(r7961);
        mpfr_init_set_str(r7962, "2", 10, MPFR_RNDN);
        mpfr_init(r7963);
        mpfr_init(r7964);
        mpfr_init(r7965);
        mpfr_init(r7966);
        mpfr_init(r7967);
        mpfr_init(r7968);
}

double f_fm(double u1, double u2) {
        ;
        ;
        ;
        mpfr_set_d(r7954, u1, MPFR_RNDN);
        mpfr_log(r7955, r7954, MPFR_RNDN);
        mpfr_mul(r7956, r7953, r7955, MPFR_RNDN);
        ;
        mpfr_pow(r7958, r7956, r7957, MPFR_RNDN);
        mpfr_div(r7959, r7952, r7958, MPFR_RNDN);
        mpfr_div(r7960, r7951, r7959, MPFR_RNDN);
        mpfr_const_pi(r7961, MPFR_RNDN);
        ;
        mpfr_set_d(r7963, u2, MPFR_RNDN);
        mpfr_mul(r7964, r7962, r7963, MPFR_RNDN);
        mpfr_mul(r7965, r7961, r7964, MPFR_RNDN);
        mpfr_cos(r7966, r7965, MPFR_RNDN);
        mpfr_mul(r7967, r7960, r7966, MPFR_RNDN);
        mpfr_add(r7968, r7967, r7957, MPFR_RNDN);
        return mpfr_get_d(r7968, MPFR_RNDN);
}

static mpfr_t r7969, r7970, r7971, r7972, r7973, r7974, r7975, r7976, r7977, r7978, r7979, r7980, r7981, r7982, r7983, r7984, r7985, r7986;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7969, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r7970, "6", 10, MPFR_RNDN);
        mpfr_init_set_str(r7971, "-2", 10, MPFR_RNDN);
        mpfr_init(r7972);
        mpfr_init(r7973);
        mpfr_init(r7974);
        mpfr_init_set_str(r7975, "0.5", 10, MPFR_RNDN);
        mpfr_init(r7976);
        mpfr_init(r7977);
        mpfr_init(r7978);
        mpfr_init(r7979);
        mpfr_init_set_str(r7980, "2", 10, MPFR_RNDN);
        mpfr_init(r7981);
        mpfr_init(r7982);
        mpfr_init(r7983);
        mpfr_init(r7984);
        mpfr_init(r7985);
        mpfr_init(r7986);
}

double f_dm(double u1, double u2) {
        ;
        ;
        ;
        mpfr_set_d(r7972, u1, MPFR_RNDN);
        mpfr_log(r7973, r7972, MPFR_RNDN);
        mpfr_mul(r7974, r7971, r7973, MPFR_RNDN);
        ;
        mpfr_pow(r7976, r7974, r7975, MPFR_RNDN);
        mpfr_div(r7977, r7970, r7976, MPFR_RNDN);
        mpfr_div(r7978, r7969, r7977, MPFR_RNDN);
        mpfr_const_pi(r7979, MPFR_RNDN);
        ;
        mpfr_set_d(r7981, u2, MPFR_RNDN);
        mpfr_mul(r7982, r7980, r7981, MPFR_RNDN);
        mpfr_mul(r7983, r7979, r7982, MPFR_RNDN);
        mpfr_cos(r7984, r7983, MPFR_RNDN);
        mpfr_mul(r7985, r7978, r7984, MPFR_RNDN);
        mpfr_add(r7986, r7985, r7975, MPFR_RNDN);
        return mpfr_get_d(r7986, MPFR_RNDN);
}

