#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 r28416 = d1;
        float r28417 = d2;
        float r28418 = r28416 * r28417;
        float r28419 = d3;
        float r28420 = 5;
        float r28421 = r28419 + r28420;
        float r28422 = r28421 * r28416;
        float r28423 = r28418 + r28422;
        float r28424 = 32;
        float r28425 = r28416 * r28424;
        float r28426 = r28423 + r28425;
        return r28426;
}

double f_id(double d1, double d2, double d3) {
        double r28427 = d1;
        double r28428 = d2;
        double r28429 = r28427 * r28428;
        double r28430 = d3;
        double r28431 = 5;
        double r28432 = r28430 + r28431;
        double r28433 = r28432 * r28427;
        double r28434 = r28429 + r28433;
        double r28435 = 32;
        double r28436 = r28427 * r28435;
        double r28437 = r28434 + r28436;
        return r28437;
}


double f_of(float d1, float d2, float d3) {
        float r28438 = d1;
        float r28439 = d3;
        float r28440 = 5;
        float r28441 = r28439 + r28440;
        float r28442 = 32;
        float r28443 = d2;
        float r28444 = r28442 + r28443;
        float r28445 = r28441 + r28444;
        float r28446 = r28438 * r28445;
        return r28446;
}

double f_od(double d1, double d2, double d3) {
        double r28447 = d1;
        double r28448 = d3;
        double r28449 = 5;
        double r28450 = r28448 + r28449;
        double r28451 = 32;
        double r28452 = d2;
        double r28453 = r28451 + r28452;
        double r28454 = r28450 + r28453;
        double r28455 = r28447 * r28454;
        return r28455;
}

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 r28456, r28457, r28458, r28459, r28460, r28461, r28462, r28463, r28464, r28465, r28466;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28456);
        mpfr_init(r28457);
        mpfr_init(r28458);
        mpfr_init(r28459);
        mpfr_init_set_str(r28460, "5", 10, MPFR_RNDN);
        mpfr_init(r28461);
        mpfr_init(r28462);
        mpfr_init(r28463);
        mpfr_init_set_str(r28464, "32", 10, MPFR_RNDN);
        mpfr_init(r28465);
        mpfr_init(r28466);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r28456, d1, MPFR_RNDN);
        mpfr_set_d(r28457, d2, MPFR_RNDN);
        mpfr_mul(r28458, r28456, r28457, MPFR_RNDN);
        mpfr_set_d(r28459, d3, MPFR_RNDN);
        ;
        mpfr_add(r28461, r28459, r28460, MPFR_RNDN);
        mpfr_mul(r28462, r28461, r28456, MPFR_RNDN);
        mpfr_add(r28463, r28458, r28462, MPFR_RNDN);
        ;
        mpfr_mul(r28465, r28456, r28464, MPFR_RNDN);
        mpfr_add(r28466, r28463, r28465, MPFR_RNDN);
        return mpfr_get_d(r28466, MPFR_RNDN);
}

static mpfr_t r28467, r28468, r28469, r28470, r28471, r28472, r28473, r28474, r28475;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28467);
        mpfr_init(r28468);
        mpfr_init_set_str(r28469, "5", 10, MPFR_RNDN);
        mpfr_init(r28470);
        mpfr_init_set_str(r28471, "32", 10, MPFR_RNDN);
        mpfr_init(r28472);
        mpfr_init(r28473);
        mpfr_init(r28474);
        mpfr_init(r28475);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r28467, d1, MPFR_RNDN);
        mpfr_set_d(r28468, d3, MPFR_RNDN);
        ;
        mpfr_add(r28470, r28468, r28469, MPFR_RNDN);
        ;
        mpfr_set_d(r28472, d2, MPFR_RNDN);
        mpfr_add(r28473, r28471, r28472, MPFR_RNDN);
        mpfr_add(r28474, r28470, r28473, MPFR_RNDN);
        mpfr_mul(r28475, r28467, r28474, MPFR_RNDN);
        return mpfr_get_d(r28475, MPFR_RNDN);
}

static mpfr_t r28476, r28477, r28478, r28479, r28480, r28481, r28482, r28483, r28484;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28476);
        mpfr_init(r28477);
        mpfr_init_set_str(r28478, "5", 10, MPFR_RNDN);
        mpfr_init(r28479);
        mpfr_init_set_str(r28480, "32", 10, MPFR_RNDN);
        mpfr_init(r28481);
        mpfr_init(r28482);
        mpfr_init(r28483);
        mpfr_init(r28484);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r28476, d1, MPFR_RNDN);
        mpfr_set_d(r28477, d3, MPFR_RNDN);
        ;
        mpfr_add(r28479, r28477, r28478, MPFR_RNDN);
        ;
        mpfr_set_d(r28481, d2, MPFR_RNDN);
        mpfr_add(r28482, r28480, r28481, MPFR_RNDN);
        mpfr_add(r28483, r28479, r28482, MPFR_RNDN);
        mpfr_mul(r28484, r28476, r28483, MPFR_RNDN);
        return mpfr_get_d(r28484, MPFR_RNDN);
}

