#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 r13044 = d;
        float r13045 = 10;
        float r13046 = r13044 * r13045;
        float r13047 = 20;
        float r13048 = r13044 * r13047;
        float r13049 = r13046 + r13048;
        return r13049;
}

double f_id(double d) {
        double r13050 = d;
        double r13051 = 10;
        double r13052 = r13050 * r13051;
        double r13053 = 20;
        double r13054 = r13050 * r13053;
        double r13055 = r13052 + r13054;
        return r13055;
}


double f_of(float d) {
        float r13056 = d;
        float r13057 = 10;
        float r13058 = 20;
        float r13059 = r13057 + r13058;
        float r13060 = r13056 * r13059;
        return r13060;
}

double f_od(double d) {
        double r13061 = d;
        double r13062 = 10;
        double r13063 = 20;
        double r13064 = r13062 + r13063;
        double r13065 = r13061 * r13064;
        return r13065;
}

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 r13066, r13067, r13068, r13069, r13070, r13071;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r13066);
        mpfr_init_set_str(r13067, "10", 10, MPFR_RNDN);
        mpfr_init(r13068);
        mpfr_init_set_str(r13069, "20", 10, MPFR_RNDN);
        mpfr_init(r13070);
        mpfr_init(r13071);
}

double f_im(double d) {
        mpfr_set_d(r13066, d, MPFR_RNDN);
        ;
        mpfr_mul(r13068, r13066, r13067, MPFR_RNDN);
        ;
        mpfr_mul(r13070, r13066, r13069, MPFR_RNDN);
        mpfr_add(r13071, r13068, r13070, MPFR_RNDN);
        return mpfr_get_d(r13071, MPFR_RNDN);
}

static mpfr_t r13072, r13073, r13074, r13075, r13076;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r13072);
        mpfr_init_set_str(r13073, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r13074, "20", 10, MPFR_RNDN);
        mpfr_init(r13075);
        mpfr_init(r13076);
}

double f_fm(double d) {
        mpfr_set_d(r13072, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r13075, r13073, r13074, MPFR_RNDN);
        mpfr_mul(r13076, r13072, r13075, MPFR_RNDN);
        return mpfr_get_d(r13076, MPFR_RNDN);
}

static mpfr_t r13077, r13078, r13079, r13080, r13081;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r13077);
        mpfr_init_set_str(r13078, "10", 10, MPFR_RNDN);
        mpfr_init_set_str(r13079, "20", 10, MPFR_RNDN);
        mpfr_init(r13080);
        mpfr_init(r13081);
}

double f_dm(double d) {
        mpfr_set_d(r13077, d, MPFR_RNDN);
        ;
        ;
        mpfr_add(r13080, r13078, r13079, MPFR_RNDN);
        mpfr_mul(r13081, r13077, r13080, MPFR_RNDN);
        return mpfr_get_d(r13081, MPFR_RNDN);
}

