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

char *name = "fma_test1";

double f_if(float t) {
        float r8747 = 1.0f;
        float r8748 = t;
        float r8749 = 2e-16f;
        float r8750 = r8748 * r8749;
        float r8751 = r8747 + r8750;
        float r8752 = r8751 * r8751;
        float r8753 = -1.0f;
        float r8754 = 2.0f;
        float r8755 = r8754 * r8750;
        float r8756 = r8753 - r8755;
        float r8757 = r8752 + r8756;
        return r8757;
}

double f_id(double t) {
        double r8758 = 1.0;
        double r8759 = t;
        double r8760 = 2e-16;
        double r8761 = r8759 * r8760;
        double r8762 = r8758 + r8761;
        double r8763 = r8762 * r8762;
        double r8764 = -1.0;
        double r8765 = 2.0;
        double r8766 = r8765 * r8761;
        double r8767 = r8764 - r8766;
        double r8768 = r8763 + r8767;
        return r8768;
}


double f_of(float t) {
        float r8769 = 3.9999999999999997e-32f;
        float r8770 = t;
        float r8771 = r8769 * r8770;
        float r8772 = r8771 * r8770;
        return r8772;
}

double f_od(double t) {
        double r8773 = 3.9999999999999997e-32;
        double r8774 = t;
        double r8775 = r8773 * r8774;
        double r8776 = r8775 * r8774;
        return r8776;
}

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 r8777, r8778, r8779, r8780, r8781, r8782, r8783, r8784, r8785, r8786, r8787;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8777, "1", 10, MPFR_RNDN);
        mpfr_init(r8778);
        mpfr_init_set_str(r8779, "2e-16", 10, MPFR_RNDN);
        mpfr_init(r8780);
        mpfr_init(r8781);
        mpfr_init(r8782);
        mpfr_init_set_str(r8783, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8784, "2", 10, MPFR_RNDN);
        mpfr_init(r8785);
        mpfr_init(r8786);
        mpfr_init(r8787);
}

double f_im(double t) {
        ;
        mpfr_set_d(r8778, t, MPFR_RNDN);
        ;
        mpfr_mul(r8780, r8778, r8779, MPFR_RNDN);
        mpfr_add(r8781, r8777, r8780, MPFR_RNDN);
        mpfr_mul(r8782, r8781, r8781, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r8785, r8784, r8780, MPFR_RNDN);
        mpfr_sub(r8786, r8783, r8785, MPFR_RNDN);
        mpfr_add(r8787, r8782, r8786, MPFR_RNDN);
        return mpfr_get_d(r8787, MPFR_RNDN);
}

static mpfr_t r8788, r8789, r8790, r8791;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8788, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r8789);
        mpfr_init(r8790);
        mpfr_init(r8791);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r8789, t, MPFR_RNDN);
        mpfr_mul(r8790, r8788, r8789, MPFR_RNDN);
        mpfr_mul(r8791, r8790, r8789, MPFR_RNDN);
        return mpfr_get_d(r8791, MPFR_RNDN);
}

static mpfr_t r8792, r8793, r8794, r8795;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8792, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r8793);
        mpfr_init(r8794);
        mpfr_init(r8795);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r8793, t, MPFR_RNDN);
        mpfr_mul(r8794, r8792, r8793, MPFR_RNDN);
        mpfr_mul(r8795, r8794, r8793, MPFR_RNDN);
        return mpfr_get_d(r8795, MPFR_RNDN);
}

