#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 r20891 = 1;
        float r20892 = t;
        float r20893 = 2e-16;
        float r20894 = r20892 * r20893;
        float r20895 = r20891 + r20894;
        float r20896 = r20895 * r20895;
        float r20897 = -1;
        float r20898 = 2;
        float r20899 = r20898 * r20894;
        float r20900 = r20897 - r20899;
        float r20901 = r20896 + r20900;
        return r20901;
}

double f_id(double t) {
        double r20902 = 1;
        double r20903 = t;
        double r20904 = 2e-16;
        double r20905 = r20903 * r20904;
        double r20906 = r20902 + r20905;
        double r20907 = r20906 * r20906;
        double r20908 = -1;
        double r20909 = 2;
        double r20910 = r20909 * r20905;
        double r20911 = r20908 - r20910;
        double r20912 = r20907 + r20911;
        return r20912;
}


double f_of(float t) {
        float r20913 = 3.9999999999999997e-32;
        float r20914 = t;
        float r20915 = r20913 * r20914;
        float r20916 = r20915 * r20914;
        return r20916;
}

double f_od(double t) {
        double r20917 = 3.9999999999999997e-32;
        double r20918 = t;
        double r20919 = r20917 * r20918;
        double r20920 = r20919 * r20918;
        return r20920;
}

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 r20921, r20922, r20923, r20924, r20925, r20926, r20927, r20928, r20929, r20930, r20931;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r20921, "1", 10, MPFR_RNDN);
        mpfr_init(r20922);
        mpfr_init_set_str(r20923, "2e-16", 10, MPFR_RNDN);
        mpfr_init(r20924);
        mpfr_init(r20925);
        mpfr_init(r20926);
        mpfr_init_set_str(r20927, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r20928, "2", 10, MPFR_RNDN);
        mpfr_init(r20929);
        mpfr_init(r20930);
        mpfr_init(r20931);
}

double f_im(double t) {
        ;
        mpfr_set_d(r20922, t, MPFR_RNDN);
        ;
        mpfr_mul(r20924, r20922, r20923, MPFR_RNDN);
        mpfr_add(r20925, r20921, r20924, MPFR_RNDN);
        mpfr_mul(r20926, r20925, r20925, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r20929, r20928, r20924, MPFR_RNDN);
        mpfr_sub(r20930, r20927, r20929, MPFR_RNDN);
        mpfr_add(r20931, r20926, r20930, MPFR_RNDN);
        return mpfr_get_d(r20931, MPFR_RNDN);
}

static mpfr_t r20932, r20933, r20934, r20935;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r20932, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r20933);
        mpfr_init(r20934);
        mpfr_init(r20935);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r20933, t, MPFR_RNDN);
        mpfr_mul(r20934, r20932, r20933, MPFR_RNDN);
        mpfr_mul(r20935, r20934, r20933, MPFR_RNDN);
        return mpfr_get_d(r20935, MPFR_RNDN);
}

static mpfr_t r20936, r20937, r20938, r20939;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r20936, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r20937);
        mpfr_init(r20938);
        mpfr_init(r20939);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r20937, t, MPFR_RNDN);
        mpfr_mul(r20938, r20936, r20937, MPFR_RNDN);
        mpfr_mul(r20939, r20938, r20937, MPFR_RNDN);
        return mpfr_get_d(r20939, MPFR_RNDN);
}

