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

char *name = "a parameter of renormalized beta distribution";

double f_if(float m, float v) {
        float r7850 = m;
        float r7851 = 1;
        float r7852 = r7851 - r7850;
        float r7853 = r7850 * r7852;
        float r7854 = v;
        float r7855 = r7853 / r7854;
        float r7856 = r7855 - r7851;
        float r7857 = r7856 * r7850;
        return r7857;
}

double f_id(double m, double v) {
        double r7858 = m;
        double r7859 = 1;
        double r7860 = r7859 - r7858;
        double r7861 = r7858 * r7860;
        double r7862 = v;
        double r7863 = r7861 / r7862;
        double r7864 = r7863 - r7859;
        double r7865 = r7864 * r7858;
        return r7865;
}


double f_of(float m, float v) {
        float r7866 = m;
        float r7867 = v;
        float r7868 = r7866 / r7867;
        float r7869 = r7866 * r7866;
        float r7870 = r7866 - r7869;
        float r7871 = r7868 * r7870;
        float r7872 = r7871 - r7866;
        return r7872;
}

double f_od(double m, double v) {
        double r7873 = m;
        double r7874 = v;
        double r7875 = r7873 / r7874;
        double r7876 = r7873 * r7873;
        double r7877 = r7873 - r7876;
        double r7878 = r7875 * r7877;
        double r7879 = r7878 - r7873;
        return r7879;
}

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 r7880, r7881, r7882, r7883, r7884, r7885, r7886, r7887;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r7880);
        mpfr_init_set_str(r7881, "1", 10, MPFR_RNDN);
        mpfr_init(r7882);
        mpfr_init(r7883);
        mpfr_init(r7884);
        mpfr_init(r7885);
        mpfr_init(r7886);
        mpfr_init(r7887);
}

double f_im(double m, double v) {
        mpfr_set_d(r7880, m, MPFR_RNDN);
        ;
        mpfr_sub(r7882, r7881, r7880, MPFR_RNDN);
        mpfr_mul(r7883, r7880, r7882, MPFR_RNDN);
        mpfr_set_d(r7884, v, MPFR_RNDN);
        mpfr_div(r7885, r7883, r7884, MPFR_RNDN);
        mpfr_sub(r7886, r7885, r7881, MPFR_RNDN);
        mpfr_mul(r7887, r7886, r7880, MPFR_RNDN);
        return mpfr_get_d(r7887, MPFR_RNDN);
}

static mpfr_t r7888, r7889, r7890, r7891, r7892, r7893, r7894;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r7888);
        mpfr_init(r7889);
        mpfr_init(r7890);
        mpfr_init(r7891);
        mpfr_init(r7892);
        mpfr_init(r7893);
        mpfr_init(r7894);
}

double f_fm(double m, double v) {
        mpfr_set_d(r7888, m, MPFR_RNDN);
        mpfr_set_d(r7889, v, MPFR_RNDN);
        mpfr_div(r7890, r7888, r7889, MPFR_RNDN);
        mpfr_mul(r7891, r7888, r7888, MPFR_RNDN);
        mpfr_sub(r7892, r7888, r7891, MPFR_RNDN);
        mpfr_mul(r7893, r7890, r7892, MPFR_RNDN);
        mpfr_sub(r7894, r7893, r7888, MPFR_RNDN);
        return mpfr_get_d(r7894, MPFR_RNDN);
}

static mpfr_t r7895, r7896, r7897, r7898, r7899, r7900, r7901;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r7895);
        mpfr_init(r7896);
        mpfr_init(r7897);
        mpfr_init(r7898);
        mpfr_init(r7899);
        mpfr_init(r7900);
        mpfr_init(r7901);
}

double f_dm(double m, double v) {
        mpfr_set_d(r7895, m, MPFR_RNDN);
        mpfr_set_d(r7896, v, MPFR_RNDN);
        mpfr_div(r7897, r7895, r7896, MPFR_RNDN);
        mpfr_mul(r7898, r7895, r7895, MPFR_RNDN);
        mpfr_sub(r7899, r7895, r7898, MPFR_RNDN);
        mpfr_mul(r7900, r7897, r7899, MPFR_RNDN);
        mpfr_sub(r7901, r7900, r7895, MPFR_RNDN);
        return mpfr_get_d(r7901, MPFR_RNDN);
}

