#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 r12513 = d;
        float r12514 = 10;
        float r12515 = r12513 * r12514;
        float r12516 = 20;
        float r12517 = r12513 * r12516;
        float r12518 = r12515 + r12517;
        return r12518;
}

double f_id(double d) {
        double r12519 = d;
        double r12520 = 10;
        double r12521 = r12519 * r12520;
        double r12522 = 20;
        double r12523 = r12519 * r12522;
        double r12524 = r12521 + r12523;
        return r12524;
}


double f_of(float d) {
        float r12525 = 10;
        float r12526 = 20;
        float r12527 = r12525 + r12526;
        float r12528 = d;
        float r12529 = r12527 * r12528;
        return r12529;
}

double f_od(double d) {
        double r12530 = 10;
        double r12531 = 20;
        double r12532 = r12530 + r12531;
        double r12533 = d;
        double r12534 = r12532 * r12533;
        return r12534;
}

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 r12535, r12536, r12537, r12538, r12539, r12540;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r12535);
        mpfr_init_set_str(r12536, "10", 10, MPFR_RNDN);
        mpfr_init(r12537);
        mpfr_init_set_str(r12538, "20", 10, MPFR_RNDN);
        mpfr_init(r12539);
        mpfr_init(r12540);
}

double f_im(double d) {
        mpfr_set_d(r12535, d, MPFR_RNDN);
        ;
        mpfr_mul(r12537, r12535, r12536, MPFR_RNDN);
        ;
        mpfr_mul(r12539, r12535, r12538, MPFR_RNDN);
        mpfr_add(r12540, r12537, r12539, MPFR_RNDN);
        return mpfr_get_d(r12540, MPFR_RNDN);
}

static mpfr_t r12541, r12542, r12543, r12544, r12545;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r12541, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r12542, "20", 10, MPFR_RNDN);
        mpfr_init(r12543);
        mpfr_init(r12544);
        mpfr_init(r12545);
}

double f_fm(double d) {
        ;
        ;
        mpfr_add(r12543, r12541, r12542, MPFR_RNDN);
        mpfr_set_d(r12544, d, MPFR_RNDN);
        mpfr_mul(r12545, r12543, r12544, MPFR_RNDN);
        return mpfr_get_d(r12545, MPFR_RNDN);
}

static mpfr_t r12546, r12547, r12548, r12549, r12550;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r12546, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r12547, "20", 10, MPFR_RNDN);
        mpfr_init(r12548);
        mpfr_init(r12549);
        mpfr_init(r12550);
}

double f_dm(double d) {
        ;
        ;
        mpfr_add(r12548, r12546, r12547, MPFR_RNDN);
        mpfr_set_d(r12549, d, MPFR_RNDN);
        mpfr_mul(r12550, r12548, r12549, MPFR_RNDN);
        return mpfr_get_d(r12550, MPFR_RNDN);
}

