#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 r7762 = 0.954929658551372f;
        float r7763 = x;
        float r7764 = r7762 * r7763;
        float r7765 = 0.12900613773279798f;
        float r7766 = r7763 * r7763;
        float r7767 = r7766 * r7763;
        float r7768 = r7765 * r7767;
        float r7769 = r7764 - r7768;
        return r7769;
}

double f_id(double x) {
        double r7770 = 0.954929658551372;
        double r7771 = x;
        double r7772 = r7770 * r7771;
        double r7773 = 0.12900613773279798;
        double r7774 = r7771 * r7771;
        double r7775 = r7774 * r7771;
        double r7776 = r7773 * r7775;
        double r7777 = r7772 - r7776;
        return r7777;
}


double f_of(float x) {
        float r7778 = 0.954929658551372f;
        float r7779 = x;
        float r7780 = r7778 * r7779;
        float r7781 = 0.12900613773279798f;
        float r7782 = 3.0f;
        float r7783 = pow(r7779, r7782);
        float r7784 = r7781 * r7783;
        float r7785 = r7780 - r7784;
        return r7785;
}

double f_od(double x) {
        double r7786 = 0.954929658551372;
        double r7787 = x;
        double r7788 = r7786 * r7787;
        double r7789 = 0.12900613773279798;
        double r7790 = 3.0;
        double r7791 = pow(r7787, r7790);
        double r7792 = r7789 * r7791;
        double r7793 = r7788 - r7792;
        return r7793;
}

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 r7794, r7795, r7796, r7797, r7798, r7799, r7800, r7801;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7794, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r7795);
        mpfr_init(r7796);
        mpfr_init_set_str(r7797, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init(r7798);
        mpfr_init(r7799);
        mpfr_init(r7800);
        mpfr_init(r7801);
}

double f_im(double x) {
        ;
        mpfr_set_d(r7795, x, MPFR_RNDN);
        mpfr_mul(r7796, r7794, r7795, MPFR_RNDN);
        ;
        mpfr_mul(r7798, r7795, r7795, MPFR_RNDN);
        mpfr_mul(r7799, r7798, r7795, MPFR_RNDN);
        mpfr_mul(r7800, r7797, r7799, MPFR_RNDN);
        mpfr_sub(r7801, r7796, r7800, MPFR_RNDN);
        return mpfr_get_d(r7801, MPFR_RNDN);
}

static mpfr_t r7802, r7803, r7804, r7805, r7806, r7807, r7808, r7809;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7802, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r7803);
        mpfr_init(r7804);
        mpfr_init_set_str(r7805, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init_set_str(r7806, "3", 10, MPFR_RNDN);
        mpfr_init(r7807);
        mpfr_init(r7808);
        mpfr_init(r7809);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r7803, x, MPFR_RNDN);
        mpfr_mul(r7804, r7802, r7803, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r7807, r7803, r7806, MPFR_RNDN);
        mpfr_mul(r7808, r7805, r7807, MPFR_RNDN);
        mpfr_sub(r7809, r7804, r7808, MPFR_RNDN);
        return mpfr_get_d(r7809, MPFR_RNDN);
}

static mpfr_t r7810, r7811, r7812, r7813, r7814, r7815, r7816, r7817;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r7810, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r7811);
        mpfr_init(r7812);
        mpfr_init_set_str(r7813, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init_set_str(r7814, "3", 10, MPFR_RNDN);
        mpfr_init(r7815);
        mpfr_init(r7816);
        mpfr_init(r7817);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r7811, x, MPFR_RNDN);
        mpfr_mul(r7812, r7810, r7811, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r7815, r7811, r7814, MPFR_RNDN);
        mpfr_mul(r7816, r7813, r7815, MPFR_RNDN);
        mpfr_sub(r7817, r7812, r7816, MPFR_RNDN);
        return mpfr_get_d(r7817, MPFR_RNDN);
}

