#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 r51045 = d1;
        float r51046 = r51045 * r51045;
        float r51047 = r51045 * r51046;
        float r51048 = r51047 * r51045;
        float r51049 = r51048 * r51045;
        float r51050 = r51049 * r51046;
        float r51051 = r51050 * r51045;
        float r51052 = r51045 * r51051;
        float r51053 = r51052 * r51045;
        return r51053;
}

double f_id(double d1) {
        double r51054 = d1;
        double r51055 = r51054 * r51054;
        double r51056 = r51054 * r51055;
        double r51057 = r51056 * r51054;
        double r51058 = r51057 * r51054;
        double r51059 = r51058 * r51055;
        double r51060 = r51059 * r51054;
        double r51061 = r51054 * r51060;
        double r51062 = r51061 * r51054;
        return r51062;
}


double f_of(float d1) {
        float r51063 = d1;
        float r51064 = 10;
        float r51065 = pow(r51063, r51064);
        return r51065;
}

double f_od(double d1) {
        double r51066 = d1;
        double r51067 = 10;
        double r51068 = pow(r51066, r51067);
        return r51068;
}

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 r51069, r51070, r51071, r51072, r51073, r51074, r51075, r51076, r51077;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r51069);
        mpfr_init(r51070);
        mpfr_init(r51071);
        mpfr_init(r51072);
        mpfr_init(r51073);
        mpfr_init(r51074);
        mpfr_init(r51075);
        mpfr_init(r51076);
        mpfr_init(r51077);
}

double f_im(double d1) {
        mpfr_set_d(r51069, d1, MPFR_RNDN);
        mpfr_mul(r51070, r51069, r51069, MPFR_RNDN);
        mpfr_mul(r51071, r51069, r51070, MPFR_RNDN);
        mpfr_mul(r51072, r51071, r51069, MPFR_RNDN);
        mpfr_mul(r51073, r51072, r51069, MPFR_RNDN);
        mpfr_mul(r51074, r51073, r51070, MPFR_RNDN);
        mpfr_mul(r51075, r51074, r51069, MPFR_RNDN);
        mpfr_mul(r51076, r51069, r51075, MPFR_RNDN);
        mpfr_mul(r51077, r51076, r51069, MPFR_RNDN);
        return mpfr_get_d(r51077, MPFR_RNDN);
}

static mpfr_t r51078, r51079, r51080;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51078);
        mpfr_init_set_str(r51079, "10", 10, MPFR_RNDN);
        mpfr_init(r51080);
}

double f_fm(double d1) {
        mpfr_set_d(r51078, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51080, r51078, r51079, MPFR_RNDN);
        return mpfr_get_d(r51080, MPFR_RNDN);
}

static mpfr_t r51081, r51082, r51083;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51081);
        mpfr_init_set_str(r51082, "10", 10, MPFR_RNDN);
        mpfr_init(r51083);
}

double f_dm(double d1) {
        mpfr_set_d(r51081, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51083, r51081, r51082, MPFR_RNDN);
        return mpfr_get_d(r51083, MPFR_RNDN);
}

