#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 r38943 = 1;
        float r38944 = t;
        float r38945 = 2e-16;
        float r38946 = r38944 * r38945;
        float r38947 = r38943 + r38946;
        float r38948 = r38947 * r38947;
        float r38949 = -1;
        float r38950 = 2;
        float r38951 = r38950 * r38946;
        float r38952 = r38949 - r38951;
        float r38953 = r38948 + r38952;
        return r38953;
}

double f_id(double t) {
        double r38954 = 1;
        double r38955 = t;
        double r38956 = 2e-16;
        double r38957 = r38955 * r38956;
        double r38958 = r38954 + r38957;
        double r38959 = r38958 * r38958;
        double r38960 = -1;
        double r38961 = 2;
        double r38962 = r38961 * r38957;
        double r38963 = r38960 - r38962;
        double r38964 = r38959 + r38963;
        return r38964;
}


double f_of(float t) {
        float r38965 = 3.9999999999999997e-32;
        float r38966 = t;
        float r38967 = r38965 * r38966;
        float r38968 = r38967 * r38966;
        return r38968;
}

double f_od(double t) {
        double r38969 = 3.9999999999999997e-32;
        double r38970 = t;
        double r38971 = r38969 * r38970;
        double r38972 = r38971 * r38970;
        return r38972;
}

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 r38973, r38974, r38975, r38976, r38977, r38978, r38979, r38980, r38981, r38982, r38983;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r38973, "1", 10, MPFR_RNDN);
        mpfr_init(r38974);
        mpfr_init_set_str(r38975, "2e-16", 10, MPFR_RNDN);
        mpfr_init(r38976);
        mpfr_init(r38977);
        mpfr_init(r38978);
        mpfr_init_set_str(r38979, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r38980, "2", 10, MPFR_RNDN);
        mpfr_init(r38981);
        mpfr_init(r38982);
        mpfr_init(r38983);
}

double f_im(double t) {
        ;
        mpfr_set_d(r38974, t, MPFR_RNDN);
        ;
        mpfr_mul(r38976, r38974, r38975, MPFR_RNDN);
        mpfr_add(r38977, r38973, r38976, MPFR_RNDN);
        mpfr_mul(r38978, r38977, r38977, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r38981, r38980, r38976, MPFR_RNDN);
        mpfr_sub(r38982, r38979, r38981, MPFR_RNDN);
        mpfr_add(r38983, r38978, r38982, MPFR_RNDN);
        return mpfr_get_d(r38983, MPFR_RNDN);
}

static mpfr_t r38984, r38985, r38986, r38987;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r38984, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r38985);
        mpfr_init(r38986);
        mpfr_init(r38987);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r38985, t, MPFR_RNDN);
        mpfr_mul(r38986, r38984, r38985, MPFR_RNDN);
        mpfr_mul(r38987, r38986, r38985, MPFR_RNDN);
        return mpfr_get_d(r38987, MPFR_RNDN);
}

static mpfr_t r38988, r38989, r38990, r38991;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r38988, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r38989);
        mpfr_init(r38990);
        mpfr_init(r38991);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r38989, t, MPFR_RNDN);
        mpfr_mul(r38990, r38988, r38989, MPFR_RNDN);
        mpfr_mul(r38991, r38990, r38989, MPFR_RNDN);
        return mpfr_get_d(r38991, MPFR_RNDN);
}

