#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 r39031 = 1;
        float r39032 = t;
        float r39033 = 2e-16;
        float r39034 = r39032 * r39033;
        float r39035 = r39031 + r39034;
        float r39036 = r39035 * r39035;
        float r39037 = -1;
        float r39038 = 2;
        float r39039 = r39038 * r39034;
        float r39040 = r39037 - r39039;
        float r39041 = r39036 + r39040;
        return r39041;
}

double f_id(double t) {
        double r39042 = 1;
        double r39043 = t;
        double r39044 = 2e-16;
        double r39045 = r39043 * r39044;
        double r39046 = r39042 + r39045;
        double r39047 = r39046 * r39046;
        double r39048 = -1;
        double r39049 = 2;
        double r39050 = r39049 * r39045;
        double r39051 = r39048 - r39050;
        double r39052 = r39047 + r39051;
        return r39052;
}


double f_of(float t) {
        float r39053 = 3.9999999999999997e-32;
        float r39054 = t;
        float r39055 = r39053 * r39054;
        float r39056 = r39055 * r39054;
        return r39056;
}

double f_od(double t) {
        double r39057 = 3.9999999999999997e-32;
        double r39058 = t;
        double r39059 = r39057 * r39058;
        double r39060 = r39059 * r39058;
        return r39060;
}

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 r39061, r39062, r39063, r39064, r39065, r39066, r39067, r39068, r39069, r39070, r39071;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r39061, "1", 10, MPFR_RNDN);
        mpfr_init(r39062);
        mpfr_init_set_str(r39063, "2e-16", 10, MPFR_RNDN);
        mpfr_init(r39064);
        mpfr_init(r39065);
        mpfr_init(r39066);
        mpfr_init_set_str(r39067, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r39068, "2", 10, MPFR_RNDN);
        mpfr_init(r39069);
        mpfr_init(r39070);
        mpfr_init(r39071);
}

double f_im(double t) {
        ;
        mpfr_set_d(r39062, t, MPFR_RNDN);
        ;
        mpfr_mul(r39064, r39062, r39063, MPFR_RNDN);
        mpfr_add(r39065, r39061, r39064, MPFR_RNDN);
        mpfr_mul(r39066, r39065, r39065, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r39069, r39068, r39064, MPFR_RNDN);
        mpfr_sub(r39070, r39067, r39069, MPFR_RNDN);
        mpfr_add(r39071, r39066, r39070, MPFR_RNDN);
        return mpfr_get_d(r39071, MPFR_RNDN);
}

static mpfr_t r39072, r39073, r39074, r39075;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r39072, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r39073);
        mpfr_init(r39074);
        mpfr_init(r39075);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r39073, t, MPFR_RNDN);
        mpfr_mul(r39074, r39072, r39073, MPFR_RNDN);
        mpfr_mul(r39075, r39074, r39073, MPFR_RNDN);
        return mpfr_get_d(r39075, MPFR_RNDN);
}

static mpfr_t r39076, r39077, r39078, r39079;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r39076, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r39077);
        mpfr_init(r39078);
        mpfr_init(r39079);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r39077, t, MPFR_RNDN);
        mpfr_mul(r39078, r39076, r39077, MPFR_RNDN);
        mpfr_mul(r39079, r39078, r39077, MPFR_RNDN);
        return mpfr_get_d(r39079, MPFR_RNDN);
}

