#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 r12879 = d1;
        float r12880 = r12879 * r12879;
        float r12881 = r12879 * r12880;
        float r12882 = r12881 * r12879;
        float r12883 = r12882 * r12879;
        float r12884 = r12883 * r12880;
        float r12885 = r12884 * r12879;
        float r12886 = r12879 * r12885;
        float r12887 = r12886 * r12879;
        return r12887;
}

double f_id(double d1) {
        double r12888 = d1;
        double r12889 = r12888 * r12888;
        double r12890 = r12888 * r12889;
        double r12891 = r12890 * r12888;
        double r12892 = r12891 * r12888;
        double r12893 = r12892 * r12889;
        double r12894 = r12893 * r12888;
        double r12895 = r12888 * r12894;
        double r12896 = r12895 * r12888;
        return r12896;
}


double f_of(float d1) {
        float r12897 = d1;
        float r12898 = 7;
        float r12899 = 3;
        float r12900 = r12898 + r12899;
        float r12901 = pow(r12897, r12900);
        return r12901;
}

double f_od(double d1) {
        double r12902 = d1;
        double r12903 = 7;
        double r12904 = 3;
        double r12905 = r12903 + r12904;
        double r12906 = pow(r12902, r12905);
        return r12906;
}

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 r12907, r12908, r12909, r12910, r12911, r12912, r12913, r12914, r12915;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r12907);
        mpfr_init(r12908);
        mpfr_init(r12909);
        mpfr_init(r12910);
        mpfr_init(r12911);
        mpfr_init(r12912);
        mpfr_init(r12913);
        mpfr_init(r12914);
        mpfr_init(r12915);
}

double f_im(double d1) {
        mpfr_set_d(r12907, d1, MPFR_RNDN);
        mpfr_mul(r12908, r12907, r12907, MPFR_RNDN);
        mpfr_mul(r12909, r12907, r12908, MPFR_RNDN);
        mpfr_mul(r12910, r12909, r12907, MPFR_RNDN);
        mpfr_mul(r12911, r12910, r12907, MPFR_RNDN);
        mpfr_mul(r12912, r12911, r12908, MPFR_RNDN);
        mpfr_mul(r12913, r12912, r12907, MPFR_RNDN);
        mpfr_mul(r12914, r12907, r12913, MPFR_RNDN);
        mpfr_mul(r12915, r12914, r12907, MPFR_RNDN);
        return mpfr_get_d(r12915, MPFR_RNDN);
}

static mpfr_t r12916, r12917, r12918, r12919, r12920;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r12916);
        mpfr_init_set_str(r12917, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12918, "3", 10, MPFR_RNDN);
        mpfr_init(r12919);
        mpfr_init(r12920);
}

double f_fm(double d1) {
        mpfr_set_d(r12916, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12919, r12917, r12918, MPFR_RNDN);
        mpfr_pow(r12920, r12916, r12919, MPFR_RNDN);
        return mpfr_get_d(r12920, MPFR_RNDN);
}

static mpfr_t r12921, r12922, r12923, r12924, r12925;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r12921);
        mpfr_init_set_str(r12922, "7", 10, MPFR_RNDN);
        mpfr_init_set_str(r12923, "3", 10, MPFR_RNDN);
        mpfr_init(r12924);
        mpfr_init(r12925);
}

double f_dm(double d1) {
        mpfr_set_d(r12921, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r12924, r12922, r12923, MPFR_RNDN);
        mpfr_pow(r12925, r12921, r12924, MPFR_RNDN);
        return mpfr_get_d(r12925, MPFR_RNDN);
}

