#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 r8612 = 0.954929658551372;
        float r8613 = x;
        float r8614 = r8612 * r8613;
        float r8615 = 0.12900613773279798;
        float r8616 = r8613 * r8613;
        float r8617 = r8616 * r8613;
        float r8618 = r8615 * r8617;
        float r8619 = r8614 - r8618;
        return r8619;
}

double f_id(double x) {
        double r8620 = 0.954929658551372;
        double r8621 = x;
        double r8622 = r8620 * r8621;
        double r8623 = 0.12900613773279798;
        double r8624 = r8621 * r8621;
        double r8625 = r8624 * r8621;
        double r8626 = r8623 * r8625;
        double r8627 = r8622 - r8626;
        return r8627;
}


double f_of(float x) {
        float r8628 = 0.954929658551372;
        float r8629 = x;
        float r8630 = r8628 * r8629;
        float r8631 = 0.12900613773279798;
        float r8632 = r8629 * r8629;
        float r8633 = r8631 * r8632;
        float r8634 = r8633 * r8629;
        float r8635 = r8630 - r8634;
        return r8635;
}

double f_od(double x) {
        double r8636 = 0.954929658551372;
        double r8637 = x;
        double r8638 = r8636 * r8637;
        double r8639 = 0.12900613773279798;
        double r8640 = r8637 * r8637;
        double r8641 = r8639 * r8640;
        double r8642 = r8641 * r8637;
        double r8643 = r8638 - r8642;
        return r8643;
}

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 r8644, r8645, r8646, r8647, r8648, r8649, r8650, r8651;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8644, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r8645);
        mpfr_init(r8646);
        mpfr_init_set_str(r8647, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init(r8648);
        mpfr_init(r8649);
        mpfr_init(r8650);
        mpfr_init(r8651);
}

double f_im(double x) {
        ;
        mpfr_set_d(r8645, x, MPFR_RNDN);
        mpfr_mul(r8646, r8644, r8645, MPFR_RNDN);
        ;
        mpfr_mul(r8648, r8645, r8645, MPFR_RNDN);
        mpfr_mul(r8649, r8648, r8645, MPFR_RNDN);
        mpfr_mul(r8650, r8647, r8649, MPFR_RNDN);
        mpfr_sub(r8651, r8646, r8650, MPFR_RNDN);
        return mpfr_get_d(r8651, MPFR_RNDN);
}

static mpfr_t r8652, r8653, r8654, r8655, r8656, r8657, r8658, r8659;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8652, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r8653);
        mpfr_init(r8654);
        mpfr_init_set_str(r8655, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init(r8656);
        mpfr_init(r8657);
        mpfr_init(r8658);
        mpfr_init(r8659);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r8653, x, MPFR_RNDN);
        mpfr_mul(r8654, r8652, r8653, MPFR_RNDN);
        ;
        mpfr_mul(r8656, r8653, r8653, MPFR_RNDN);
        mpfr_mul(r8657, r8655, r8656, MPFR_RNDN);
        mpfr_mul(r8658, r8657, r8653, MPFR_RNDN);
        mpfr_sub(r8659, r8654, r8658, MPFR_RNDN);
        return mpfr_get_d(r8659, MPFR_RNDN);
}

static mpfr_t r8660, r8661, r8662, r8663, r8664, r8665, r8666, r8667;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8660, "0.954929658551372", 10, MPFR_RNDN);
        mpfr_init(r8661);
        mpfr_init(r8662);
        mpfr_init_set_str(r8663, "0.12900613773279798", 10, MPFR_RNDN);
        mpfr_init(r8664);
        mpfr_init(r8665);
        mpfr_init(r8666);
        mpfr_init(r8667);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r8661, x, MPFR_RNDN);
        mpfr_mul(r8662, r8660, r8661, MPFR_RNDN);
        ;
        mpfr_mul(r8664, r8661, r8661, MPFR_RNDN);
        mpfr_mul(r8665, r8663, r8664, MPFR_RNDN);
        mpfr_mul(r8666, r8665, r8661, MPFR_RNDN);
        mpfr_sub(r8667, r8662, r8666, MPFR_RNDN);
        return mpfr_get_d(r8667, MPFR_RNDN);
}

