#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 r12475 = d1;
        float r12476 = r12475 * r12475;
        float r12477 = r12475 * r12476;
        float r12478 = r12477 * r12475;
        float r12479 = r12478 * r12475;
        float r12480 = r12479 * r12476;
        float r12481 = r12480 * r12475;
        float r12482 = r12475 * r12481;
        float r12483 = r12482 * r12475;
        return r12483;
}

double f_id(double d1) {
        double r12484 = d1;
        double r12485 = r12484 * r12484;
        double r12486 = r12484 * r12485;
        double r12487 = r12486 * r12484;
        double r12488 = r12487 * r12484;
        double r12489 = r12488 * r12485;
        double r12490 = r12489 * r12484;
        double r12491 = r12484 * r12490;
        double r12492 = r12491 * r12484;
        return r12492;
}


double f_of(float d1) {
        float r12493 = d1;
        float r12494 = 10.0f;
        float r12495 = pow(r12493, r12494);
        return r12495;
}

double f_od(double d1) {
        double r12496 = d1;
        double r12497 = 10.0;
        double r12498 = pow(r12496, r12497);
        return r12498;
}

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 r12499, r12500, r12501, r12502, r12503, r12504, r12505, r12506, r12507;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r12499);
        mpfr_init(r12500);
        mpfr_init(r12501);
        mpfr_init(r12502);
        mpfr_init(r12503);
        mpfr_init(r12504);
        mpfr_init(r12505);
        mpfr_init(r12506);
        mpfr_init(r12507);
}

double f_im(double d1) {
        mpfr_set_d(r12499, d1, MPFR_RNDN);
        mpfr_mul(r12500, r12499, r12499, MPFR_RNDN);
        mpfr_mul(r12501, r12499, r12500, MPFR_RNDN);
        mpfr_mul(r12502, r12501, r12499, MPFR_RNDN);
        mpfr_mul(r12503, r12502, r12499, MPFR_RNDN);
        mpfr_mul(r12504, r12503, r12500, MPFR_RNDN);
        mpfr_mul(r12505, r12504, r12499, MPFR_RNDN);
        mpfr_mul(r12506, r12499, r12505, MPFR_RNDN);
        mpfr_mul(r12507, r12506, r12499, MPFR_RNDN);
        return mpfr_get_d(r12507, MPFR_RNDN);
}

static mpfr_t r12508, r12509, r12510;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r12508);
        mpfr_init_set_str(r12509, "10", 10, MPFR_RNDN);
        mpfr_init(r12510);
}

double f_fm(double d1) {
        mpfr_set_d(r12508, d1, MPFR_RNDN);
        ;
        mpfr_pow(r12510, r12508, r12509, MPFR_RNDN);
        return mpfr_get_d(r12510, MPFR_RNDN);
}

static mpfr_t r12511, r12512, r12513;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r12511);
        mpfr_init_set_str(r12512, "10", 10, MPFR_RNDN);
        mpfr_init(r12513);
}

double f_dm(double d1) {
        mpfr_set_d(r12511, d1, MPFR_RNDN);
        ;
        mpfr_pow(r12513, r12511, r12512, MPFR_RNDN);
        return mpfr_get_d(r12513, MPFR_RNDN);
}

