#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 r11721 = d1;
        float r11722 = 10.0f;
        float r11723 = r11721 * r11722;
        float r11724 = d2;
        float r11725 = r11721 * r11724;
        float r11726 = r11723 + r11725;
        float r11727 = 20.0f;
        float r11728 = r11721 * r11727;
        float r11729 = r11726 + r11728;
        return r11729;
}

double f_id(double d1, double d2) {
        double r11730 = d1;
        double r11731 = 10.0;
        double r11732 = r11730 * r11731;
        double r11733 = d2;
        double r11734 = r11730 * r11733;
        double r11735 = r11732 + r11734;
        double r11736 = 20.0;
        double r11737 = r11730 * r11736;
        double r11738 = r11735 + r11737;
        return r11738;
}


double f_of(float d1, float d2) {
        float r11739 = 30.0f;
        float r11740 = d2;
        float r11741 = r11739 + r11740;
        float r11742 = d1;
        float r11743 = r11741 * r11742;
        return r11743;
}

double f_od(double d1, double d2) {
        double r11744 = 30.0;
        double r11745 = d2;
        double r11746 = r11744 + r11745;
        double r11747 = d1;
        double r11748 = r11746 * r11747;
        return r11748;
}

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 r11749, r11750, r11751, r11752, r11753, r11754, r11755, r11756, r11757;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r11749);
        mpfr_init_set_str(r11750, "10", 10, MPFR_RNDN);
        mpfr_init(r11751);
        mpfr_init(r11752);
        mpfr_init(r11753);
        mpfr_init(r11754);
        mpfr_init_set_str(r11755, "20", 10, MPFR_RNDN);
        mpfr_init(r11756);
        mpfr_init(r11757);
}

double f_im(double d1, double d2) {
        mpfr_set_d(r11749, d1, MPFR_RNDN);
        ;
        mpfr_mul(r11751, r11749, r11750, MPFR_RNDN);
        mpfr_set_d(r11752, d2, MPFR_RNDN);
        mpfr_mul(r11753, r11749, r11752, MPFR_RNDN);
        mpfr_add(r11754, r11751, r11753, MPFR_RNDN);
        ;
        mpfr_mul(r11756, r11749, r11755, MPFR_RNDN);
        mpfr_add(r11757, r11754, r11756, MPFR_RNDN);
        return mpfr_get_d(r11757, MPFR_RNDN);
}

static mpfr_t r11758, r11759, r11760, r11761, r11762;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11758, "30", 10, MPFR_RNDN);
        mpfr_init(r11759);
        mpfr_init(r11760);
        mpfr_init(r11761);
        mpfr_init(r11762);
}

double f_fm(double d1, double d2) {
        ;
        mpfr_set_d(r11759, d2, MPFR_RNDN);
        mpfr_add(r11760, r11758, r11759, MPFR_RNDN);
        mpfr_set_d(r11761, d1, MPFR_RNDN);
        mpfr_mul(r11762, r11760, r11761, MPFR_RNDN);
        return mpfr_get_d(r11762, MPFR_RNDN);
}

static mpfr_t r11763, r11764, r11765, r11766, r11767;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r11763, "30", 10, MPFR_RNDN);
        mpfr_init(r11764);
        mpfr_init(r11765);
        mpfr_init(r11766);
        mpfr_init(r11767);
}

double f_dm(double d1, double d2) {
        ;
        mpfr_set_d(r11764, d2, MPFR_RNDN);
        mpfr_add(r11765, r11763, r11764, MPFR_RNDN);
        mpfr_set_d(r11766, d1, MPFR_RNDN);
        mpfr_mul(r11767, r11765, r11766, MPFR_RNDN);
        return mpfr_get_d(r11767, MPFR_RNDN);
}

