#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 r34975 = 1.0f;
        float r34976 = t;
        float r34977 = 2e-16f;
        float r34978 = r34976 * r34977;
        float r34979 = r34975 + r34978;
        float r34980 = r34979 * r34979;
        float r34981 = -1.0f;
        float r34982 = 2.0f;
        float r34983 = r34982 * r34978;
        float r34984 = r34981 - r34983;
        float r34985 = r34980 + r34984;
        return r34985;
}

double f_id(double t) {
        double r34986 = 1.0;
        double r34987 = t;
        double r34988 = 2e-16;
        double r34989 = r34987 * r34988;
        double r34990 = r34986 + r34989;
        double r34991 = r34990 * r34990;
        double r34992 = -1.0;
        double r34993 = 2.0;
        double r34994 = r34993 * r34989;
        double r34995 = r34992 - r34994;
        double r34996 = r34991 + r34995;
        return r34996;
}


double f_of(float t) {
        float r34997 = 3.9999999999999997e-32f;
        float r34998 = t;
        float r34999 = r34997 * r34998;
        float r35000 = r34999 * r34998;
        return r35000;
}

double f_od(double t) {
        double r35001 = 3.9999999999999997e-32;
        double r35002 = t;
        double r35003 = r35001 * r35002;
        double r35004 = r35003 * r35002;
        return r35004;
}

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 r35005, r35006, r35007, r35008, r35009, r35010, r35011, r35012, r35013, r35014, r35015;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r35005, "1", 10, MPFR_RNDN);
        mpfr_init(r35006);
        mpfr_init_set_str(r35007, "2e-16", 10, MPFR_RNDN);
        mpfr_init(r35008);
        mpfr_init(r35009);
        mpfr_init(r35010);
        mpfr_init_set_str(r35011, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r35012, "2", 10, MPFR_RNDN);
        mpfr_init(r35013);
        mpfr_init(r35014);
        mpfr_init(r35015);
}

double f_im(double t) {
        ;
        mpfr_set_d(r35006, t, MPFR_RNDN);
        ;
        mpfr_mul(r35008, r35006, r35007, MPFR_RNDN);
        mpfr_add(r35009, r35005, r35008, MPFR_RNDN);
        mpfr_mul(r35010, r35009, r35009, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r35013, r35012, r35008, MPFR_RNDN);
        mpfr_sub(r35014, r35011, r35013, MPFR_RNDN);
        mpfr_add(r35015, r35010, r35014, MPFR_RNDN);
        return mpfr_get_d(r35015, MPFR_RNDN);
}

static mpfr_t r35016, r35017, r35018, r35019;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r35016, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r35017);
        mpfr_init(r35018);
        mpfr_init(r35019);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r35017, t, MPFR_RNDN);
        mpfr_mul(r35018, r35016, r35017, MPFR_RNDN);
        mpfr_mul(r35019, r35018, r35017, MPFR_RNDN);
        return mpfr_get_d(r35019, MPFR_RNDN);
}

static mpfr_t r35020, r35021, r35022, r35023;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r35020, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r35021);
        mpfr_init(r35022);
        mpfr_init(r35023);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r35021, t, MPFR_RNDN);
        mpfr_mul(r35022, r35020, r35021, MPFR_RNDN);
        mpfr_mul(r35023, r35022, r35021, MPFR_RNDN);
        return mpfr_get_d(r35023, MPFR_RNDN);
}

