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

char *name = "FastMath test2";

double f_if(float d1, float d2) {
        float r28429 = d1;
        float r28430 = 10;
        float r28431 = r28429 * r28430;
        float r28432 = d2;
        float r28433 = r28429 * r28432;
        float r28434 = r28431 + r28433;
        float r28435 = 20;
        float r28436 = r28429 * r28435;
        float r28437 = r28434 + r28436;
        return r28437;
}

double f_id(double d1, double d2) {
        double r28438 = d1;
        double r28439 = 10;
        double r28440 = r28438 * r28439;
        double r28441 = d2;
        double r28442 = r28438 * r28441;
        double r28443 = r28440 + r28442;
        double r28444 = 20;
        double r28445 = r28438 * r28444;
        double r28446 = r28443 + r28445;
        return r28446;
}


double f_of(float d1, float d2) {
        float r28447 = 30;
        float r28448 = d2;
        float r28449 = r28447 + r28448;
        float r28450 = d1;
        float r28451 = r28449 * r28450;
        return r28451;
}

double f_od(double d1, double d2) {
        double r28452 = 30;
        double r28453 = d2;
        double r28454 = r28452 + r28453;
        double r28455 = d1;
        double r28456 = r28454 * r28455;
        return r28456;
}

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 r28457, r28458, r28459, r28460, r28461, r28462, r28463, r28464, r28465;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r28457);
        mpfr_init_set_str(r28458, "10", 10, MPFR_RNDN);
        mpfr_init(r28459);
        mpfr_init(r28460);
        mpfr_init(r28461);
        mpfr_init(r28462);
        mpfr_init_set_str(r28463, "20", 10, MPFR_RNDN);
        mpfr_init(r28464);
        mpfr_init(r28465);
}

double f_im(double d1, double d2) {
        mpfr_set_d(r28457, d1, MPFR_RNDN);
        ;
        mpfr_mul(r28459, r28457, r28458, MPFR_RNDN);
        mpfr_set_d(r28460, d2, MPFR_RNDN);
        mpfr_mul(r28461, r28457, r28460, MPFR_RNDN);
        mpfr_add(r28462, r28459, r28461, MPFR_RNDN);
        ;
        mpfr_mul(r28464, r28457, r28463, MPFR_RNDN);
        mpfr_add(r28465, r28462, r28464, MPFR_RNDN);
        return mpfr_get_d(r28465, MPFR_RNDN);
}

static mpfr_t r28466, r28467, r28468, r28469, r28470;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r28466, "30", 10, MPFR_RNDN);
        mpfr_init(r28467);
        mpfr_init(r28468);
        mpfr_init(r28469);
        mpfr_init(r28470);
}

double f_fm(double d1, double d2) {
        ;
        mpfr_set_d(r28467, d2, MPFR_RNDN);
        mpfr_add(r28468, r28466, r28467, MPFR_RNDN);
        mpfr_set_d(r28469, d1, MPFR_RNDN);
        mpfr_mul(r28470, r28468, r28469, MPFR_RNDN);
        return mpfr_get_d(r28470, MPFR_RNDN);
}

static mpfr_t r28471, r28472, r28473, r28474, r28475;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r28471, "30", 10, MPFR_RNDN);
        mpfr_init(r28472);
        mpfr_init(r28473);
        mpfr_init(r28474);
        mpfr_init(r28475);
}

double f_dm(double d1, double d2) {
        ;
        mpfr_set_d(r28472, d2, MPFR_RNDN);
        mpfr_add(r28473, r28471, r28472, MPFR_RNDN);
        mpfr_set_d(r28474, d1, MPFR_RNDN);
        mpfr_mul(r28475, r28473, r28474, MPFR_RNDN);
        return mpfr_get_d(r28475, MPFR_RNDN);
}

