#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 r12652 = d1;
        float r12653 = d2;
        float r12654 = r12652 * r12653;
        float r12655 = d3;
        float r12656 = 5;
        float r12657 = r12655 + r12656;
        float r12658 = r12657 * r12652;
        float r12659 = r12654 + r12658;
        float r12660 = 32;
        float r12661 = r12652 * r12660;
        float r12662 = r12659 + r12661;
        return r12662;
}

double f_id(double d1, double d2, double d3) {
        double r12663 = d1;
        double r12664 = d2;
        double r12665 = r12663 * r12664;
        double r12666 = d3;
        double r12667 = 5;
        double r12668 = r12666 + r12667;
        double r12669 = r12668 * r12663;
        double r12670 = r12665 + r12669;
        double r12671 = 32;
        double r12672 = r12663 * r12671;
        double r12673 = r12670 + r12672;
        return r12673;
}


double f_of(float d1, float d2, float d3) {
        float r12674 = d1;
        float r12675 = d2;
        float r12676 = 5;
        float r12677 = r12675 + r12676;
        float r12678 = d3;
        float r12679 = 32;
        float r12680 = r12678 + r12679;
        float r12681 = r12677 + r12680;
        float r12682 = r12674 * r12681;
        return r12682;
}

double f_od(double d1, double d2, double d3) {
        double r12683 = d1;
        double r12684 = d2;
        double r12685 = 5;
        double r12686 = r12684 + r12685;
        double r12687 = d3;
        double r12688 = 32;
        double r12689 = r12687 + r12688;
        double r12690 = r12686 + r12689;
        double r12691 = r12683 * r12690;
        return r12691;
}

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 r12692, r12693, r12694, r12695, r12696, r12697, r12698, r12699, r12700, r12701, r12702;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init(r12692);
        mpfr_init(r12693);
        mpfr_init(r12694);
        mpfr_init(r12695);
        mpfr_init_set_str(r12696, "5", 10, MPFR_RNDN);
        mpfr_init(r12697);
        mpfr_init(r12698);
        mpfr_init(r12699);
        mpfr_init_set_str(r12700, "32", 10, MPFR_RNDN);
        mpfr_init(r12701);
        mpfr_init(r12702);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r12692, d1, MPFR_RNDN);
        mpfr_set_d(r12693, d2, MPFR_RNDN);
        mpfr_mul(r12694, r12692, r12693, MPFR_RNDN);
        mpfr_set_d(r12695, d3, MPFR_RNDN);
        ;
        mpfr_add(r12697, r12695, r12696, MPFR_RNDN);
        mpfr_mul(r12698, r12697, r12692, MPFR_RNDN);
        mpfr_add(r12699, r12694, r12698, MPFR_RNDN);
        ;
        mpfr_mul(r12701, r12692, r12700, MPFR_RNDN);
        mpfr_add(r12702, r12699, r12701, MPFR_RNDN);
        return mpfr_get_d(r12702, MPFR_RNDN);
}

static mpfr_t r12703, r12704, r12705, r12706, r12707, r12708, r12709, r12710, r12711;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init(r12703);
        mpfr_init(r12704);
        mpfr_init_set_str(r12705, "5", 10, MPFR_RNDN);
        mpfr_init(r12706);
        mpfr_init(r12707);
        mpfr_init_set_str(r12708, "32", 10, MPFR_RNDN);
        mpfr_init(r12709);
        mpfr_init(r12710);
        mpfr_init(r12711);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r12703, d1, MPFR_RNDN);
        mpfr_set_d(r12704, d2, MPFR_RNDN);
        ;
        mpfr_add(r12706, r12704, r12705, MPFR_RNDN);
        mpfr_set_d(r12707, d3, MPFR_RNDN);
        ;
        mpfr_add(r12709, r12707, r12708, MPFR_RNDN);
        mpfr_add(r12710, r12706, r12709, MPFR_RNDN);
        mpfr_mul(r12711, r12703, r12710, MPFR_RNDN);
        return mpfr_get_d(r12711, MPFR_RNDN);
}

static mpfr_t r12712, r12713, r12714, r12715, r12716, r12717, r12718, r12719, r12720;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init(r12712);
        mpfr_init(r12713);
        mpfr_init_set_str(r12714, "5", 10, MPFR_RNDN);
        mpfr_init(r12715);
        mpfr_init(r12716);
        mpfr_init_set_str(r12717, "32", 10, MPFR_RNDN);
        mpfr_init(r12718);
        mpfr_init(r12719);
        mpfr_init(r12720);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r12712, d1, MPFR_RNDN);
        mpfr_set_d(r12713, d2, MPFR_RNDN);
        ;
        mpfr_add(r12715, r12713, r12714, MPFR_RNDN);
        mpfr_set_d(r12716, d3, MPFR_RNDN);
        ;
        mpfr_add(r12718, r12716, r12717, MPFR_RNDN);
        mpfr_add(r12719, r12715, r12718, MPFR_RNDN);
        mpfr_mul(r12720, r12712, r12719, MPFR_RNDN);
        return mpfr_get_d(r12720, MPFR_RNDN);
}

