#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 r28274 = d1;
        float r28275 = d2;
        float r28276 = r28274 * r28275;
        float r28277 = d3;
        float r28278 = 5;
        float r28279 = r28277 + r28278;
        float r28280 = r28279 * r28274;
        float r28281 = r28276 + r28280;
        float r28282 = 32;
        float r28283 = r28274 * r28282;
        float r28284 = r28281 + r28283;
        return r28284;
}

double f_id(double d1, double d2, double d3) {
        double r28285 = d1;
        double r28286 = d2;
        double r28287 = r28285 * r28286;
        double r28288 = d3;
        double r28289 = 5;
        double r28290 = r28288 + r28289;
        double r28291 = r28290 * r28285;
        double r28292 = r28287 + r28291;
        double r28293 = 32;
        double r28294 = r28285 * r28293;
        double r28295 = r28292 + r28294;
        return r28295;
}


double f_of(float d1, float d2, float d3) {
        float r28296 = d1;
        float r28297 = d3;
        float r28298 = 5;
        float r28299 = r28297 + r28298;
        float r28300 = 32;
        float r28301 = d2;
        float r28302 = r28300 + r28301;
        float r28303 = r28299 + r28302;
        float r28304 = r28296 * r28303;
        return r28304;
}

double f_od(double d1, double d2, double d3) {
        double r28305 = d1;
        double r28306 = d3;
        double r28307 = 5;
        double r28308 = r28306 + r28307;
        double r28309 = 32;
        double r28310 = d2;
        double r28311 = r28309 + r28310;
        double r28312 = r28308 + r28311;
        double r28313 = r28305 * r28312;
        return r28313;
}

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 r28314, r28315, r28316, r28317, r28318, r28319, r28320, r28321, r28322, r28323, r28324;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28314);
        mpfr_init(r28315);
        mpfr_init(r28316);
        mpfr_init(r28317);
        mpfr_init_set_str(r28318, "5", 10, MPFR_RNDN);
        mpfr_init(r28319);
        mpfr_init(r28320);
        mpfr_init(r28321);
        mpfr_init_set_str(r28322, "32", 10, MPFR_RNDN);
        mpfr_init(r28323);
        mpfr_init(r28324);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r28314, d1, MPFR_RNDN);
        mpfr_set_d(r28315, d2, MPFR_RNDN);
        mpfr_mul(r28316, r28314, r28315, MPFR_RNDN);
        mpfr_set_d(r28317, d3, MPFR_RNDN);
        ;
        mpfr_add(r28319, r28317, r28318, MPFR_RNDN);
        mpfr_mul(r28320, r28319, r28314, MPFR_RNDN);
        mpfr_add(r28321, r28316, r28320, MPFR_RNDN);
        ;
        mpfr_mul(r28323, r28314, r28322, MPFR_RNDN);
        mpfr_add(r28324, r28321, r28323, MPFR_RNDN);
        return mpfr_get_d(r28324, MPFR_RNDN);
}

static mpfr_t r28325, r28326, r28327, r28328, r28329, r28330, r28331, r28332, r28333;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28325);
        mpfr_init(r28326);
        mpfr_init_set_str(r28327, "5", 10, MPFR_RNDN);
        mpfr_init(r28328);
        mpfr_init_set_str(r28329, "32", 10, MPFR_RNDN);
        mpfr_init(r28330);
        mpfr_init(r28331);
        mpfr_init(r28332);
        mpfr_init(r28333);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r28325, d1, MPFR_RNDN);
        mpfr_set_d(r28326, d3, MPFR_RNDN);
        ;
        mpfr_add(r28328, r28326, r28327, MPFR_RNDN);
        ;
        mpfr_set_d(r28330, d2, MPFR_RNDN);
        mpfr_add(r28331, r28329, r28330, MPFR_RNDN);
        mpfr_add(r28332, r28328, r28331, MPFR_RNDN);
        mpfr_mul(r28333, r28325, r28332, MPFR_RNDN);
        return mpfr_get_d(r28333, MPFR_RNDN);
}

static mpfr_t r28334, r28335, r28336, r28337, r28338, r28339, r28340, r28341, r28342;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28334);
        mpfr_init(r28335);
        mpfr_init_set_str(r28336, "5", 10, MPFR_RNDN);
        mpfr_init(r28337);
        mpfr_init_set_str(r28338, "32", 10, MPFR_RNDN);
        mpfr_init(r28339);
        mpfr_init(r28340);
        mpfr_init(r28341);
        mpfr_init(r28342);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r28334, d1, MPFR_RNDN);
        mpfr_set_d(r28335, d3, MPFR_RNDN);
        ;
        mpfr_add(r28337, r28335, r28336, MPFR_RNDN);
        ;
        mpfr_set_d(r28339, d2, MPFR_RNDN);
        mpfr_add(r28340, r28338, r28339, MPFR_RNDN);
        mpfr_add(r28341, r28337, r28340, MPFR_RNDN);
        mpfr_mul(r28342, r28334, r28341, MPFR_RNDN);
        return mpfr_get_d(r28342, MPFR_RNDN);
}

