#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "FastMath test3";

double f_if(float d1, float d2, float d3) {
        float r26710 = d1;
        float r26711 = 3;
        float r26712 = r26710 * r26711;
        float r26713 = d2;
        float r26714 = r26710 * r26713;
        float r26715 = r26712 + r26714;
        float r26716 = d3;
        float r26717 = r26710 * r26716;
        float r26718 = r26715 + r26717;
        return r26718;
}

double f_id(double d1, double d2, double d3) {
        double r26719 = d1;
        double r26720 = 3;
        double r26721 = r26719 * r26720;
        double r26722 = d2;
        double r26723 = r26719 * r26722;
        double r26724 = r26721 + r26723;
        double r26725 = d3;
        double r26726 = r26719 * r26725;
        double r26727 = r26724 + r26726;
        return r26727;
}


double f_of(float d1, float d2, float d3) {
        float r26728 = d1;
        float r26729 = d2;
        float r26730 = 3;
        float r26731 = r26729 + r26730;
        float r26732 = d3;
        float r26733 = r26731 + r26732;
        float r26734 = r26728 * r26733;
        return r26734;
}

double f_od(double d1, double d2, double d3) {
        double r26735 = d1;
        double r26736 = d2;
        double r26737 = 3;
        double r26738 = r26736 + r26737;
        double r26739 = d3;
        double r26740 = r26738 + r26739;
        double r26741 = r26735 * r26740;
        return r26741;
}

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 r26742, r26743, r26744, r26745, r26746, r26747, r26748, r26749, r26750;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26742);
        mpfr_init_set_str(r26743, "3", 10, MPFR_RNDN);
        mpfr_init(r26744);
        mpfr_init(r26745);
        mpfr_init(r26746);
        mpfr_init(r26747);
        mpfr_init(r26748);
        mpfr_init(r26749);
        mpfr_init(r26750);
}

double f_im(double d1, double d2, double d3) {
        mpfr_set_d(r26742, d1, MPFR_RNDN);
        ;
        mpfr_mul(r26744, r26742, r26743, MPFR_RNDN);
        mpfr_set_d(r26745, d2, MPFR_RNDN);
        mpfr_mul(r26746, r26742, r26745, MPFR_RNDN);
        mpfr_add(r26747, r26744, r26746, MPFR_RNDN);
        mpfr_set_d(r26748, d3, MPFR_RNDN);
        mpfr_mul(r26749, r26742, r26748, MPFR_RNDN);
        mpfr_add(r26750, r26747, r26749, MPFR_RNDN);
        return mpfr_get_d(r26750, MPFR_RNDN);
}

static mpfr_t r26751, r26752, r26753, r26754, r26755, r26756, r26757;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26751);
        mpfr_init(r26752);
        mpfr_init_set_str(r26753, "3", 10, MPFR_RNDN);
        mpfr_init(r26754);
        mpfr_init(r26755);
        mpfr_init(r26756);
        mpfr_init(r26757);
}

double f_fm(double d1, double d2, double d3) {
        mpfr_set_d(r26751, d1, MPFR_RNDN);
        mpfr_set_d(r26752, d2, MPFR_RNDN);
        ;
        mpfr_add(r26754, r26752, r26753, MPFR_RNDN);
        mpfr_set_d(r26755, d3, MPFR_RNDN);
        mpfr_add(r26756, r26754, r26755, MPFR_RNDN);
        mpfr_mul(r26757, r26751, r26756, MPFR_RNDN);
        return mpfr_get_d(r26757, MPFR_RNDN);
}

static mpfr_t r26758, r26759, r26760, r26761, r26762, r26763, r26764;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26758);
        mpfr_init(r26759);
        mpfr_init_set_str(r26760, "3", 10, MPFR_RNDN);
        mpfr_init(r26761);
        mpfr_init(r26762);
        mpfr_init(r26763);
        mpfr_init(r26764);
}

double f_dm(double d1, double d2, double d3) {
        mpfr_set_d(r26758, d1, MPFR_RNDN);
        mpfr_set_d(r26759, d2, MPFR_RNDN);
        ;
        mpfr_add(r26761, r26759, r26760, MPFR_RNDN);
        mpfr_set_d(r26762, d3, MPFR_RNDN);
        mpfr_add(r26763, r26761, r26762, MPFR_RNDN);
        mpfr_mul(r26764, r26758, r26763, MPFR_RNDN);
        return mpfr_get_d(r26764, MPFR_RNDN);
}

