#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 r25721 = d;
        float r25722 = 10;
        float r25723 = r25721 * r25722;
        float r25724 = 20;
        float r25725 = r25721 * r25724;
        float r25726 = r25723 + r25725;
        return r25726;
}

double f_id(double d) {
        double r25727 = d;
        double r25728 = 10;
        double r25729 = r25727 * r25728;
        double r25730 = 20;
        double r25731 = r25727 * r25730;
        double r25732 = r25729 + r25731;
        return r25732;
}


double f_of(float d) {
        float r25733 = d;
        float r25734 = 20;
        float r25735 = 10;
        float r25736 = r25734 + r25735;
        float r25737 = r25733 * r25736;
        return r25737;
}

double f_od(double d) {
        double r25738 = d;
        double r25739 = 20;
        double r25740 = 10;
        double r25741 = r25739 + r25740;
        double r25742 = r25738 * r25741;
        return r25742;
}

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 r25743, r25744, r25745, r25746, r25747, r25748;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r25743);
        mpfr_init_set_str(r25744, "10", 10, MPFR_RNDN);
        mpfr_init(r25745);
        mpfr_init_set_str(r25746, "20", 10, MPFR_RNDN);
        mpfr_init(r25747);
        mpfr_init(r25748);
}

double f_im(double d) {
        mpfr_set_d(r25743, d, MPFR_RNDN);
        ;
        mpfr_mul(r25745, r25743, r25744, MPFR_RNDN);
        ;
        mpfr_mul(r25747, r25743, r25746, MPFR_RNDN);
        mpfr_add(r25748, r25745, r25747, MPFR_RNDN);
        return mpfr_get_d(r25748, MPFR_RNDN);
}

static mpfr_t r25749, r25750, r25751, r25752, r25753;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25749);
        mpfr_init_set_str(r25750, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r25751, "10", 10, MPFR_RNDN);
        mpfr_init(r25752);
        mpfr_init(r25753);
}

double f_fm(double d) {
        mpfr_set_d(r25749, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r25752, r25750, r25751, MPFR_RNDN);
        mpfr_mul(r25753, r25749, r25752, MPFR_RNDN);
        return mpfr_get_d(r25753, MPFR_RNDN);
}

static mpfr_t r25754, r25755, r25756, r25757, r25758;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25754);
        mpfr_init_set_str(r25755, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r25756, "10", 10, MPFR_RNDN);
        mpfr_init(r25757);
        mpfr_init(r25758);
}

double f_dm(double d) {
        mpfr_set_d(r25754, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r25757, r25755, r25756, MPFR_RNDN);
        mpfr_mul(r25758, r25754, r25757, MPFR_RNDN);
        return mpfr_get_d(r25758, MPFR_RNDN);
}

