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

char *name = "Development.Shake.Profile:generateTrace from shake-0.15.5";

double f_if(float x) {
        float r55601 = 1000000.0;
        float r55602 = x;
        float r55603 = r55602 - r55602;
        float r55604 = r55601 * r55603;
        return r55604;
}

double f_id(double x) {
        double r55605 = 1000000.0;
        double r55606 = x;
        double r55607 = r55606 - r55606;
        double r55608 = r55605 * r55607;
        return r55608;
}


double f_of(float x) {
        float r55609 = 1000000.0;
        float r55610 = x;
        float r55611 = r55610 - r55610;
        float r55612 = r55609 * r55611;
        return r55612;
}

double f_od(double x) {
        double r55613 = 1000000.0;
        double r55614 = x;
        double r55615 = r55614 - r55614;
        double r55616 = r55613 * r55615;
        return r55616;
}

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 r55617, r55618, r55619, r55620;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r55617, "1000000.0", 10, MPFR_RNDN);
        mpfr_init(r55618);
        mpfr_init(r55619);
        mpfr_init(r55620);
}

double f_im(double x) {
        ;
        mpfr_set_d(r55618, x, MPFR_RNDN);
        mpfr_sub(r55619, r55618, r55618, MPFR_RNDN);
        mpfr_mul(r55620, r55617, r55619, MPFR_RNDN);
        return mpfr_get_d(r55620, MPFR_RNDN);
}

static mpfr_t r55621, r55622, r55623, r55624;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r55621, "1000000.0", 10, MPFR_RNDN);
        mpfr_init(r55622);
        mpfr_init(r55623);
        mpfr_init(r55624);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r55622, x, MPFR_RNDN);
        mpfr_sub(r55623, r55622, r55622, MPFR_RNDN);
        mpfr_mul(r55624, r55621, r55623, MPFR_RNDN);
        return mpfr_get_d(r55624, MPFR_RNDN);
}

static mpfr_t r55625, r55626, r55627, r55628;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r55625, "1000000.0", 10, MPFR_RNDN);
        mpfr_init(r55626);
        mpfr_init(r55627);
        mpfr_init(r55628);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r55626, x, MPFR_RNDN);
        mpfr_sub(r55627, r55626, r55626, MPFR_RNDN);
        mpfr_mul(r55628, r55625, r55627, MPFR_RNDN);
        return mpfr_get_d(r55628, MPFR_RNDN);
}

