#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 r39283 = 1;
        float r39284 = t;
        float r39285 = 2e-16;
        float r39286 = r39284 * r39285;
        float r39287 = r39283 + r39286;
        float r39288 = r39287 * r39287;
        float r39289 = -1;
        float r39290 = 2;
        float r39291 = r39290 * r39286;
        float r39292 = r39289 - r39291;
        float r39293 = r39288 + r39292;
        return r39293;
}

double f_id(double t) {
        double r39294 = 1;
        double r39295 = t;
        double r39296 = 2e-16;
        double r39297 = r39295 * r39296;
        double r39298 = r39294 + r39297;
        double r39299 = r39298 * r39298;
        double r39300 = -1;
        double r39301 = 2;
        double r39302 = r39301 * r39297;
        double r39303 = r39300 - r39302;
        double r39304 = r39299 + r39303;
        return r39304;
}


double f_of(float t) {
        float r39305 = 3.9999999999999997e-32;
        float r39306 = t;
        float r39307 = r39305 * r39306;
        float r39308 = r39307 * r39306;
        return r39308;
}

double f_od(double t) {
        double r39309 = 3.9999999999999997e-32;
        double r39310 = t;
        double r39311 = r39309 * r39310;
        double r39312 = r39311 * r39310;
        return r39312;
}

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 r39313, r39314, r39315, r39316, r39317, r39318, r39319, r39320, r39321, r39322, r39323;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r39313, "1", 10, MPFR_RNDN);
        mpfr_init(r39314);
        mpfr_init_set_str(r39315, "2e-16", 10, MPFR_RNDN);
        mpfr_init(r39316);
        mpfr_init(r39317);
        mpfr_init(r39318);
        mpfr_init_set_str(r39319, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r39320, "2", 10, MPFR_RNDN);
        mpfr_init(r39321);
        mpfr_init(r39322);
        mpfr_init(r39323);
}

double f_im(double t) {
        ;
        mpfr_set_d(r39314, t, MPFR_RNDN);
        ;
        mpfr_mul(r39316, r39314, r39315, MPFR_RNDN);
        mpfr_add(r39317, r39313, r39316, MPFR_RNDN);
        mpfr_mul(r39318, r39317, r39317, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r39321, r39320, r39316, MPFR_RNDN);
        mpfr_sub(r39322, r39319, r39321, MPFR_RNDN);
        mpfr_add(r39323, r39318, r39322, MPFR_RNDN);
        return mpfr_get_d(r39323, MPFR_RNDN);
}

static mpfr_t r39324, r39325, r39326, r39327;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r39324, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r39325);
        mpfr_init(r39326);
        mpfr_init(r39327);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r39325, t, MPFR_RNDN);
        mpfr_mul(r39326, r39324, r39325, MPFR_RNDN);
        mpfr_mul(r39327, r39326, r39325, MPFR_RNDN);
        return mpfr_get_d(r39327, MPFR_RNDN);
}

static mpfr_t r39328, r39329, r39330, r39331;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r39328, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r39329);
        mpfr_init(r39330);
        mpfr_init(r39331);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r39329, t, MPFR_RNDN);
        mpfr_mul(r39330, r39328, r39329, MPFR_RNDN);
        mpfr_mul(r39331, r39330, r39329, MPFR_RNDN);
        return mpfr_get_d(r39331, MPFR_RNDN);
}

