#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 r29183 = d1;
        float r29184 = d2;
        float r29185 = r29183 * r29184;
        float r29186 = d3;
        float r29187 = 5;
        float r29188 = r29186 + r29187;
        float r29189 = r29188 * r29183;
        float r29190 = r29185 + r29189;
        float r29191 = 32;
        float r29192 = r29183 * r29191;
        float r29193 = r29190 + r29192;
        return r29193;
}

double f_id(double d1, double d2, double d3) {
        double r29194 = d1;
        double r29195 = d2;
        double r29196 = r29194 * r29195;
        double r29197 = d3;
        double r29198 = 5;
        double r29199 = r29197 + r29198;
        double r29200 = r29199 * r29194;
        double r29201 = r29196 + r29200;
        double r29202 = 32;
        double r29203 = r29194 * r29202;
        double r29204 = r29201 + r29203;
        return r29204;
}


double f_of(float d1, float d2, float d3) {
        float r29205 = d1;
        float r29206 = d2;
        float r29207 = 5;
        float r29208 = r29206 + r29207;
        float r29209 = 32;
        float r29210 = d3;
        float r29211 = r29209 + r29210;
        float r29212 = r29208 + r29211;
        float r29213 = r29205 * r29212;
        return r29213;
}

double f_od(double d1, double d2, double d3) {
        double r29214 = d1;
        double r29215 = d2;
        double r29216 = 5;
        double r29217 = r29215 + r29216;
        double r29218 = 32;
        double r29219 = d3;
        double r29220 = r29218 + r29219;
        double r29221 = r29217 + r29220;
        double r29222 = r29214 * r29221;
        return r29222;
}

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 r29223, r29224, r29225, r29226, r29227, r29228, r29229, r29230, r29231, r29232, r29233;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29223);
        mpfr_init(r29224);
        mpfr_init(r29225);
        mpfr_init(r29226);
        mpfr_init_set_str(r29227, "5", 10, MPFR_RNDN);
        mpfr_init(r29228);
        mpfr_init(r29229);
        mpfr_init(r29230);
        mpfr_init_set_str(r29231, "32", 10, MPFR_RNDN);
        mpfr_init(r29232);
        mpfr_init(r29233);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r29223, d1, MPFR_RNDN);
        mpfr_set_d(r29224, d2, MPFR_RNDN);
        mpfr_mul(r29225, r29223, r29224, MPFR_RNDN);
        mpfr_set_d(r29226, d3, MPFR_RNDN);
        ;
        mpfr_add(r29228, r29226, r29227, MPFR_RNDN);
        mpfr_mul(r29229, r29228, r29223, MPFR_RNDN);
        mpfr_add(r29230, r29225, r29229, MPFR_RNDN);
        ;
        mpfr_mul(r29232, r29223, r29231, MPFR_RNDN);
        mpfr_add(r29233, r29230, r29232, MPFR_RNDN);
        return mpfr_get_d(r29233, MPFR_RNDN);
}

static mpfr_t r29234, r29235, r29236, r29237, r29238, r29239, r29240, r29241, r29242;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29234);
        mpfr_init(r29235);
        mpfr_init_set_str(r29236, "5", 10, MPFR_RNDN);
        mpfr_init(r29237);
        mpfr_init_set_str(r29238, "32", 10, MPFR_RNDN);
        mpfr_init(r29239);
        mpfr_init(r29240);
        mpfr_init(r29241);
        mpfr_init(r29242);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r29234, d1, MPFR_RNDN);
        mpfr_set_d(r29235, d2, MPFR_RNDN);
        ;
        mpfr_add(r29237, r29235, r29236, MPFR_RNDN);
        ;
        mpfr_set_d(r29239, d3, MPFR_RNDN);
        mpfr_add(r29240, r29238, r29239, MPFR_RNDN);
        mpfr_add(r29241, r29237, r29240, MPFR_RNDN);
        mpfr_mul(r29242, r29234, r29241, MPFR_RNDN);
        return mpfr_get_d(r29242, MPFR_RNDN);
}

static mpfr_t r29243, r29244, r29245, r29246, r29247, r29248, r29249, r29250, r29251;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29243);
        mpfr_init(r29244);
        mpfr_init_set_str(r29245, "5", 10, MPFR_RNDN);
        mpfr_init(r29246);
        mpfr_init_set_str(r29247, "32", 10, MPFR_RNDN);
        mpfr_init(r29248);
        mpfr_init(r29249);
        mpfr_init(r29250);
        mpfr_init(r29251);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r29243, d1, MPFR_RNDN);
        mpfr_set_d(r29244, d2, MPFR_RNDN);
        ;
        mpfr_add(r29246, r29244, r29245, MPFR_RNDN);
        ;
        mpfr_set_d(r29248, d3, MPFR_RNDN);
        mpfr_add(r29249, r29247, r29248, MPFR_RNDN);
        mpfr_add(r29250, r29246, r29249, MPFR_RNDN);
        mpfr_mul(r29251, r29243, r29250, MPFR_RNDN);
        return mpfr_get_d(r29251, MPFR_RNDN);
}

