#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 r51409 = d1;
        float r51410 = r51409 * r51409;
        float r51411 = r51409 * r51410;
        float r51412 = r51411 * r51409;
        float r51413 = r51412 * r51409;
        float r51414 = r51413 * r51410;
        float r51415 = r51414 * r51409;
        float r51416 = r51409 * r51415;
        float r51417 = r51416 * r51409;
        return r51417;
}

double f_id(double d1) {
        double r51418 = d1;
        double r51419 = r51418 * r51418;
        double r51420 = r51418 * r51419;
        double r51421 = r51420 * r51418;
        double r51422 = r51421 * r51418;
        double r51423 = r51422 * r51419;
        double r51424 = r51423 * r51418;
        double r51425 = r51418 * r51424;
        double r51426 = r51425 * r51418;
        return r51426;
}


double f_of(float d1) {
        float r51427 = d1;
        float r51428 = 10;
        float r51429 = pow(r51427, r51428);
        return r51429;
}

double f_od(double d1) {
        double r51430 = d1;
        double r51431 = 10;
        double r51432 = pow(r51430, r51431);
        return r51432;
}

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 r51433, r51434, r51435, r51436, r51437, r51438, r51439, r51440, r51441;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r51433);
        mpfr_init(r51434);
        mpfr_init(r51435);
        mpfr_init(r51436);
        mpfr_init(r51437);
        mpfr_init(r51438);
        mpfr_init(r51439);
        mpfr_init(r51440);
        mpfr_init(r51441);
}

double f_im(double d1) {
        mpfr_set_d(r51433, d1, MPFR_RNDN);
        mpfr_mul(r51434, r51433, r51433, MPFR_RNDN);
        mpfr_mul(r51435, r51433, r51434, MPFR_RNDN);
        mpfr_mul(r51436, r51435, r51433, MPFR_RNDN);
        mpfr_mul(r51437, r51436, r51433, MPFR_RNDN);
        mpfr_mul(r51438, r51437, r51434, MPFR_RNDN);
        mpfr_mul(r51439, r51438, r51433, MPFR_RNDN);
        mpfr_mul(r51440, r51433, r51439, MPFR_RNDN);
        mpfr_mul(r51441, r51440, r51433, MPFR_RNDN);
        return mpfr_get_d(r51441, MPFR_RNDN);
}

static mpfr_t r51442, r51443, r51444;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51442);
        mpfr_init_set_str(r51443, "10", 10, MPFR_RNDN);
        mpfr_init(r51444);
}

double f_fm(double d1) {
        mpfr_set_d(r51442, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51444, r51442, r51443, MPFR_RNDN);
        return mpfr_get_d(r51444, MPFR_RNDN);
}

static mpfr_t r51445, r51446, r51447;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51445);
        mpfr_init_set_str(r51446, "10", 10, MPFR_RNDN);
        mpfr_init(r51447);
}

double f_dm(double d1) {
        mpfr_set_d(r51445, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51447, r51445, r51446, MPFR_RNDN);
        return mpfr_get_d(r51447, MPFR_RNDN);
}

