#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Rosa's Benchmark";

double f_if(float x) {
        float r20744 = 0.954929658551372;
        float r20745 = x;
        float r20746 = r20744 * r20745;
        float r20747 = 0.12900613773279798;
        float r20748 = r20745 * r20745;
        float r20749 = r20748 * r20745;
        float r20750 = r20747 * r20749;
        float r20751 = r20746 - r20750;
        return r20751;
}

double f_id(double x) {
        double r20752 = 0.954929658551372;
        double r20753 = x;
        double r20754 = r20752 * r20753;
        double r20755 = 0.12900613773279798;
        double r20756 = r20753 * r20753;
        double r20757 = r20756 * r20753;
        double r20758 = r20755 * r20757;
        double r20759 = r20754 - r20758;
        return r20759;
}


double f_of(float x) {
        float r20760 = 0.954929658551372;
        float r20761 = x;
        float r20762 = r20760 * r20761;
        float r20763 = 0.12900613773279798;
        float r20764 = r20763 * r20761;
        float r20765 = r20764 * r20761;
        float r20766 = r20765 * r20761;
        float r20767 = r20762 - r20766;
        return r20767;
}

double f_od(double x) {
        double r20768 = 0.954929658551372;
        double r20769 = x;
        double r20770 = r20768 * r20769;
        double r20771 = 0.12900613773279798;
        double r20772 = r20771 * r20769;
        double r20773 = r20772 * r20769;
        double r20774 = r20773 * r20769;
        double r20775 = r20770 - r20774;
        return r20775;
}

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 r20776, r20777, r20778, r20779, r20780, r20781, r20782, r20783;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20776, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r20777);
        mpfr_init(r20778);
        mpfr_init_set_str(r20779, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init(r20780);
        mpfr_init(r20781);
        mpfr_init(r20782);
        mpfr_init(r20783);
}

double f_im(double x) {
        ;
        mpfr_set_d(r20777, x, MPFR_RNDN);
        mpfr_mul(r20778, r20776, r20777, MPFR_RNDN);
        ;
        mpfr_mul(r20780, r20777, r20777, MPFR_RNDN);
        mpfr_mul(r20781, r20780, r20777, MPFR_RNDN);
        mpfr_mul(r20782, r20779, r20781, MPFR_RNDN);
        mpfr_sub(r20783, r20778, r20782, MPFR_RNDN);
        return mpfr_get_d(r20783, MPFR_RNDN);
}

static mpfr_t r20784, r20785, r20786, r20787, r20788, r20789, r20790, r20791;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20784, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r20785);
        mpfr_init(r20786);
        mpfr_init_set_str(r20787, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init(r20788);
        mpfr_init(r20789);
        mpfr_init(r20790);
        mpfr_init(r20791);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r20785, x, MPFR_RNDN);
        mpfr_mul(r20786, r20784, r20785, MPFR_RNDN);
        ;
        mpfr_mul(r20788, r20787, r20785, MPFR_RNDN);
        mpfr_mul(r20789, r20788, r20785, MPFR_RNDN);
        mpfr_mul(r20790, r20789, r20785, MPFR_RNDN);
        mpfr_sub(r20791, r20786, r20790, MPFR_RNDN);
        return mpfr_get_d(r20791, MPFR_RNDN);
}

static mpfr_t r20792, r20793, r20794, r20795, r20796, r20797, r20798, r20799;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r20792, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r20793);
        mpfr_init(r20794);
        mpfr_init_set_str(r20795, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init(r20796);
        mpfr_init(r20797);
        mpfr_init(r20798);
        mpfr_init(r20799);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r20793, x, MPFR_RNDN);
        mpfr_mul(r20794, r20792, r20793, MPFR_RNDN);
        ;
        mpfr_mul(r20796, r20795, r20793, MPFR_RNDN);
        mpfr_mul(r20797, r20796, r20793, MPFR_RNDN);
        mpfr_mul(r20798, r20797, r20793, MPFR_RNDN);
        mpfr_sub(r20799, r20794, r20798, MPFR_RNDN);
        return mpfr_get_d(r20799, MPFR_RNDN);
}

