#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 r28559 = d1;
        float r28560 = d2;
        float r28561 = r28559 * r28560;
        float r28562 = d3;
        float r28563 = 5;
        float r28564 = r28562 + r28563;
        float r28565 = r28564 * r28559;
        float r28566 = r28561 + r28565;
        float r28567 = 32;
        float r28568 = r28559 * r28567;
        float r28569 = r28566 + r28568;
        return r28569;
}

double f_id(double d1, double d2, double d3) {
        double r28570 = d1;
        double r28571 = d2;
        double r28572 = r28570 * r28571;
        double r28573 = d3;
        double r28574 = 5;
        double r28575 = r28573 + r28574;
        double r28576 = r28575 * r28570;
        double r28577 = r28572 + r28576;
        double r28578 = 32;
        double r28579 = r28570 * r28578;
        double r28580 = r28577 + r28579;
        return r28580;
}


double f_of(float d1, float d2, float d3) {
        float r28581 = d1;
        float r28582 = d2;
        float r28583 = 5;
        float r28584 = r28582 + r28583;
        float r28585 = 32;
        float r28586 = d3;
        float r28587 = r28585 + r28586;
        float r28588 = r28584 + r28587;
        float r28589 = r28581 * r28588;
        return r28589;
}

double f_od(double d1, double d2, double d3) {
        double r28590 = d1;
        double r28591 = d2;
        double r28592 = 5;
        double r28593 = r28591 + r28592;
        double r28594 = 32;
        double r28595 = d3;
        double r28596 = r28594 + r28595;
        double r28597 = r28593 + r28596;
        double r28598 = r28590 * r28597;
        return r28598;
}

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 r28599, r28600, r28601, r28602, r28603, r28604, r28605, r28606, r28607, r28608, r28609;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28599);
        mpfr_init(r28600);
        mpfr_init(r28601);
        mpfr_init(r28602);
        mpfr_init_set_str(r28603, "5", 10, MPFR_RNDN);
        mpfr_init(r28604);
        mpfr_init(r28605);
        mpfr_init(r28606);
        mpfr_init_set_str(r28607, "32", 10, MPFR_RNDN);
        mpfr_init(r28608);
        mpfr_init(r28609);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r28599, d1, MPFR_RNDN);
        mpfr_set_d(r28600, d2, MPFR_RNDN);
        mpfr_mul(r28601, r28599, r28600, MPFR_RNDN);
        mpfr_set_d(r28602, d3, MPFR_RNDN);
        ;
        mpfr_add(r28604, r28602, r28603, MPFR_RNDN);
        mpfr_mul(r28605, r28604, r28599, MPFR_RNDN);
        mpfr_add(r28606, r28601, r28605, MPFR_RNDN);
        ;
        mpfr_mul(r28608, r28599, r28607, MPFR_RNDN);
        mpfr_add(r28609, r28606, r28608, MPFR_RNDN);
        return mpfr_get_d(r28609, MPFR_RNDN);
}

static mpfr_t r28610, r28611, r28612, r28613, r28614, r28615, r28616, r28617, r28618;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28610);
        mpfr_init(r28611);
        mpfr_init_set_str(r28612, "5", 10, MPFR_RNDN);
        mpfr_init(r28613);
        mpfr_init_set_str(r28614, "32", 10, MPFR_RNDN);
        mpfr_init(r28615);
        mpfr_init(r28616);
        mpfr_init(r28617);
        mpfr_init(r28618);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r28610, d1, MPFR_RNDN);
        mpfr_set_d(r28611, d2, MPFR_RNDN);
        ;
        mpfr_add(r28613, r28611, r28612, MPFR_RNDN);
        ;
        mpfr_set_d(r28615, d3, MPFR_RNDN);
        mpfr_add(r28616, r28614, r28615, MPFR_RNDN);
        mpfr_add(r28617, r28613, r28616, MPFR_RNDN);
        mpfr_mul(r28618, r28610, r28617, MPFR_RNDN);
        return mpfr_get_d(r28618, MPFR_RNDN);
}

static mpfr_t r28619, r28620, r28621, r28622, r28623, r28624, r28625, r28626, r28627;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28619);
        mpfr_init(r28620);
        mpfr_init_set_str(r28621, "5", 10, MPFR_RNDN);
        mpfr_init(r28622);
        mpfr_init_set_str(r28623, "32", 10, MPFR_RNDN);
        mpfr_init(r28624);
        mpfr_init(r28625);
        mpfr_init(r28626);
        mpfr_init(r28627);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r28619, d1, MPFR_RNDN);
        mpfr_set_d(r28620, d2, MPFR_RNDN);
        ;
        mpfr_add(r28622, r28620, r28621, MPFR_RNDN);
        ;
        mpfr_set_d(r28624, d3, MPFR_RNDN);
        mpfr_add(r28625, r28623, r28624, MPFR_RNDN);
        mpfr_add(r28626, r28622, r28625, MPFR_RNDN);
        mpfr_mul(r28627, r28619, r28626, MPFR_RNDN);
        return mpfr_get_d(r28627, MPFR_RNDN);
}

