#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 r12586 = d;
        float r12587 = 10;
        float r12588 = r12586 * r12587;
        float r12589 = 20;
        float r12590 = r12586 * r12589;
        float r12591 = r12588 + r12590;
        return r12591;
}

double f_id(double d) {
        double r12592 = d;
        double r12593 = 10;
        double r12594 = r12592 * r12593;
        double r12595 = 20;
        double r12596 = r12592 * r12595;
        double r12597 = r12594 + r12596;
        return r12597;
}


double f_of(float d) {
        float r12598 = 10;
        float r12599 = 20;
        float r12600 = r12598 + r12599;
        float r12601 = d;
        float r12602 = r12600 * r12601;
        return r12602;
}

double f_od(double d) {
        double r12603 = 10;
        double r12604 = 20;
        double r12605 = r12603 + r12604;
        double r12606 = d;
        double r12607 = r12605 * r12606;
        return r12607;
}

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 r12608, r12609, r12610, r12611, r12612, r12613;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r12608);
        mpfr_init_set_str(r12609, "10", 10, MPFR_RNDN);
        mpfr_init(r12610);
        mpfr_init_set_str(r12611, "20", 10, MPFR_RNDN);
        mpfr_init(r12612);
        mpfr_init(r12613);
}

double f_im(double d) {
        mpfr_set_d(r12608, d, MPFR_RNDN);
        ;
        mpfr_mul(r12610, r12608, r12609, MPFR_RNDN);
        ;
        mpfr_mul(r12612, r12608, r12611, MPFR_RNDN);
        mpfr_add(r12613, r12610, r12612, MPFR_RNDN);
        return mpfr_get_d(r12613, MPFR_RNDN);
}

static mpfr_t r12614, r12615, r12616, r12617, r12618;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r12614, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r12615, "20", 10, MPFR_RNDN);
        mpfr_init(r12616);
        mpfr_init(r12617);
        mpfr_init(r12618);
}

double f_fm(double d) {
        ;
        ;
        mpfr_add(r12616, r12614, r12615, MPFR_RNDN);
        mpfr_set_d(r12617, d, MPFR_RNDN);
        mpfr_mul(r12618, r12616, r12617, MPFR_RNDN);
        return mpfr_get_d(r12618, MPFR_RNDN);
}

static mpfr_t r12619, r12620, r12621, r12622, r12623;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r12619, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r12620, "20", 10, MPFR_RNDN);
        mpfr_init(r12621);
        mpfr_init(r12622);
        mpfr_init(r12623);
}

double f_dm(double d) {
        ;
        ;
        mpfr_add(r12621, r12619, r12620, MPFR_RNDN);
        mpfr_set_d(r12622, d, MPFR_RNDN);
        mpfr_mul(r12623, r12621, r12622, MPFR_RNDN);
        return mpfr_get_d(r12623, MPFR_RNDN);
}

