#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 r51277 = d1;
        float r51278 = r51277 * r51277;
        float r51279 = r51277 * r51278;
        float r51280 = r51279 * r51277;
        float r51281 = r51280 * r51277;
        float r51282 = r51281 * r51278;
        float r51283 = r51282 * r51277;
        float r51284 = r51277 * r51283;
        float r51285 = r51284 * r51277;
        return r51285;
}

double f_id(double d1) {
        double r51286 = d1;
        double r51287 = r51286 * r51286;
        double r51288 = r51286 * r51287;
        double r51289 = r51288 * r51286;
        double r51290 = r51289 * r51286;
        double r51291 = r51290 * r51287;
        double r51292 = r51291 * r51286;
        double r51293 = r51286 * r51292;
        double r51294 = r51293 * r51286;
        return r51294;
}


double f_of(float d1) {
        float r51295 = d1;
        float r51296 = 10;
        float r51297 = pow(r51295, r51296);
        return r51297;
}

double f_od(double d1) {
        double r51298 = d1;
        double r51299 = 10;
        double r51300 = pow(r51298, r51299);
        return r51300;
}

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 r51301, r51302, r51303, r51304, r51305, r51306, r51307, r51308, r51309;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r51301);
        mpfr_init(r51302);
        mpfr_init(r51303);
        mpfr_init(r51304);
        mpfr_init(r51305);
        mpfr_init(r51306);
        mpfr_init(r51307);
        mpfr_init(r51308);
        mpfr_init(r51309);
}

double f_im(double d1) {
        mpfr_set_d(r51301, d1, MPFR_RNDN);
        mpfr_mul(r51302, r51301, r51301, MPFR_RNDN);
        mpfr_mul(r51303, r51301, r51302, MPFR_RNDN);
        mpfr_mul(r51304, r51303, r51301, MPFR_RNDN);
        mpfr_mul(r51305, r51304, r51301, MPFR_RNDN);
        mpfr_mul(r51306, r51305, r51302, MPFR_RNDN);
        mpfr_mul(r51307, r51306, r51301, MPFR_RNDN);
        mpfr_mul(r51308, r51301, r51307, MPFR_RNDN);
        mpfr_mul(r51309, r51308, r51301, MPFR_RNDN);
        return mpfr_get_d(r51309, MPFR_RNDN);
}

static mpfr_t r51310, r51311, r51312;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51310);
        mpfr_init_set_str(r51311, "10", 10, MPFR_RNDN);
        mpfr_init(r51312);
}

double f_fm(double d1) {
        mpfr_set_d(r51310, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51312, r51310, r51311, MPFR_RNDN);
        return mpfr_get_d(r51312, MPFR_RNDN);
}

static mpfr_t r51313, r51314, r51315;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51313);
        mpfr_init_set_str(r51314, "10", 10, MPFR_RNDN);
        mpfr_init(r51315);
}

double f_dm(double d1) {
        mpfr_set_d(r51313, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51315, r51313, r51314, MPFR_RNDN);
        return mpfr_get_d(r51315, MPFR_RNDN);
}

