#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 r26470 = d1;
        float r26471 = d2;
        float r26472 = r26470 * r26471;
        float r26473 = d3;
        float r26474 = 5;
        float r26475 = r26473 + r26474;
        float r26476 = r26475 * r26470;
        float r26477 = r26472 + r26476;
        float r26478 = 32;
        float r26479 = r26470 * r26478;
        float r26480 = r26477 + r26479;
        return r26480;
}

double f_id(double d1, double d2, double d3) {
        double r26481 = d1;
        double r26482 = d2;
        double r26483 = r26481 * r26482;
        double r26484 = d3;
        double r26485 = 5;
        double r26486 = r26484 + r26485;
        double r26487 = r26486 * r26481;
        double r26488 = r26483 + r26487;
        double r26489 = 32;
        double r26490 = r26481 * r26489;
        double r26491 = r26488 + r26490;
        return r26491;
}


double f_of(float d1, float d2, float d3) {
        float r26492 = d1;
        float r26493 = d2;
        float r26494 = 5;
        float r26495 = r26493 + r26494;
        float r26496 = 32;
        float r26497 = d3;
        float r26498 = r26496 + r26497;
        float r26499 = r26495 + r26498;
        float r26500 = r26492 * r26499;
        return r26500;
}

double f_od(double d1, double d2, double d3) {
        double r26501 = d1;
        double r26502 = d2;
        double r26503 = 5;
        double r26504 = r26502 + r26503;
        double r26505 = 32;
        double r26506 = d3;
        double r26507 = r26505 + r26506;
        double r26508 = r26504 + r26507;
        double r26509 = r26501 * r26508;
        return r26509;
}

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 r26510, r26511, r26512, r26513, r26514, r26515, r26516, r26517, r26518, r26519, r26520;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r26510);
        mpfr_init(r26511);
        mpfr_init(r26512);
        mpfr_init(r26513);
        mpfr_init_set_str(r26514, "5", 10, MPFR_RNDN);
        mpfr_init(r26515);
        mpfr_init(r26516);
        mpfr_init(r26517);
        mpfr_init_set_str(r26518, "32", 10, MPFR_RNDN);
        mpfr_init(r26519);
        mpfr_init(r26520);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r26510, d1, MPFR_RNDN);
        mpfr_set_d(r26511, d2, MPFR_RNDN);
        mpfr_mul(r26512, r26510, r26511, MPFR_RNDN);
        mpfr_set_d(r26513, d3, MPFR_RNDN);
        ;
        mpfr_add(r26515, r26513, r26514, MPFR_RNDN);
        mpfr_mul(r26516, r26515, r26510, MPFR_RNDN);
        mpfr_add(r26517, r26512, r26516, MPFR_RNDN);
        ;
        mpfr_mul(r26519, r26510, r26518, MPFR_RNDN);
        mpfr_add(r26520, r26517, r26519, MPFR_RNDN);
        return mpfr_get_d(r26520, MPFR_RNDN);
}

static mpfr_t r26521, r26522, r26523, r26524, r26525, r26526, r26527, r26528, r26529;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r26521);
        mpfr_init(r26522);
        mpfr_init_set_str(r26523, "5", 10, MPFR_RNDN);
        mpfr_init(r26524);
        mpfr_init_set_str(r26525, "32", 10, MPFR_RNDN);
        mpfr_init(r26526);
        mpfr_init(r26527);
        mpfr_init(r26528);
        mpfr_init(r26529);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r26521, d1, MPFR_RNDN);
        mpfr_set_d(r26522, d2, MPFR_RNDN);
        ;
        mpfr_add(r26524, r26522, r26523, MPFR_RNDN);
        ;
        mpfr_set_d(r26526, d3, MPFR_RNDN);
        mpfr_add(r26527, r26525, r26526, MPFR_RNDN);
        mpfr_add(r26528, r26524, r26527, MPFR_RNDN);
        mpfr_mul(r26529, r26521, r26528, MPFR_RNDN);
        return mpfr_get_d(r26529, MPFR_RNDN);
}

static mpfr_t r26530, r26531, r26532, r26533, r26534, r26535, r26536, r26537, r26538;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init_set_str(r26532, "5", 10, MPFR_RNDN);
        mpfr_init(r26533);
        mpfr_init_set_str(r26534, "32", 10, MPFR_RNDN);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init(r26537);
        mpfr_init(r26538);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r26530, d1, MPFR_RNDN);
        mpfr_set_d(r26531, d2, MPFR_RNDN);
        ;
        mpfr_add(r26533, r26531, r26532, MPFR_RNDN);
        ;
        mpfr_set_d(r26535, d3, MPFR_RNDN);
        mpfr_add(r26536, r26534, r26535, MPFR_RNDN);
        mpfr_add(r26537, r26533, r26536, MPFR_RNDN);
        mpfr_mul(r26538, r26530, r26537, MPFR_RNDN);
        return mpfr_get_d(r26538, MPFR_RNDN);
}

