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

char *name = "FastMath test1";

double f_if(float d) {
        float r26424 = d;
        float r26425 = 10;
        float r26426 = r26424 * r26425;
        float r26427 = 20;
        float r26428 = r26424 * r26427;
        float r26429 = r26426 + r26428;
        return r26429;
}

double f_id(double d) {
        double r26430 = d;
        double r26431 = 10;
        double r26432 = r26430 * r26431;
        double r26433 = 20;
        double r26434 = r26430 * r26433;
        double r26435 = r26432 + r26434;
        return r26435;
}


double f_of(float d) {
        float r26436 = d;
        float r26437 = 20;
        float r26438 = 10;
        float r26439 = r26437 + r26438;
        float r26440 = r26436 * r26439;
        return r26440;
}

double f_od(double d) {
        double r26441 = d;
        double r26442 = 20;
        double r26443 = 10;
        double r26444 = r26442 + r26443;
        double r26445 = r26441 * r26444;
        return r26445;
}

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 r26446, r26447, r26448, r26449, r26450, r26451;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r26446);
        mpfr_init_set_str(r26447, "10", 10, MPFR_RNDN);
        mpfr_init(r26448);
        mpfr_init_set_str(r26449, "20", 10, MPFR_RNDN);
        mpfr_init(r26450);
        mpfr_init(r26451);
}

double f_im(double d) {
        mpfr_set_d(r26446, d, MPFR_RNDN);
        ;
        mpfr_mul(r26448, r26446, r26447, MPFR_RNDN);
        ;
        mpfr_mul(r26450, r26446, r26449, MPFR_RNDN);
        mpfr_add(r26451, r26448, r26450, MPFR_RNDN);
        return mpfr_get_d(r26451, MPFR_RNDN);
}

static mpfr_t r26452, r26453, r26454, r26455, r26456;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26452);
        mpfr_init_set_str(r26453, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r26454, "10", 10, MPFR_RNDN);
        mpfr_init(r26455);
        mpfr_init(r26456);
}

double f_fm(double d) {
        mpfr_set_d(r26452, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26455, r26453, r26454, MPFR_RNDN);
        mpfr_mul(r26456, r26452, r26455, MPFR_RNDN);
        return mpfr_get_d(r26456, MPFR_RNDN);
}

static mpfr_t r26457, r26458, r26459, r26460, r26461;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26457);
        mpfr_init_set_str(r26458, "20", 10, MPFR_RNDN);
        mpfr_init_set_str(r26459, "10", 10, MPFR_RNDN);
        mpfr_init(r26460);
        mpfr_init(r26461);
}

double f_dm(double d) {
        mpfr_set_d(r26457, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26460, r26458, r26459, MPFR_RNDN);
        mpfr_mul(r26461, r26457, r26460, MPFR_RNDN);
        return mpfr_get_d(r26461, MPFR_RNDN);
}

