#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 r13191 = d1;
        float r13192 = d2;
        float r13193 = r13191 * r13192;
        float r13194 = d3;
        float r13195 = 5;
        float r13196 = r13194 + r13195;
        float r13197 = r13196 * r13191;
        float r13198 = r13193 + r13197;
        float r13199 = 32;
        float r13200 = r13191 * r13199;
        float r13201 = r13198 + r13200;
        return r13201;
}

double f_id(double d1, double d2, double d3) {
        double r13202 = d1;
        double r13203 = d2;
        double r13204 = r13202 * r13203;
        double r13205 = d3;
        double r13206 = 5;
        double r13207 = r13205 + r13206;
        double r13208 = r13207 * r13202;
        double r13209 = r13204 + r13208;
        double r13210 = 32;
        double r13211 = r13202 * r13210;
        double r13212 = r13209 + r13211;
        return r13212;
}


double f_of(float d1, float d2, float d3) {
        float r13213 = d1;
        float r13214 = d3;
        float r13215 = 5;
        float r13216 = r13214 + r13215;
        float r13217 = d2;
        float r13218 = 32;
        float r13219 = r13217 + r13218;
        float r13220 = r13216 + r13219;
        float r13221 = r13213 * r13220;
        return r13221;
}

double f_od(double d1, double d2, double d3) {
        double r13222 = d1;
        double r13223 = d3;
        double r13224 = 5;
        double r13225 = r13223 + r13224;
        double r13226 = d2;
        double r13227 = 32;
        double r13228 = r13226 + r13227;
        double r13229 = r13225 + r13228;
        double r13230 = r13222 * r13229;
        return r13230;
}

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 r13231, r13232, r13233, r13234, r13235, r13236, r13237, r13238, r13239, r13240, r13241;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init(r13231);
        mpfr_init(r13232);
        mpfr_init(r13233);
        mpfr_init(r13234);
        mpfr_init_set_str(r13235, "5", 10, MPFR_RNDN);
        mpfr_init(r13236);
        mpfr_init(r13237);
        mpfr_init(r13238);
        mpfr_init_set_str(r13239, "32", 10, MPFR_RNDN);
        mpfr_init(r13240);
        mpfr_init(r13241);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r13231, d1, MPFR_RNDN);
        mpfr_set_d(r13232, d2, MPFR_RNDN);
        mpfr_mul(r13233, r13231, r13232, MPFR_RNDN);
        mpfr_set_d(r13234, d3, MPFR_RNDN);
        ;
        mpfr_add(r13236, r13234, r13235, MPFR_RNDN);
        mpfr_mul(r13237, r13236, r13231, MPFR_RNDN);
        mpfr_add(r13238, r13233, r13237, MPFR_RNDN);
        ;
        mpfr_mul(r13240, r13231, r13239, MPFR_RNDN);
        mpfr_add(r13241, r13238, r13240, MPFR_RNDN);
        return mpfr_get_d(r13241, MPFR_RNDN);
}

static mpfr_t r13242, r13243, r13244, r13245, r13246, r13247, r13248, r13249, r13250;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init(r13242);
        mpfr_init(r13243);
        mpfr_init_set_str(r13244, "5", 10, MPFR_RNDN);
        mpfr_init(r13245);
        mpfr_init(r13246);
        mpfr_init_set_str(r13247, "32", 10, MPFR_RNDN);
        mpfr_init(r13248);
        mpfr_init(r13249);
        mpfr_init(r13250);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r13242, d1, MPFR_RNDN);
        mpfr_set_d(r13243, d3, MPFR_RNDN);
        ;
        mpfr_add(r13245, r13243, r13244, MPFR_RNDN);
        mpfr_set_d(r13246, d2, MPFR_RNDN);
        ;
        mpfr_add(r13248, r13246, r13247, MPFR_RNDN);
        mpfr_add(r13249, r13245, r13248, MPFR_RNDN);
        mpfr_mul(r13250, r13242, r13249, MPFR_RNDN);
        return mpfr_get_d(r13250, MPFR_RNDN);
}

static mpfr_t r13251, r13252, r13253, r13254, r13255, r13256, r13257, r13258, r13259;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init(r13251);
        mpfr_init(r13252);
        mpfr_init_set_str(r13253, "5", 10, MPFR_RNDN);
        mpfr_init(r13254);
        mpfr_init(r13255);
        mpfr_init_set_str(r13256, "32", 10, MPFR_RNDN);
        mpfr_init(r13257);
        mpfr_init(r13258);
        mpfr_init(r13259);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r13251, d1, MPFR_RNDN);
        mpfr_set_d(r13252, d3, MPFR_RNDN);
        ;
        mpfr_add(r13254, r13252, r13253, MPFR_RNDN);
        mpfr_set_d(r13255, d2, MPFR_RNDN);
        ;
        mpfr_add(r13257, r13255, r13256, MPFR_RNDN);
        mpfr_add(r13258, r13254, r13257, MPFR_RNDN);
        mpfr_mul(r13259, r13251, r13258, MPFR_RNDN);
        return mpfr_get_d(r13259, MPFR_RNDN);
}

