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

char *name = "fma_test2";

double f_if(float t) {
        float r39255 = 1.7e+308;
        float r39256 = t;
        float r39257 = r39255 * r39256;
        float r39258 = r39257 - r39255;
        return r39258;
}

double f_id(double t) {
        double r39259 = 1.7e+308;
        double r39260 = t;
        double r39261 = r39259 * r39260;
        double r39262 = r39261 - r39259;
        return r39262;
}


double f_of(float t) {
        float r39263 = 1.7e+308;
        float r39264 = t;
        float r39265 = r39263 * r39264;
        float r39266 = r39265 - r39263;
        return r39266;
}

double f_od(double t) {
        double r39267 = 1.7e+308;
        double r39268 = t;
        double r39269 = r39267 * r39268;
        double r39270 = r39269 - r39267;
        return r39270;
}

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 r39271, r39272, r39273, r39274;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r39271, "1.7e+308", 10, MPFR_RNDN);
        mpfr_init(r39272);
        mpfr_init(r39273);
        mpfr_init(r39274);
}

double f_im(double t) {
        ;
        mpfr_set_d(r39272, t, MPFR_RNDN);
        mpfr_mul(r39273, r39271, r39272, MPFR_RNDN);
        mpfr_sub(r39274, r39273, r39271, MPFR_RNDN);
        return mpfr_get_d(r39274, MPFR_RNDN);
}

static mpfr_t r39275, r39276, r39277, r39278;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r39275, "1.7e+308", 10, MPFR_RNDN);
        mpfr_init(r39276);
        mpfr_init(r39277);
        mpfr_init(r39278);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r39276, t, MPFR_RNDN);
        mpfr_mul(r39277, r39275, r39276, MPFR_RNDN);
        mpfr_sub(r39278, r39277, r39275, MPFR_RNDN);
        return mpfr_get_d(r39278, MPFR_RNDN);
}

static mpfr_t r39279, r39280, r39281, r39282;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r39279, "1.7e+308", 10, MPFR_RNDN);
        mpfr_init(r39280);
        mpfr_init(r39281);
        mpfr_init(r39282);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r39280, t, MPFR_RNDN);
        mpfr_mul(r39281, r39279, r39280, MPFR_RNDN);
        mpfr_sub(r39282, r39281, r39279, MPFR_RNDN);
        return mpfr_get_d(r39282, MPFR_RNDN);
}

