#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 r8713 = 1.7e+308f;
        float r8714 = t;
        float r8715 = r8713 * r8714;
        float r8716 = r8715 - r8713;
        return r8716;
}

double f_id(double t) {
        double r8717 = 1.7e+308;
        double r8718 = t;
        double r8719 = r8717 * r8718;
        double r8720 = r8719 - r8717;
        return r8720;
}


double f_of(float t) {
        float r8721 = 1.7e+308f;
        float r8722 = t;
        float r8723 = r8721 * r8722;
        float r8724 = r8723 - r8721;
        return r8724;
}

double f_od(double t) {
        double r8725 = 1.7e+308;
        double r8726 = t;
        double r8727 = r8725 * r8726;
        double r8728 = r8727 - r8725;
        return r8728;
}

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 r8729, r8730, r8731, r8732;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8729, "1.7e+308", 10, MPFR_RNDN);
        mpfr_init(r8730);
        mpfr_init(r8731);
        mpfr_init(r8732);
}

double f_im(double t) {
        ;
        mpfr_set_d(r8730, t, MPFR_RNDN);
        mpfr_mul(r8731, r8729, r8730, MPFR_RNDN);
        mpfr_sub(r8732, r8731, r8729, MPFR_RNDN);
        return mpfr_get_d(r8732, MPFR_RNDN);
}

static mpfr_t r8733, r8734, r8735, r8736;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8733, "1.7e+308", 10, MPFR_RNDN);
        mpfr_init(r8734);
        mpfr_init(r8735);
        mpfr_init(r8736);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r8734, t, MPFR_RNDN);
        mpfr_mul(r8735, r8733, r8734, MPFR_RNDN);
        mpfr_sub(r8736, r8735, r8733, MPFR_RNDN);
        return mpfr_get_d(r8736, MPFR_RNDN);
}

static mpfr_t r8737, r8738, r8739, r8740;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8737, "1.7e+308", 10, MPFR_RNDN);
        mpfr_init(r8738);
        mpfr_init(r8739);
        mpfr_init(r8740);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r8738, t, MPFR_RNDN);
        mpfr_mul(r8739, r8737, r8738, MPFR_RNDN);
        mpfr_sub(r8740, r8739, r8737, MPFR_RNDN);
        return mpfr_get_d(r8740, MPFR_RNDN);
}

