#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 r29179 = d1;
        float r29180 = d2;
        float r29181 = r29179 * r29180;
        float r29182 = d3;
        float r29183 = 5;
        float r29184 = r29182 + r29183;
        float r29185 = r29184 * r29179;
        float r29186 = r29181 + r29185;
        float r29187 = 32;
        float r29188 = r29179 * r29187;
        float r29189 = r29186 + r29188;
        return r29189;
}

double f_id(double d1, double d2, double d3) {
        double r29190 = d1;
        double r29191 = d2;
        double r29192 = r29190 * r29191;
        double r29193 = d3;
        double r29194 = 5;
        double r29195 = r29193 + r29194;
        double r29196 = r29195 * r29190;
        double r29197 = r29192 + r29196;
        double r29198 = 32;
        double r29199 = r29190 * r29198;
        double r29200 = r29197 + r29199;
        return r29200;
}


double f_of(float d1, float d2, float d3) {
        float r29201 = d1;
        float r29202 = d3;
        float r29203 = 5;
        float r29204 = r29202 + r29203;
        float r29205 = 32;
        float r29206 = d2;
        float r29207 = r29205 + r29206;
        float r29208 = r29204 + r29207;
        float r29209 = r29201 * r29208;
        return r29209;
}

double f_od(double d1, double d2, double d3) {
        double r29210 = d1;
        double r29211 = d3;
        double r29212 = 5;
        double r29213 = r29211 + r29212;
        double r29214 = 32;
        double r29215 = d2;
        double r29216 = r29214 + r29215;
        double r29217 = r29213 + r29216;
        double r29218 = r29210 * r29217;
        return r29218;
}

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 r29219, r29220, r29221, r29222, r29223, r29224, r29225, r29226, r29227, r29228, r29229;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29219);
        mpfr_init(r29220);
        mpfr_init(r29221);
        mpfr_init(r29222);
        mpfr_init_set_str(r29223, "5", 10, MPFR_RNDN);
        mpfr_init(r29224);
        mpfr_init(r29225);
        mpfr_init(r29226);
        mpfr_init_set_str(r29227, "32", 10, MPFR_RNDN);
        mpfr_init(r29228);
        mpfr_init(r29229);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r29219, d1, MPFR_RNDN);
        mpfr_set_d(r29220, d2, MPFR_RNDN);
        mpfr_mul(r29221, r29219, r29220, MPFR_RNDN);
        mpfr_set_d(r29222, d3, MPFR_RNDN);
        ;
        mpfr_add(r29224, r29222, r29223, MPFR_RNDN);
        mpfr_mul(r29225, r29224, r29219, MPFR_RNDN);
        mpfr_add(r29226, r29221, r29225, MPFR_RNDN);
        ;
        mpfr_mul(r29228, r29219, r29227, MPFR_RNDN);
        mpfr_add(r29229, r29226, r29228, MPFR_RNDN);
        return mpfr_get_d(r29229, MPFR_RNDN);
}

static mpfr_t r29230, r29231, r29232, r29233, r29234, r29235, r29236, r29237, r29238;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29230);
        mpfr_init(r29231);
        mpfr_init_set_str(r29232, "5", 10, MPFR_RNDN);
        mpfr_init(r29233);
        mpfr_init_set_str(r29234, "32", 10, MPFR_RNDN);
        mpfr_init(r29235);
        mpfr_init(r29236);
        mpfr_init(r29237);
        mpfr_init(r29238);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r29230, d1, MPFR_RNDN);
        mpfr_set_d(r29231, d3, MPFR_RNDN);
        ;
        mpfr_add(r29233, r29231, r29232, MPFR_RNDN);
        ;
        mpfr_set_d(r29235, d2, MPFR_RNDN);
        mpfr_add(r29236, r29234, r29235, MPFR_RNDN);
        mpfr_add(r29237, r29233, r29236, MPFR_RNDN);
        mpfr_mul(r29238, r29230, r29237, MPFR_RNDN);
        return mpfr_get_d(r29238, MPFR_RNDN);
}

static mpfr_t r29239, r29240, r29241, r29242, r29243, r29244, r29245, r29246, r29247;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r29239);
        mpfr_init(r29240);
        mpfr_init_set_str(r29241, "5", 10, MPFR_RNDN);
        mpfr_init(r29242);
        mpfr_init_set_str(r29243, "32", 10, MPFR_RNDN);
        mpfr_init(r29244);
        mpfr_init(r29245);
        mpfr_init(r29246);
        mpfr_init(r29247);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r29239, d1, MPFR_RNDN);
        mpfr_set_d(r29240, d3, MPFR_RNDN);
        ;
        mpfr_add(r29242, r29240, r29241, MPFR_RNDN);
        ;
        mpfr_set_d(r29244, d2, MPFR_RNDN);
        mpfr_add(r29245, r29243, r29244, MPFR_RNDN);
        mpfr_add(r29246, r29242, r29245, MPFR_RNDN);
        mpfr_mul(r29247, r29239, r29246, MPFR_RNDN);
        return mpfr_get_d(r29247, MPFR_RNDN);
}

