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

char *name = "FastMath test5";

double f_if(float d1) {
        float r11721 = d1;
        float r11722 = r11721 * r11721;
        float r11723 = r11721 * r11722;
        float r11724 = r11723 * r11721;
        float r11725 = r11724 * r11721;
        float r11726 = r11725 * r11722;
        float r11727 = r11726 * r11721;
        float r11728 = r11721 * r11727;
        float r11729 = r11728 * r11721;
        return r11729;
}

double f_id(double d1) {
        double r11730 = d1;
        double r11731 = r11730 * r11730;
        double r11732 = r11730 * r11731;
        double r11733 = r11732 * r11730;
        double r11734 = r11733 * r11730;
        double r11735 = r11734 * r11731;
        double r11736 = r11735 * r11730;
        double r11737 = r11730 * r11736;
        double r11738 = r11737 * r11730;
        return r11738;
}


double f_of(float d1) {
        float r11739 = d1;
        float r11740 = 7;
        float r11741 = 3;
        float r11742 = r11740 + r11741;
        float r11743 = pow(r11739, r11742);
        return r11743;
}

double f_od(double d1) {
        double r11744 = d1;
        double r11745 = 7;
        double r11746 = 3;
        double r11747 = r11745 + r11746;
        double r11748 = pow(r11744, r11747);
        return r11748;
}

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 r11749, r11750, r11751, r11752, r11753, r11754, r11755, r11756, r11757;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r11749);
        mpfr_init(r11750);
        mpfr_init(r11751);
        mpfr_init(r11752);
        mpfr_init(r11753);
        mpfr_init(r11754);
        mpfr_init(r11755);
        mpfr_init(r11756);
        mpfr_init(r11757);
}

double f_im(double d1) {
        mpfr_set_d(r11749, d1, MPFR_RNDN);
        mpfr_mul(r11750, r11749, r11749, MPFR_RNDN);
        mpfr_mul(r11751, r11749, r11750, MPFR_RNDN);
        mpfr_mul(r11752, r11751, r11749, MPFR_RNDN);
        mpfr_mul(r11753, r11752, r11749, MPFR_RNDN);
        mpfr_mul(r11754, r11753, r11750, MPFR_RNDN);
        mpfr_mul(r11755, r11754, r11749, MPFR_RNDN);
        mpfr_mul(r11756, r11749, r11755, MPFR_RNDN);
        mpfr_mul(r11757, r11756, r11749, MPFR_RNDN);
        return mpfr_get_d(r11757, MPFR_RNDN);
}

static mpfr_t r11758, r11759, r11760, r11761, r11762;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r11758);
        mpfr_init_set_str(r11759, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r11760, "3", 10, MPFR_RNDN);
        mpfr_init(r11761);
        mpfr_init(r11762);
}

double f_fm(double d1) {
        mpfr_set_d(r11758, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r11761, r11759, r11760, MPFR_RNDN);
        mpfr_pow(r11762, r11758, r11761, MPFR_RNDN);
        return mpfr_get_d(r11762, MPFR_RNDN);
}

static mpfr_t r11763, r11764, r11765, r11766, r11767;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r11763);
        mpfr_init_set_str(r11764, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r11765, "3", 10, MPFR_RNDN);
        mpfr_init(r11766);
        mpfr_init(r11767);
}

double f_dm(double d1) {
        mpfr_set_d(r11763, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r11766, r11764, r11765, MPFR_RNDN);
        mpfr_pow(r11767, r11763, r11766, MPFR_RNDN);
        return mpfr_get_d(r11767, MPFR_RNDN);
}

