#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 r29208 = d1;
        float r29209 = d2;
        float r29210 = r29208 * r29209;
        float r29211 = d3;
        float r29212 = 5;
        float r29213 = r29211 + r29212;
        float r29214 = r29213 * r29208;
        float r29215 = r29210 + r29214;
        float r29216 = 32;
        float r29217 = r29208 * r29216;
        float r29218 = r29215 + r29217;
        return r29218;
}

double f_id(double d1, double d2, double d3) {
        double r29219 = d1;
        double r29220 = d2;
        double r29221 = r29219 * r29220;
        double r29222 = d3;
        double r29223 = 5;
        double r29224 = r29222 + r29223;
        double r29225 = r29224 * r29219;
        double r29226 = r29221 + r29225;
        double r29227 = 32;
        double r29228 = r29219 * r29227;
        double r29229 = r29226 + r29228;
        return r29229;
}


double f_of(float d1, float d2, float d3) {
        float r29230 = d1;
        float r29231 = d2;
        float r29232 = 5;
        float r29233 = r29231 + r29232;
        float r29234 = 32;
        float r29235 = d3;
        float r29236 = r29234 + r29235;
        float r29237 = r29233 + r29236;
        float r29238 = r29230 * r29237;
        return r29238;
}

double f_od(double d1, double d2, double d3) {
        double r29239 = d1;
        double r29240 = d2;
        double r29241 = 5;
        double r29242 = r29240 + r29241;
        double r29243 = 32;
        double r29244 = d3;
        double r29245 = r29243 + r29244;
        double r29246 = r29242 + r29245;
        double r29247 = r29239 * r29246;
        return r29247;
}

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 r29248, r29249, r29250, r29251, r29252, r29253, r29254, r29255, r29256, r29257, r29258;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29248);
        mpfr_init(r29249);
        mpfr_init(r29250);
        mpfr_init(r29251);
        mpfr_init_set_str(r29252, "5", 10, MPFR_RNDN);
        mpfr_init(r29253);
        mpfr_init(r29254);
        mpfr_init(r29255);
        mpfr_init_set_str(r29256, "32", 10, MPFR_RNDN);
        mpfr_init(r29257);
        mpfr_init(r29258);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r29248, d1, MPFR_RNDN);
        mpfr_set_d(r29249, d2, MPFR_RNDN);
        mpfr_mul(r29250, r29248, r29249, MPFR_RNDN);
        mpfr_set_d(r29251, d3, MPFR_RNDN);
        ;
        mpfr_add(r29253, r29251, r29252, MPFR_RNDN);
        mpfr_mul(r29254, r29253, r29248, MPFR_RNDN);
        mpfr_add(r29255, r29250, r29254, MPFR_RNDN);
        ;
        mpfr_mul(r29257, r29248, r29256, MPFR_RNDN);
        mpfr_add(r29258, r29255, r29257, MPFR_RNDN);
        return mpfr_get_d(r29258, MPFR_RNDN);
}

static mpfr_t r29259, r29260, r29261, r29262, r29263, r29264, r29265, r29266, r29267;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29259);
        mpfr_init(r29260);
        mpfr_init_set_str(r29261, "5", 10, MPFR_RNDN);
        mpfr_init(r29262);
        mpfr_init_set_str(r29263, "32", 10, MPFR_RNDN);
        mpfr_init(r29264);
        mpfr_init(r29265);
        mpfr_init(r29266);
        mpfr_init(r29267);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r29259, d1, MPFR_RNDN);
        mpfr_set_d(r29260, d2, MPFR_RNDN);
        ;
        mpfr_add(r29262, r29260, r29261, MPFR_RNDN);
        ;
        mpfr_set_d(r29264, d3, MPFR_RNDN);
        mpfr_add(r29265, r29263, r29264, MPFR_RNDN);
        mpfr_add(r29266, r29262, r29265, MPFR_RNDN);
        mpfr_mul(r29267, r29259, r29266, MPFR_RNDN);
        return mpfr_get_d(r29267, MPFR_RNDN);
}

static mpfr_t r29268, r29269, r29270, r29271, r29272, r29273, r29274, r29275, r29276;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29268);
        mpfr_init(r29269);
        mpfr_init_set_str(r29270, "5", 10, MPFR_RNDN);
        mpfr_init(r29271);
        mpfr_init_set_str(r29272, "32", 10, MPFR_RNDN);
        mpfr_init(r29273);
        mpfr_init(r29274);
        mpfr_init(r29275);
        mpfr_init(r29276);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r29268, d1, MPFR_RNDN);
        mpfr_set_d(r29269, d2, MPFR_RNDN);
        ;
        mpfr_add(r29271, r29269, r29270, MPFR_RNDN);
        ;
        mpfr_set_d(r29273, d3, MPFR_RNDN);
        mpfr_add(r29274, r29272, r29273, MPFR_RNDN);
        mpfr_add(r29275, r29271, r29274, MPFR_RNDN);
        mpfr_mul(r29276, r29268, r29275, MPFR_RNDN);
        return mpfr_get_d(r29276, MPFR_RNDN);
}

