#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "FastMath repmul";

double f_if(float d1) {
        float r11928 = d1;
        float r11929 = r11928 * r11928;
        float r11930 = r11929 * r11928;
        float r11931 = r11930 * r11928;
        return r11931;
}

double f_id(double d1) {
        double r11932 = d1;
        double r11933 = r11932 * r11932;
        double r11934 = r11933 * r11932;
        double r11935 = r11934 * r11932;
        return r11935;
}


double f_of(float d1) {
        float r11936 = d1;
        float r11937 = 3.0f;
        float r11938 = 1.0f;
        float r11939 = r11937 + r11938;
        float r11940 = pow(r11936, r11939);
        return r11940;
}

double f_od(double d1) {
        double r11941 = d1;
        double r11942 = 3.0;
        double r11943 = 1.0;
        double r11944 = r11942 + r11943;
        double r11945 = pow(r11941, r11944);
        return r11945;
}

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 r11946, r11947, r11948, r11949;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r11946);
        mpfr_init(r11947);
        mpfr_init(r11948);
        mpfr_init(r11949);
}

double f_im(double d1) {
        mpfr_set_d(r11946, d1, MPFR_RNDN);
        mpfr_mul(r11947, r11946, r11946, MPFR_RNDN);
        mpfr_mul(r11948, r11947, r11946, MPFR_RNDN);
        mpfr_mul(r11949, r11948, r11946, MPFR_RNDN);
        return mpfr_get_d(r11949, MPFR_RNDN);
}

static mpfr_t r11950, r11951, r11952, r11953, r11954;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r11950);
        mpfr_init_set_str(r11951, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11952, "1", 10, MPFR_RNDN);
        mpfr_init(r11953);
        mpfr_init(r11954);
}

double f_fm(double d1) {
        mpfr_set_d(r11950, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r11953, r11951, r11952, MPFR_RNDN);
        mpfr_pow(r11954, r11950, r11953, MPFR_RNDN);
        return mpfr_get_d(r11954, MPFR_RNDN);
}

static mpfr_t r11955, r11956, r11957, r11958, r11959;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r11955);
        mpfr_init_set_str(r11956, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11957, "1", 10, MPFR_RNDN);
        mpfr_init(r11958);
        mpfr_init(r11959);
}

double f_dm(double d1) {
        mpfr_set_d(r11955, d1, MPFR_RNDN);
        ;
        ;
        mpfr_add(r11958, r11956, r11957, MPFR_RNDN);
        mpfr_pow(r11959, r11955, r11958, MPFR_RNDN);
        return mpfr_get_d(r11959, MPFR_RNDN);
}

