#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 r12364 = d1;
        float r12365 = r12364 * r12364;
        float r12366 = r12364 * r12365;
        float r12367 = r12366 * r12364;
        float r12368 = r12367 * r12364;
        float r12369 = r12368 * r12365;
        float r12370 = r12369 * r12364;
        float r12371 = r12364 * r12370;
        float r12372 = r12371 * r12364;
        return r12372;
}

double f_id(double d1) {
        double r12373 = d1;
        double r12374 = r12373 * r12373;
        double r12375 = r12373 * r12374;
        double r12376 = r12375 * r12373;
        double r12377 = r12376 * r12373;
        double r12378 = r12377 * r12374;
        double r12379 = r12378 * r12373;
        double r12380 = r12373 * r12379;
        double r12381 = r12380 * r12373;
        return r12381;
}


double f_of(float d1) {
        float r12382 = d1;
        float r12383 = 7;
        float r12384 = 3;
        float r12385 = r12383 + r12384;
        float r12386 = pow(r12382, r12385);
        return r12386;
}

double f_od(double d1) {
        double r12387 = d1;
        double r12388 = 7;
        double r12389 = 3;
        double r12390 = r12388 + r12389;
        double r12391 = pow(r12387, r12390);
        return r12391;
}

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 r12392, r12393, r12394, r12395, r12396, r12397, r12398, r12399, r12400;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r12392);
        mpfr_init(r12393);
        mpfr_init(r12394);
        mpfr_init(r12395);
        mpfr_init(r12396);
        mpfr_init(r12397);
        mpfr_init(r12398);
        mpfr_init(r12399);
        mpfr_init(r12400);
}

double f_im(double d1) {
        mpfr_set_d(r12392, d1, MPFR_RNDN);
        mpfr_mul(r12393, r12392, r12392, MPFR_RNDN);
        mpfr_mul(r12394, r12392, r12393, MPFR_RNDN);
        mpfr_mul(r12395, r12394, r12392, MPFR_RNDN);
        mpfr_mul(r12396, r12395, r12392, MPFR_RNDN);
        mpfr_mul(r12397, r12396, r12393, MPFR_RNDN);
        mpfr_mul(r12398, r12397, r12392, MPFR_RNDN);
        mpfr_mul(r12399, r12392, r12398, MPFR_RNDN);
        mpfr_mul(r12400, r12399, r12392, MPFR_RNDN);
        return mpfr_get_d(r12400, MPFR_RNDN);
}

static mpfr_t r12401, r12402, r12403, r12404, r12405;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r12401);
        mpfr_init_set_str(r12402, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12403, "3", 10, MPFR_RNDN);
        mpfr_init(r12404);
        mpfr_init(r12405);
}

double f_fm(double d1) {
        mpfr_set_d(r12401, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12404, r12402, r12403, MPFR_RNDN);
        mpfr_pow(r12405, r12401, r12404, MPFR_RNDN);
        return mpfr_get_d(r12405, MPFR_RNDN);
}

static mpfr_t r12406, r12407, r12408, r12409, r12410;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r12406);
        mpfr_init_set_str(r12407, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12408, "3", 10, MPFR_RNDN);
        mpfr_init(r12409);
        mpfr_init(r12410);
}

double f_dm(double d1) {
        mpfr_set_d(r12406, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12409, r12407, r12408, MPFR_RNDN);
        mpfr_pow(r12410, r12406, r12409, MPFR_RNDN);
        return mpfr_get_d(r12410, MPFR_RNDN);
}

