#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 r12144 = d1;
        float r12145 = r12144 * r12144;
        float r12146 = r12144 * r12145;
        float r12147 = r12146 * r12144;
        float r12148 = r12147 * r12144;
        float r12149 = r12148 * r12145;
        float r12150 = r12149 * r12144;
        float r12151 = r12144 * r12150;
        float r12152 = r12151 * r12144;
        return r12152;
}

double f_id(double d1) {
        double r12153 = d1;
        double r12154 = r12153 * r12153;
        double r12155 = r12153 * r12154;
        double r12156 = r12155 * r12153;
        double r12157 = r12156 * r12153;
        double r12158 = r12157 * r12154;
        double r12159 = r12158 * r12153;
        double r12160 = r12153 * r12159;
        double r12161 = r12160 * r12153;
        return r12161;
}


double f_of(float d1) {
        float r12162 = d1;
        float r12163 = 7;
        float r12164 = 3;
        float r12165 = r12163 + r12164;
        float r12166 = pow(r12162, r12165);
        return r12166;
}

double f_od(double d1) {
        double r12167 = d1;
        double r12168 = 7;
        double r12169 = 3;
        double r12170 = r12168 + r12169;
        double r12171 = pow(r12167, r12170);
        return r12171;
}

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 r12172, r12173, r12174, r12175, r12176, r12177, r12178, r12179, r12180;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r12172);
        mpfr_init(r12173);
        mpfr_init(r12174);
        mpfr_init(r12175);
        mpfr_init(r12176);
        mpfr_init(r12177);
        mpfr_init(r12178);
        mpfr_init(r12179);
        mpfr_init(r12180);
}

double f_im(double d1) {
        mpfr_set_d(r12172, d1, MPFR_RNDN);
        mpfr_mul(r12173, r12172, r12172, MPFR_RNDN);
        mpfr_mul(r12174, r12172, r12173, MPFR_RNDN);
        mpfr_mul(r12175, r12174, r12172, MPFR_RNDN);
        mpfr_mul(r12176, r12175, r12172, MPFR_RNDN);
        mpfr_mul(r12177, r12176, r12173, MPFR_RNDN);
        mpfr_mul(r12178, r12177, r12172, MPFR_RNDN);
        mpfr_mul(r12179, r12172, r12178, MPFR_RNDN);
        mpfr_mul(r12180, r12179, r12172, MPFR_RNDN);
        return mpfr_get_d(r12180, MPFR_RNDN);
}

static mpfr_t r12181, r12182, r12183, r12184, r12185;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r12181);
        mpfr_init_set_str(r12182, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12183, "3", 10, MPFR_RNDN);
        mpfr_init(r12184);
        mpfr_init(r12185);
}

double f_fm(double d1) {
        mpfr_set_d(r12181, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12184, r12182, r12183, MPFR_RNDN);
        mpfr_pow(r12185, r12181, r12184, MPFR_RNDN);
        return mpfr_get_d(r12185, MPFR_RNDN);
}

static mpfr_t r12186, r12187, r12188, r12189, r12190;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r12186);
        mpfr_init_set_str(r12187, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12188, "3", 10, MPFR_RNDN);
        mpfr_init(r12189);
        mpfr_init(r12190);
}

double f_dm(double d1) {
        mpfr_set_d(r12186, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12189, r12187, r12188, MPFR_RNDN);
        mpfr_pow(r12190, r12186, r12189, MPFR_RNDN);
        return mpfr_get_d(r12190, MPFR_RNDN);
}

