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

char *name = "fma_test1";

double f_if(float t) {
        float r25464 = 1;
        float r25465 = t;
        float r25466 = 2e-16;
        float r25467 = r25465 * r25466;
        float r25468 = r25464 + r25467;
        float r25469 = r25468 * r25468;
        float r25470 = -1;
        float r25471 = 2;
        float r25472 = r25471 * r25467;
        float r25473 = r25470 - r25472;
        float r25474 = r25469 + r25473;
        return r25474;
}

double f_id(double t) {
        double r25475 = 1;
        double r25476 = t;
        double r25477 = 2e-16;
        double r25478 = r25476 * r25477;
        double r25479 = r25475 + r25478;
        double r25480 = r25479 * r25479;
        double r25481 = -1;
        double r25482 = 2;
        double r25483 = r25482 * r25478;
        double r25484 = r25481 - r25483;
        double r25485 = r25480 + r25484;
        return r25485;
}


double f_of(float t) {
        float r25486 = 3.9999999999999997e-32;
        float r25487 = t;
        float r25488 = 2;
        float r25489 = pow(r25487, r25488);
        float r25490 = r25486 * r25489;
        return r25490;
}

double f_od(double t) {
        double r25491 = 3.9999999999999997e-32;
        double r25492 = t;
        double r25493 = 2;
        double r25494 = pow(r25492, r25493);
        double r25495 = r25491 * r25494;
        return r25495;
}

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 r25496, r25497, r25498, r25499, r25500, r25501, r25502, r25503, r25504, r25505, r25506;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25496, "1", 10, MPFR_RNDN);
        mpfr_init(r25497);
        mpfr_init_set_str(r25498, "2e-16", 10, MPFR_RNDN);
        mpfr_init(r25499);
        mpfr_init(r25500);
        mpfr_init(r25501);
        mpfr_init_set_str(r25502, "-1", 10, MPFR_RNDN);
        mpfr_init_set_str(r25503, "2", 10, MPFR_RNDN);
        mpfr_init(r25504);
        mpfr_init(r25505);
        mpfr_init(r25506);
}

double f_im(double t) {
        ;
        mpfr_set_d(r25497, t, MPFR_RNDN);
        ;
        mpfr_mul(r25499, r25497, r25498, MPFR_RNDN);
        mpfr_add(r25500, r25496, r25499, MPFR_RNDN);
        mpfr_mul(r25501, r25500, r25500, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r25504, r25503, r25499, MPFR_RNDN);
        mpfr_sub(r25505, r25502, r25504, MPFR_RNDN);
        mpfr_add(r25506, r25501, r25505, MPFR_RNDN);
        return mpfr_get_d(r25506, MPFR_RNDN);
}

static mpfr_t r25507, r25508, r25509, r25510, r25511;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25507, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r25508);
        mpfr_init_set_str(r25509, "2", 10, MPFR_RNDN);
        mpfr_init(r25510);
        mpfr_init(r25511);
}

double f_fm(double t) {
        ;
        mpfr_set_d(r25508, t, MPFR_RNDN);
        ;
        mpfr_pow(r25510, r25508, r25509, MPFR_RNDN);
        mpfr_mul(r25511, r25507, r25510, MPFR_RNDN);
        return mpfr_get_d(r25511, MPFR_RNDN);
}

static mpfr_t r25512, r25513, r25514, r25515, r25516;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25512, "3.9999999999999997e-32", 10, MPFR_RNDN);
        mpfr_init(r25513);
        mpfr_init_set_str(r25514, "2", 10, MPFR_RNDN);
        mpfr_init(r25515);
        mpfr_init(r25516);
}

double f_dm(double t) {
        ;
        mpfr_set_d(r25513, t, MPFR_RNDN);
        ;
        mpfr_pow(r25515, r25513, r25514, MPFR_RNDN);
        mpfr_mul(r25516, r25512, r25515, MPFR_RNDN);
        return mpfr_get_d(r25516, MPFR_RNDN);
}

