#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 r12733 = d1;
        float r12734 = d2;
        float r12735 = r12733 * r12734;
        float r12736 = d3;
        float r12737 = 5;
        float r12738 = r12736 + r12737;
        float r12739 = r12738 * r12733;
        float r12740 = r12735 + r12739;
        float r12741 = 32;
        float r12742 = r12733 * r12741;
        float r12743 = r12740 + r12742;
        return r12743;
}

double f_id(double d1, double d2, double d3) {
        double r12744 = d1;
        double r12745 = d2;
        double r12746 = r12744 * r12745;
        double r12747 = d3;
        double r12748 = 5;
        double r12749 = r12747 + r12748;
        double r12750 = r12749 * r12744;
        double r12751 = r12746 + r12750;
        double r12752 = 32;
        double r12753 = r12744 * r12752;
        double r12754 = r12751 + r12753;
        return r12754;
}


double f_of(float d1, float d2, float d3) {
        float r12755 = d1;
        float r12756 = d2;
        float r12757 = 5;
        float r12758 = r12756 + r12757;
        float r12759 = d3;
        float r12760 = 32;
        float r12761 = r12759 + r12760;
        float r12762 = r12758 + r12761;
        float r12763 = r12755 * r12762;
        return r12763;
}

double f_od(double d1, double d2, double d3) {
        double r12764 = d1;
        double r12765 = d2;
        double r12766 = 5;
        double r12767 = r12765 + r12766;
        double r12768 = d3;
        double r12769 = 32;
        double r12770 = r12768 + r12769;
        double r12771 = r12767 + r12770;
        double r12772 = r12764 * r12771;
        return r12772;
}

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 r12773, r12774, r12775, r12776, r12777, r12778, r12779, r12780, r12781, r12782, r12783;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12773);
        mpfr_init(r12774);
        mpfr_init(r12775);
        mpfr_init(r12776);
        mpfr_init_set_str(r12777, "5", 10, MPFR_RNDN);
        mpfr_init(r12778);
        mpfr_init(r12779);
        mpfr_init(r12780);
        mpfr_init_set_str(r12781, "32", 10, MPFR_RNDN);
        mpfr_init(r12782);
        mpfr_init(r12783);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r12773, d1, MPFR_RNDN);
        mpfr_set_d(r12774, d2, MPFR_RNDN);
        mpfr_mul(r12775, r12773, r12774, MPFR_RNDN);
        mpfr_set_d(r12776, d3, MPFR_RNDN);
        ;
        mpfr_add(r12778, r12776, r12777, MPFR_RNDN);
        mpfr_mul(r12779, r12778, r12773, MPFR_RNDN);
        mpfr_add(r12780, r12775, r12779, MPFR_RNDN);
        ;
        mpfr_mul(r12782, r12773, r12781, MPFR_RNDN);
        mpfr_add(r12783, r12780, r12782, MPFR_RNDN);
        return mpfr_get_d(r12783, MPFR_RNDN);
}

static mpfr_t r12784, r12785, r12786, r12787, r12788, r12789, r12790, r12791, r12792;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12784);
        mpfr_init(r12785);
        mpfr_init_set_str(r12786, "5", 10, MPFR_RNDN);
        mpfr_init(r12787);
        mpfr_init(r12788);
        mpfr_init_set_str(r12789, "32", 10, MPFR_RNDN);
        mpfr_init(r12790);
        mpfr_init(r12791);
        mpfr_init(r12792);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r12784, d1, MPFR_RNDN);
        mpfr_set_d(r12785, d2, MPFR_RNDN);
        ;
        mpfr_add(r12787, r12785, r12786, MPFR_RNDN);
        mpfr_set_d(r12788, d3, MPFR_RNDN);
        ;
        mpfr_add(r12790, r12788, r12789, MPFR_RNDN);
        mpfr_add(r12791, r12787, r12790, MPFR_RNDN);
        mpfr_mul(r12792, r12784, r12791, MPFR_RNDN);
        return mpfr_get_d(r12792, MPFR_RNDN);
}

static mpfr_t r12793, r12794, r12795, r12796, r12797, r12798, r12799, r12800, r12801;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12793);
        mpfr_init(r12794);
        mpfr_init_set_str(r12795, "5", 10, MPFR_RNDN);
        mpfr_init(r12796);
        mpfr_init(r12797);
        mpfr_init_set_str(r12798, "32", 10, MPFR_RNDN);
        mpfr_init(r12799);
        mpfr_init(r12800);
        mpfr_init(r12801);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r12793, d1, MPFR_RNDN);
        mpfr_set_d(r12794, d2, MPFR_RNDN);
        ;
        mpfr_add(r12796, r12794, r12795, MPFR_RNDN);
        mpfr_set_d(r12797, d3, MPFR_RNDN);
        ;
        mpfr_add(r12799, r12797, r12798, MPFR_RNDN);
        mpfr_add(r12800, r12796, r12799, MPFR_RNDN);
        mpfr_mul(r12801, r12793, r12800, MPFR_RNDN);
        return mpfr_get_d(r12801, MPFR_RNDN);
}

