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

char *name = "FastMath dist3";

double f_if(float d1, float d2, float d3) {
        float r20799 = d1;
        float r20800 = d2;
        float r20801 = r20799 * r20800;
        float r20802 = d3;
        float r20803 = 5.0f;
        float r20804 = r20802 + r20803;
        float r20805 = r20804 * r20799;
        float r20806 = r20801 + r20805;
        float r20807 = 32.0f;
        float r20808 = r20799 * r20807;
        float r20809 = r20806 + r20808;
        return r20809;
}

double f_id(double d1, double d2, double d3) {
        double r20810 = d1;
        double r20811 = d2;
        double r20812 = r20810 * r20811;
        double r20813 = d3;
        double r20814 = 5.0;
        double r20815 = r20813 + r20814;
        double r20816 = r20815 * r20810;
        double r20817 = r20812 + r20816;
        double r20818 = 32.0;
        double r20819 = r20810 * r20818;
        double r20820 = r20817 + r20819;
        return r20820;
}


double f_of(float d1, float d2, float d3) {
        float r20821 = d1;
        float r20822 = d2;
        float r20823 = d3;
        float r20824 = r20822 + r20823;
        float r20825 = 5.0f;
        float r20826 = 32.0f;
        float r20827 = r20825 + r20826;
        float r20828 = r20824 + r20827;
        float r20829 = r20821 * r20828;
        return r20829;
}

double f_od(double d1, double d2, double d3) {
        double r20830 = d1;
        double r20831 = d2;
        double r20832 = d3;
        double r20833 = r20831 + r20832;
        double r20834 = 5.0;
        double r20835 = 32.0;
        double r20836 = r20834 + r20835;
        double r20837 = r20833 + r20836;
        double r20838 = r20830 * r20837;
        return r20838;
}

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 r20839, r20840, r20841, r20842, r20843, r20844, r20845, r20846, r20847, r20848, r20849;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r20839);
        mpfr_init(r20840);
        mpfr_init(r20841);
        mpfr_init(r20842);
        mpfr_init_set_str(r20843, "5", 10, MPFR_RNDN);
        mpfr_init(r20844);
        mpfr_init(r20845);
        mpfr_init(r20846);
        mpfr_init_set_str(r20847, "32", 10, MPFR_RNDN);
        mpfr_init(r20848);
        mpfr_init(r20849);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r20839, d1, MPFR_RNDN);
        mpfr_set_d(r20840, d2, MPFR_RNDN);
        mpfr_mul(r20841, r20839, r20840, MPFR_RNDN);
        mpfr_set_d(r20842, d3, MPFR_RNDN);
        ;
        mpfr_add(r20844, r20842, r20843, MPFR_RNDN);
        mpfr_mul(r20845, r20844, r20839, MPFR_RNDN);
        mpfr_add(r20846, r20841, r20845, MPFR_RNDN);
        ;
        mpfr_mul(r20848, r20839, r20847, MPFR_RNDN);
        mpfr_add(r20849, r20846, r20848, MPFR_RNDN);
        return mpfr_get_d(r20849, MPFR_RNDN);
}

static mpfr_t r20850, r20851, r20852, r20853, r20854, r20855, r20856, r20857, r20858;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r20850);
        mpfr_init(r20851);
        mpfr_init(r20852);
        mpfr_init(r20853);
        mpfr_init_set_str(r20854, "5", 10, MPFR_RNDN);
        mpfr_init_set_str(r20855, "32", 10, MPFR_RNDN);
        mpfr_init(r20856);
        mpfr_init(r20857);
        mpfr_init(r20858);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r20850, d1, MPFR_RNDN);
        mpfr_set_d(r20851, d2, MPFR_RNDN);
        mpfr_set_d(r20852, d3, MPFR_RNDN);
        mpfr_add(r20853, r20851, r20852, MPFR_RNDN);
        ;
        ;
        mpfr_add(r20856, r20854, r20855, MPFR_RNDN);
        mpfr_add(r20857, r20853, r20856, MPFR_RNDN);
        mpfr_mul(r20858, r20850, r20857, MPFR_RNDN);
        return mpfr_get_d(r20858, MPFR_RNDN);
}

static mpfr_t r20859, r20860, r20861, r20862, r20863, r20864, r20865, r20866, r20867;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r20859);
        mpfr_init(r20860);
        mpfr_init(r20861);
        mpfr_init(r20862);
        mpfr_init_set_str(r20863, "5", 10, MPFR_RNDN);
        mpfr_init_set_str(r20864, "32", 10, MPFR_RNDN);
        mpfr_init(r20865);
        mpfr_init(r20866);
        mpfr_init(r20867);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r20859, d1, MPFR_RNDN);
        mpfr_set_d(r20860, d2, MPFR_RNDN);
        mpfr_set_d(r20861, d3, MPFR_RNDN);
        mpfr_add(r20862, r20860, r20861, MPFR_RNDN);
        ;
        ;
        mpfr_add(r20865, r20863, r20864, MPFR_RNDN);
        mpfr_add(r20866, r20862, r20865, MPFR_RNDN);
        mpfr_mul(r20867, r20859, r20866, MPFR_RNDN);
        return mpfr_get_d(r20867, MPFR_RNDN);
}

