#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 r51573 = d1;
        float r51574 = d2;
        float r51575 = r51573 * r51574;
        float r51576 = d3;
        float r51577 = 5;
        float r51578 = r51576 + r51577;
        float r51579 = r51578 * r51573;
        float r51580 = r51575 + r51579;
        float r51581 = 32;
        float r51582 = r51573 * r51581;
        float r51583 = r51580 + r51582;
        return r51583;
}

double f_id(double d1, double d2, double d3) {
        double r51584 = d1;
        double r51585 = d2;
        double r51586 = r51584 * r51585;
        double r51587 = d3;
        double r51588 = 5;
        double r51589 = r51587 + r51588;
        double r51590 = r51589 * r51584;
        double r51591 = r51586 + r51590;
        double r51592 = 32;
        double r51593 = r51584 * r51592;
        double r51594 = r51591 + r51593;
        return r51594;
}


double f_of(float d1, float d2, float d3) {
        float r51595 = d1;
        float r51596 = d2;
        float r51597 = r51595 * r51596;
        float r51598 = d3;
        float r51599 = 5;
        float r51600 = r51598 + r51599;
        float r51601 = r51600 * r51595;
        float r51602 = r51597 + r51601;
        float r51603 = 32;
        float r51604 = r51595 * r51603;
        float r51605 = r51602 + r51604;
        return r51605;
}

double f_od(double d1, double d2, double d3) {
        double r51606 = d1;
        double r51607 = d2;
        double r51608 = r51606 * r51607;
        double r51609 = d3;
        double r51610 = 5;
        double r51611 = r51609 + r51610;
        double r51612 = r51611 * r51606;
        double r51613 = r51608 + r51612;
        double r51614 = 32;
        double r51615 = r51606 * r51614;
        double r51616 = r51613 + r51615;
        return r51616;
}

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 r51617, r51618, r51619, r51620, r51621, r51622, r51623, r51624, r51625, r51626, r51627;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51617);
        mpfr_init(r51618);
        mpfr_init(r51619);
        mpfr_init(r51620);
        mpfr_init_set_str(r51621, "5", 10, MPFR_RNDN);
        mpfr_init(r51622);
        mpfr_init(r51623);
        mpfr_init(r51624);
        mpfr_init_set_str(r51625, "32", 10, MPFR_RNDN);
        mpfr_init(r51626);
        mpfr_init(r51627);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r51617, d1, MPFR_RNDN);
        mpfr_set_d(r51618, d2, MPFR_RNDN);
        mpfr_mul(r51619, r51617, r51618, MPFR_RNDN);
        mpfr_set_d(r51620, d3, MPFR_RNDN);
        ;
        mpfr_add(r51622, r51620, r51621, MPFR_RNDN);
        mpfr_mul(r51623, r51622, r51617, MPFR_RNDN);
        mpfr_add(r51624, r51619, r51623, MPFR_RNDN);
        ;
        mpfr_mul(r51626, r51617, r51625, MPFR_RNDN);
        mpfr_add(r51627, r51624, r51626, MPFR_RNDN);
        return mpfr_get_d(r51627, MPFR_RNDN);
}

static mpfr_t r51628, r51629, r51630, r51631, r51632, r51633, r51634, r51635, r51636, r51637, r51638;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51628);
        mpfr_init(r51629);
        mpfr_init(r51630);
        mpfr_init(r51631);
        mpfr_init_set_str(r51632, "5", 10, MPFR_RNDN);
        mpfr_init(r51633);
        mpfr_init(r51634);
        mpfr_init(r51635);
        mpfr_init_set_str(r51636, "32", 10, MPFR_RNDN);
        mpfr_init(r51637);
        mpfr_init(r51638);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r51628, d1, MPFR_RNDN);
        mpfr_set_d(r51629, d2, MPFR_RNDN);
        mpfr_mul(r51630, r51628, r51629, MPFR_RNDN);
        mpfr_set_d(r51631, d3, MPFR_RNDN);
        ;
        mpfr_add(r51633, r51631, r51632, MPFR_RNDN);
        mpfr_mul(r51634, r51633, r51628, MPFR_RNDN);
        mpfr_add(r51635, r51630, r51634, MPFR_RNDN);
        ;
        mpfr_mul(r51637, r51628, r51636, MPFR_RNDN);
        mpfr_add(r51638, r51635, r51637, MPFR_RNDN);
        return mpfr_get_d(r51638, MPFR_RNDN);
}

static mpfr_t r51639, r51640, r51641, r51642, r51643, r51644, r51645, r51646, r51647, r51648, r51649;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r51639);
        mpfr_init(r51640);
        mpfr_init(r51641);
        mpfr_init(r51642);
        mpfr_init_set_str(r51643, "5", 10, MPFR_RNDN);
        mpfr_init(r51644);
        mpfr_init(r51645);
        mpfr_init(r51646);
        mpfr_init_set_str(r51647, "32", 10, MPFR_RNDN);
        mpfr_init(r51648);
        mpfr_init(r51649);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r51639, d1, MPFR_RNDN);
        mpfr_set_d(r51640, d2, MPFR_RNDN);
        mpfr_mul(r51641, r51639, r51640, MPFR_RNDN);
        mpfr_set_d(r51642, d3, MPFR_RNDN);
        ;
        mpfr_add(r51644, r51642, r51643, MPFR_RNDN);
        mpfr_mul(r51645, r51644, r51639, MPFR_RNDN);
        mpfr_add(r51646, r51641, r51645, MPFR_RNDN);
        ;
        mpfr_mul(r51648, r51639, r51647, MPFR_RNDN);
        mpfr_add(r51649, r51646, r51648, MPFR_RNDN);
        return mpfr_get_d(r51649, MPFR_RNDN);
}

