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

char *name = "FastMath test1";

double f_if(float d) {
        float r26727 = d;
        float r26728 = 10;
        float r26729 = r26727 * r26728;
        float r26730 = 20;
        float r26731 = r26727 * r26730;
        float r26732 = r26729 + r26731;
        return r26732;
}

double f_id(double d) {
        double r26733 = d;
        double r26734 = 10;
        double r26735 = r26733 * r26734;
        double r26736 = 20;
        double r26737 = r26733 * r26736;
        double r26738 = r26735 + r26737;
        return r26738;
}


double f_of(float d) {
        float r26739 = d;
        float r26740 = 20;
        float r26741 = 10;
        float r26742 = r26740 + r26741;
        float r26743 = r26739 * r26742;
        return r26743;
}

double f_od(double d) {
        double r26744 = d;
        double r26745 = 20;
        double r26746 = 10;
        double r26747 = r26745 + r26746;
        double r26748 = r26744 * r26747;
        return r26748;
}

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 r26749, r26750, r26751, r26752, r26753, r26754;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r26749);
        mpfr_init_set_str(r26750, "10", 10, MPFR_RNDN);
        mpfr_init(r26751);
        mpfr_init_set_str(r26752, "20", 10, MPFR_RNDN);
        mpfr_init(r26753);
        mpfr_init(r26754);
}

double f_im(double d) {
        mpfr_set_d(r26749, d, MPFR_RNDN);
        ;
        mpfr_mul(r26751, r26749, r26750, MPFR_RNDN);
        ;
        mpfr_mul(r26753, r26749, r26752, MPFR_RNDN);
        mpfr_add(r26754, r26751, r26753, MPFR_RNDN);
        return mpfr_get_d(r26754, MPFR_RNDN);
}

static mpfr_t r26755, r26756, r26757, r26758, r26759;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26755);
        mpfr_init_set_str(r26756, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r26757, "10", 10, MPFR_RNDN);
        mpfr_init(r26758);
        mpfr_init(r26759);
}

double f_fm(double d) {
        mpfr_set_d(r26755, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26758, r26756, r26757, MPFR_RNDN);
        mpfr_mul(r26759, r26755, r26758, MPFR_RNDN);
        return mpfr_get_d(r26759, MPFR_RNDN);
}

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

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26760);
        mpfr_init_set_str(r26761, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r26762, "10", 10, MPFR_RNDN);
        mpfr_init(r26763);
        mpfr_init(r26764);
}

double f_dm(double d) {
        mpfr_set_d(r26760, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26763, r26761, r26762, MPFR_RNDN);
        mpfr_mul(r26764, r26760, r26763, MPFR_RNDN);
        return mpfr_get_d(r26764, MPFR_RNDN);
}

