#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 r12437 = d1;
        float r12438 = r12437 * r12437;
        float r12439 = r12437 * r12438;
        float r12440 = r12439 * r12437;
        float r12441 = r12440 * r12437;
        float r12442 = r12441 * r12438;
        float r12443 = r12442 * r12437;
        float r12444 = r12437 * r12443;
        float r12445 = r12444 * r12437;
        return r12445;
}

double f_id(double d1) {
        double r12446 = d1;
        double r12447 = r12446 * r12446;
        double r12448 = r12446 * r12447;
        double r12449 = r12448 * r12446;
        double r12450 = r12449 * r12446;
        double r12451 = r12450 * r12447;
        double r12452 = r12451 * r12446;
        double r12453 = r12446 * r12452;
        double r12454 = r12453 * r12446;
        return r12454;
}


double f_of(float d1) {
        float r12455 = d1;
        float r12456 = 7;
        float r12457 = 3;
        float r12458 = r12456 + r12457;
        float r12459 = pow(r12455, r12458);
        return r12459;
}

double f_od(double d1) {
        double r12460 = d1;
        double r12461 = 7;
        double r12462 = 3;
        double r12463 = r12461 + r12462;
        double r12464 = pow(r12460, r12463);
        return r12464;
}

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 r12465, r12466, r12467, r12468, r12469, r12470, r12471, r12472, r12473;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r12465);
        mpfr_init(r12466);
        mpfr_init(r12467);
        mpfr_init(r12468);
        mpfr_init(r12469);
        mpfr_init(r12470);
        mpfr_init(r12471);
        mpfr_init(r12472);
        mpfr_init(r12473);
}

double f_im(double d1) {
        mpfr_set_d(r12465, d1, MPFR_RNDN);
        mpfr_mul(r12466, r12465, r12465, MPFR_RNDN);
        mpfr_mul(r12467, r12465, r12466, MPFR_RNDN);
        mpfr_mul(r12468, r12467, r12465, MPFR_RNDN);
        mpfr_mul(r12469, r12468, r12465, MPFR_RNDN);
        mpfr_mul(r12470, r12469, r12466, MPFR_RNDN);
        mpfr_mul(r12471, r12470, r12465, MPFR_RNDN);
        mpfr_mul(r12472, r12465, r12471, MPFR_RNDN);
        mpfr_mul(r12473, r12472, r12465, MPFR_RNDN);
        return mpfr_get_d(r12473, MPFR_RNDN);
}

static mpfr_t r12474, r12475, r12476, r12477, r12478;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r12474);
        mpfr_init_set_str(r12475, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12476, "3", 10, MPFR_RNDN);
        mpfr_init(r12477);
        mpfr_init(r12478);
}

double f_fm(double d1) {
        mpfr_set_d(r12474, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12477, r12475, r12476, MPFR_RNDN);
        mpfr_pow(r12478, r12474, r12477, MPFR_RNDN);
        return mpfr_get_d(r12478, MPFR_RNDN);
}

static mpfr_t r12479, r12480, r12481, r12482, r12483;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r12479);
        mpfr_init_set_str(r12480, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12481, "3", 10, MPFR_RNDN);
        mpfr_init(r12482);
        mpfr_init(r12483);
}

double f_dm(double d1) {
        mpfr_set_d(r12479, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12482, r12480, r12481, MPFR_RNDN);
        mpfr_pow(r12483, r12479, r12482, MPFR_RNDN);
        return mpfr_get_d(r12483, MPFR_RNDN);
}

