#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 r51705 = d1;
        float r51706 = d2;
        float r51707 = r51705 * r51706;
        float r51708 = d3;
        float r51709 = 5;
        float r51710 = r51708 + r51709;
        float r51711 = r51710 * r51705;
        float r51712 = r51707 + r51711;
        float r51713 = 32;
        float r51714 = r51705 * r51713;
        float r51715 = r51712 + r51714;
        return r51715;
}

double f_id(double d1, double d2, double d3) {
        double r51716 = d1;
        double r51717 = d2;
        double r51718 = r51716 * r51717;
        double r51719 = d3;
        double r51720 = 5;
        double r51721 = r51719 + r51720;
        double r51722 = r51721 * r51716;
        double r51723 = r51718 + r51722;
        double r51724 = 32;
        double r51725 = r51716 * r51724;
        double r51726 = r51723 + r51725;
        return r51726;
}


double f_of(float d1, float d2, float d3) {
        float r51727 = d1;
        float r51728 = d2;
        float r51729 = r51727 * r51728;
        float r51730 = d3;
        float r51731 = 5;
        float r51732 = r51730 + r51731;
        float r51733 = r51732 * r51727;
        float r51734 = r51729 + r51733;
        float r51735 = 32;
        float r51736 = r51727 * r51735;
        float r51737 = r51734 + r51736;
        return r51737;
}

double f_od(double d1, double d2, double d3) {
        double r51738 = d1;
        double r51739 = d2;
        double r51740 = r51738 * r51739;
        double r51741 = d3;
        double r51742 = 5;
        double r51743 = r51741 + r51742;
        double r51744 = r51743 * r51738;
        double r51745 = r51740 + r51744;
        double r51746 = 32;
        double r51747 = r51738 * r51746;
        double r51748 = r51745 + r51747;
        return r51748;
}

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 r51749, r51750, r51751, r51752, r51753, r51754, r51755, r51756, r51757, r51758, r51759;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51749);
        mpfr_init(r51750);
        mpfr_init(r51751);
        mpfr_init(r51752);
        mpfr_init_set_str(r51753, "5", 10, MPFR_RNDN);
        mpfr_init(r51754);
        mpfr_init(r51755);
        mpfr_init(r51756);
        mpfr_init_set_str(r51757, "32", 10, MPFR_RNDN);
        mpfr_init(r51758);
        mpfr_init(r51759);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r51749, d1, MPFR_RNDN);
        mpfr_set_d(r51750, d2, MPFR_RNDN);
        mpfr_mul(r51751, r51749, r51750, MPFR_RNDN);
        mpfr_set_d(r51752, d3, MPFR_RNDN);
        ;
        mpfr_add(r51754, r51752, r51753, MPFR_RNDN);
        mpfr_mul(r51755, r51754, r51749, MPFR_RNDN);
        mpfr_add(r51756, r51751, r51755, MPFR_RNDN);
        ;
        mpfr_mul(r51758, r51749, r51757, MPFR_RNDN);
        mpfr_add(r51759, r51756, r51758, MPFR_RNDN);
        return mpfr_get_d(r51759, MPFR_RNDN);
}

static mpfr_t r51760, r51761, r51762, r51763, r51764, r51765, r51766, r51767, r51768, r51769, r51770;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51760);
        mpfr_init(r51761);
        mpfr_init(r51762);
        mpfr_init(r51763);
        mpfr_init_set_str(r51764, "5", 10, MPFR_RNDN);
        mpfr_init(r51765);
        mpfr_init(r51766);
        mpfr_init(r51767);
        mpfr_init_set_str(r51768, "32", 10, MPFR_RNDN);
        mpfr_init(r51769);
        mpfr_init(r51770);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r51760, d1, MPFR_RNDN);
        mpfr_set_d(r51761, d2, MPFR_RNDN);
        mpfr_mul(r51762, r51760, r51761, MPFR_RNDN);
        mpfr_set_d(r51763, d3, MPFR_RNDN);
        ;
        mpfr_add(r51765, r51763, r51764, MPFR_RNDN);
        mpfr_mul(r51766, r51765, r51760, MPFR_RNDN);
        mpfr_add(r51767, r51762, r51766, MPFR_RNDN);
        ;
        mpfr_mul(r51769, r51760, r51768, MPFR_RNDN);
        mpfr_add(r51770, r51767, r51769, MPFR_RNDN);
        return mpfr_get_d(r51770, MPFR_RNDN);
}

static mpfr_t r51771, r51772, r51773, r51774, r51775, r51776, r51777, r51778, r51779, r51780, r51781;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51771);
        mpfr_init(r51772);
        mpfr_init(r51773);
        mpfr_init(r51774);
        mpfr_init_set_str(r51775, "5", 10, MPFR_RNDN);
        mpfr_init(r51776);
        mpfr_init(r51777);
        mpfr_init(r51778);
        mpfr_init_set_str(r51779, "32", 10, MPFR_RNDN);
        mpfr_init(r51780);
        mpfr_init(r51781);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r51771, d1, MPFR_RNDN);
        mpfr_set_d(r51772, d2, MPFR_RNDN);
        mpfr_mul(r51773, r51771, r51772, MPFR_RNDN);
        mpfr_set_d(r51774, d3, MPFR_RNDN);
        ;
        mpfr_add(r51776, r51774, r51775, MPFR_RNDN);
        mpfr_mul(r51777, r51776, r51771, MPFR_RNDN);
        mpfr_add(r51778, r51773, r51777, MPFR_RNDN);
        ;
        mpfr_mul(r51780, r51771, r51779, MPFR_RNDN);
        mpfr_add(r51781, r51778, r51780, MPFR_RNDN);
        return mpfr_get_d(r51781, MPFR_RNDN);
}

