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

char *name = "FastMath repmul";

double f_if(float d1) {
        float r26711 = d1;
        float r26712 = r26711 * r26711;
        float r26713 = r26712 * r26711;
        float r26714 = r26713 * r26711;
        return r26714;
}

double f_id(double d1) {
        double r26715 = d1;
        double r26716 = r26715 * r26715;
        double r26717 = r26716 * r26715;
        double r26718 = r26717 * r26715;
        return r26718;
}


double f_of(float d1) {
        float r26719 = d1;
        float r26720 = 3;
        float r26721 = 1;
        float r26722 = r26720 + r26721;
        float r26723 = pow(r26719, r26722);
        return r26723;
}

double f_od(double d1) {
        double r26724 = d1;
        double r26725 = 3;
        double r26726 = 1;
        double r26727 = r26725 + r26726;
        double r26728 = pow(r26724, r26727);
        return r26728;
}

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 r26729, r26730, r26731, r26732;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26729);
        mpfr_init(r26730);
        mpfr_init(r26731);
        mpfr_init(r26732);
}

double f_im(double d1) {
        mpfr_set_d(r26729, d1, MPFR_RNDN);
        mpfr_mul(r26730, r26729, r26729, MPFR_RNDN);
        mpfr_mul(r26731, r26730, r26729, MPFR_RNDN);
        mpfr_mul(r26732, r26731, r26729, MPFR_RNDN);
        return mpfr_get_d(r26732, MPFR_RNDN);
}

static mpfr_t r26733, r26734, r26735, r26736, r26737;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26733);
        mpfr_init_set_str(r26734, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r26735, "1", 10, MPFR_RNDN);
        mpfr_init(r26736);
        mpfr_init(r26737);
}

double f_fm(double d1) {
        mpfr_set_d(r26733, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26736, r26734, r26735, MPFR_RNDN);
        mpfr_pow(r26737, r26733, r26736, MPFR_RNDN);
        return mpfr_get_d(r26737, MPFR_RNDN);
}

static mpfr_t r26738, r26739, r26740, r26741, r26742;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26738);
        mpfr_init_set_str(r26739, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r26740, "1", 10, MPFR_RNDN);
        mpfr_init(r26741);
        mpfr_init(r26742);
}

double f_dm(double d1) {
        mpfr_set_d(r26738, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26741, r26739, r26740, MPFR_RNDN);
        mpfr_pow(r26742, r26738, r26741, MPFR_RNDN);
        return mpfr_get_d(r26742, MPFR_RNDN);
}

