#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 r12771 = d1;
        float r12772 = d2;
        float r12773 = r12771 * r12772;
        float r12774 = d3;
        float r12775 = 5.0f;
        float r12776 = r12774 + r12775;
        float r12777 = r12776 * r12771;
        float r12778 = r12773 + r12777;
        float r12779 = 32.0f;
        float r12780 = r12771 * r12779;
        float r12781 = r12778 + r12780;
        return r12781;
}

double f_id(double d1, double d2, double d3) {
        double r12782 = d1;
        double r12783 = d2;
        double r12784 = r12782 * r12783;
        double r12785 = d3;
        double r12786 = 5.0;
        double r12787 = r12785 + r12786;
        double r12788 = r12787 * r12782;
        double r12789 = r12784 + r12788;
        double r12790 = 32.0;
        double r12791 = r12782 * r12790;
        double r12792 = r12789 + r12791;
        return r12792;
}


double f_of(float d1, float d2, float d3) {
        float r12793 = d3;
        float r12794 = 5.0f;
        float r12795 = r12793 + r12794;
        float r12796 = 32.0f;
        float r12797 = d2;
        float r12798 = r12796 + r12797;
        float r12799 = r12795 + r12798;
        float r12800 = d1;
        float r12801 = r12799 * r12800;
        return r12801;
}

double f_od(double d1, double d2, double d3) {
        double r12802 = d3;
        double r12803 = 5.0;
        double r12804 = r12802 + r12803;
        double r12805 = 32.0;
        double r12806 = d2;
        double r12807 = r12805 + r12806;
        double r12808 = r12804 + r12807;
        double r12809 = d1;
        double r12810 = r12808 * r12809;
        return r12810;
}

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 r12811, r12812, r12813, r12814, r12815, r12816, r12817, r12818, r12819, r12820, r12821;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12811);
        mpfr_init(r12812);
        mpfr_init(r12813);
        mpfr_init(r12814);
        mpfr_init_set_str(r12815, "5", 10, MPFR_RNDN);
        mpfr_init(r12816);
        mpfr_init(r12817);
        mpfr_init(r12818);
        mpfr_init_set_str(r12819, "32", 10, MPFR_RNDN);
        mpfr_init(r12820);
        mpfr_init(r12821);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r12811, d1, MPFR_RNDN);
        mpfr_set_d(r12812, d2, MPFR_RNDN);
        mpfr_mul(r12813, r12811, r12812, MPFR_RNDN);
        mpfr_set_d(r12814, d3, MPFR_RNDN);
        ;
        mpfr_add(r12816, r12814, r12815, MPFR_RNDN);
        mpfr_mul(r12817, r12816, r12811, MPFR_RNDN);
        mpfr_add(r12818, r12813, r12817, MPFR_RNDN);
        ;
        mpfr_mul(r12820, r12811, r12819, MPFR_RNDN);
        mpfr_add(r12821, r12818, r12820, MPFR_RNDN);
        return mpfr_get_d(r12821, MPFR_RNDN);
}

static mpfr_t r12822, r12823, r12824, r12825, r12826, r12827, r12828, r12829, r12830;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12822);
        mpfr_init_set_str(r12823, "5", 10, MPFR_RNDN);
        mpfr_init(r12824);
        mpfr_init_set_str(r12825, "32", 10, MPFR_RNDN);
        mpfr_init(r12826);
        mpfr_init(r12827);
        mpfr_init(r12828);
        mpfr_init(r12829);
        mpfr_init(r12830);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r12822, d3, MPFR_RNDN);
        ;
        mpfr_add(r12824, r12822, r12823, MPFR_RNDN);
        ;
        mpfr_set_d(r12826, d2, MPFR_RNDN);
        mpfr_add(r12827, r12825, r12826, MPFR_RNDN);
        mpfr_add(r12828, r12824, r12827, MPFR_RNDN);
        mpfr_set_d(r12829, d1, MPFR_RNDN);
        mpfr_mul(r12830, r12828, r12829, MPFR_RNDN);
        return mpfr_get_d(r12830, MPFR_RNDN);
}

static mpfr_t r12831, r12832, r12833, r12834, r12835, r12836, r12837, r12838, r12839;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12831);
        mpfr_init_set_str(r12832, "5", 10, MPFR_RNDN);
        mpfr_init(r12833);
        mpfr_init_set_str(r12834, "32", 10, MPFR_RNDN);
        mpfr_init(r12835);
        mpfr_init(r12836);
        mpfr_init(r12837);
        mpfr_init(r12838);
        mpfr_init(r12839);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r12831, d3, MPFR_RNDN);
        ;
        mpfr_add(r12833, r12831, r12832, MPFR_RNDN);
        ;
        mpfr_set_d(r12835, d2, MPFR_RNDN);
        mpfr_add(r12836, r12834, r12835, MPFR_RNDN);
        mpfr_add(r12837, r12833, r12836, MPFR_RNDN);
        mpfr_set_d(r12838, d1, MPFR_RNDN);
        mpfr_mul(r12839, r12837, r12838, MPFR_RNDN);
        return mpfr_get_d(r12839, MPFR_RNDN);
}

