#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 r51083 = d1;
        float r51084 = r51083 * r51083;
        float r51085 = r51083 * r51084;
        float r51086 = r51085 * r51083;
        float r51087 = r51086 * r51083;
        float r51088 = r51087 * r51084;
        float r51089 = r51088 * r51083;
        float r51090 = r51083 * r51089;
        float r51091 = r51090 * r51083;
        return r51091;
}

double f_id(double d1) {
        double r51092 = d1;
        double r51093 = r51092 * r51092;
        double r51094 = r51092 * r51093;
        double r51095 = r51094 * r51092;
        double r51096 = r51095 * r51092;
        double r51097 = r51096 * r51093;
        double r51098 = r51097 * r51092;
        double r51099 = r51092 * r51098;
        double r51100 = r51099 * r51092;
        return r51100;
}


double f_of(float d1) {
        float r51101 = d1;
        float r51102 = 10;
        float r51103 = pow(r51101, r51102);
        return r51103;
}

double f_od(double d1) {
        double r51104 = d1;
        double r51105 = 10;
        double r51106 = pow(r51104, r51105);
        return r51106;
}

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 r51107, r51108, r51109, r51110, r51111, r51112, r51113, r51114, r51115;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r51107);
        mpfr_init(r51108);
        mpfr_init(r51109);
        mpfr_init(r51110);
        mpfr_init(r51111);
        mpfr_init(r51112);
        mpfr_init(r51113);
        mpfr_init(r51114);
        mpfr_init(r51115);
}

double f_im(double d1) {
        mpfr_set_d(r51107, d1, MPFR_RNDN);
        mpfr_mul(r51108, r51107, r51107, MPFR_RNDN);
        mpfr_mul(r51109, r51107, r51108, MPFR_RNDN);
        mpfr_mul(r51110, r51109, r51107, MPFR_RNDN);
        mpfr_mul(r51111, r51110, r51107, MPFR_RNDN);
        mpfr_mul(r51112, r51111, r51108, MPFR_RNDN);
        mpfr_mul(r51113, r51112, r51107, MPFR_RNDN);
        mpfr_mul(r51114, r51107, r51113, MPFR_RNDN);
        mpfr_mul(r51115, r51114, r51107, MPFR_RNDN);
        return mpfr_get_d(r51115, MPFR_RNDN);
}

static mpfr_t r51116, r51117, r51118;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51116);
        mpfr_init_set_str(r51117, "10", 10, MPFR_RNDN);
        mpfr_init(r51118);
}

double f_fm(double d1) {
        mpfr_set_d(r51116, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51118, r51116, r51117, MPFR_RNDN);
        return mpfr_get_d(r51118, MPFR_RNDN);
}

static mpfr_t r51119, r51120, r51121;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r51119);
        mpfr_init_set_str(r51120, "10", 10, MPFR_RNDN);
        mpfr_init(r51121);
}

double f_dm(double d1) {
        mpfr_set_d(r51119, d1, MPFR_RNDN);
        ;
        mpfr_pow(r51121, r51119, r51120, MPFR_RNDN);
        return mpfr_get_d(r51121, MPFR_RNDN);
}

