#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 r12436 = d1;
        float r12437 = d2;
        float r12438 = r12436 * r12437;
        float r12439 = d3;
        float r12440 = 5;
        float r12441 = r12439 + r12440;
        float r12442 = r12441 * r12436;
        float r12443 = r12438 + r12442;
        float r12444 = 32;
        float r12445 = r12436 * r12444;
        float r12446 = r12443 + r12445;
        return r12446;
}

double f_id(double d1, double d2, double d3) {
        double r12447 = d1;
        double r12448 = d2;
        double r12449 = r12447 * r12448;
        double r12450 = d3;
        double r12451 = 5;
        double r12452 = r12450 + r12451;
        double r12453 = r12452 * r12447;
        double r12454 = r12449 + r12453;
        double r12455 = 32;
        double r12456 = r12447 * r12455;
        double r12457 = r12454 + r12456;
        return r12457;
}


double f_of(float d1, float d2, float d3) {
        float r12458 = d1;
        float r12459 = 5;
        float r12460 = 32;
        float r12461 = r12459 + r12460;
        float r12462 = d3;
        float r12463 = d2;
        float r12464 = r12462 + r12463;
        float r12465 = r12461 + r12464;
        float r12466 = r12458 * r12465;
        return r12466;
}

double f_od(double d1, double d2, double d3) {
        double r12467 = d1;
        double r12468 = 5;
        double r12469 = 32;
        double r12470 = r12468 + r12469;
        double r12471 = d3;
        double r12472 = d2;
        double r12473 = r12471 + r12472;
        double r12474 = r12470 + r12473;
        double r12475 = r12467 * r12474;
        return r12475;
}

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 r12476, r12477, r12478, r12479, r12480, r12481, r12482, r12483, r12484, r12485, r12486;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12476);
        mpfr_init(r12477);
        mpfr_init(r12478);
        mpfr_init(r12479);
        mpfr_init_set_str(r12480, "5", 10, MPFR_RNDN);
        mpfr_init(r12481);
        mpfr_init(r12482);
        mpfr_init(r12483);
        mpfr_init_set_str(r12484, "32", 10, MPFR_RNDN);
        mpfr_init(r12485);
        mpfr_init(r12486);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r12476, d1, MPFR_RNDN);
        mpfr_set_d(r12477, d2, MPFR_RNDN);
        mpfr_mul(r12478, r12476, r12477, MPFR_RNDN);
        mpfr_set_d(r12479, d3, MPFR_RNDN);
        ;
        mpfr_add(r12481, r12479, r12480, MPFR_RNDN);
        mpfr_mul(r12482, r12481, r12476, MPFR_RNDN);
        mpfr_add(r12483, r12478, r12482, MPFR_RNDN);
        ;
        mpfr_mul(r12485, r12476, r12484, MPFR_RNDN);
        mpfr_add(r12486, r12483, r12485, MPFR_RNDN);
        return mpfr_get_d(r12486, MPFR_RNDN);
}

static mpfr_t r12487, r12488, r12489, r12490, r12491, r12492, r12493, r12494, r12495;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12487);
        mpfr_init_set_str(r12488, "5", 10, MPFR_RNDN);
        mpfr_init_set_str(r12489, "32", 10, MPFR_RNDN);
        mpfr_init(r12490);
        mpfr_init(r12491);
        mpfr_init(r12492);
        mpfr_init(r12493);
        mpfr_init(r12494);
        mpfr_init(r12495);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r12487, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12490, r12488, r12489, MPFR_RNDN);
        mpfr_set_d(r12491, d3, MPFR_RNDN);
        mpfr_set_d(r12492, d2, MPFR_RNDN);
        mpfr_add(r12493, r12491, r12492, MPFR_RNDN);
        mpfr_add(r12494, r12490, r12493, MPFR_RNDN);
        mpfr_mul(r12495, r12487, r12494, MPFR_RNDN);
        return mpfr_get_d(r12495, MPFR_RNDN);
}

static mpfr_t r12496, r12497, r12498, r12499, r12500, r12501, r12502, r12503, r12504;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r12496);
        mpfr_init_set_str(r12497, "5", 10, MPFR_RNDN);
        mpfr_init_set_str(r12498, "32", 10, MPFR_RNDN);
        mpfr_init(r12499);
        mpfr_init(r12500);
        mpfr_init(r12501);
        mpfr_init(r12502);
        mpfr_init(r12503);
        mpfr_init(r12504);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r12496, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12499, r12497, r12498, MPFR_RNDN);
        mpfr_set_d(r12500, d3, MPFR_RNDN);
        mpfr_set_d(r12501, d2, MPFR_RNDN);
        mpfr_add(r12502, r12500, r12501, MPFR_RNDN);
        mpfr_add(r12503, r12499, r12502, MPFR_RNDN);
        mpfr_mul(r12504, r12496, r12503, MPFR_RNDN);
        return mpfr_get_d(r12504, MPFR_RNDN);
}

