#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 r26763 = d1;
        float r26764 = 10;
        float r26765 = r26763 * r26764;
        float r26766 = d2;
        float r26767 = r26763 * r26766;
        float r26768 = r26765 + r26767;
        float r26769 = 20;
        float r26770 = r26763 * r26769;
        float r26771 = r26768 + r26770;
        return r26771;
}

double f_id(double d1, double d2) {
        double r26772 = d1;
        double r26773 = 10;
        double r26774 = r26772 * r26773;
        double r26775 = d2;
        double r26776 = r26772 * r26775;
        double r26777 = r26774 + r26776;
        double r26778 = 20;
        double r26779 = r26772 * r26778;
        double r26780 = r26777 + r26779;
        return r26780;
}


double f_of(float d1, float d2) {
        float r26781 = d1;
        float r26782 = d2;
        float r26783 = 10;
        float r26784 = r26782 + r26783;
        float r26785 = 20;
        float r26786 = r26784 + r26785;
        float r26787 = r26781 * r26786;
        return r26787;
}

double f_od(double d1, double d2) {
        double r26788 = d1;
        double r26789 = d2;
        double r26790 = 10;
        double r26791 = r26789 + r26790;
        double r26792 = 20;
        double r26793 = r26791 + r26792;
        double r26794 = r26788 * r26793;
        return r26794;
}

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 r26795, r26796, r26797, r26798, r26799, r26800, r26801, r26802, r26803;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r26795);
        mpfr_init_set_str(r26796, "10", 10, MPFR_RNDN);
        mpfr_init(r26797);
        mpfr_init(r26798);
        mpfr_init(r26799);
        mpfr_init(r26800);
        mpfr_init_set_str(r26801, "20", 10, MPFR_RNDN);
        mpfr_init(r26802);
        mpfr_init(r26803);
}

double f_im(double d1, double d2) {
        mpfr_set_d(r26795, d1, MPFR_RNDN);
        ;
        mpfr_mul(r26797, r26795, r26796, MPFR_RNDN);
        mpfr_set_d(r26798, d2, MPFR_RNDN);
        mpfr_mul(r26799, r26795, r26798, MPFR_RNDN);
        mpfr_add(r26800, r26797, r26799, MPFR_RNDN);
        ;
        mpfr_mul(r26802, r26795, r26801, MPFR_RNDN);
        mpfr_add(r26803, r26800, r26802, MPFR_RNDN);
        return mpfr_get_d(r26803, MPFR_RNDN);
}

static mpfr_t r26804, r26805, r26806, r26807, r26808, r26809, r26810;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r26804);
        mpfr_init(r26805);
        mpfr_init_set_str(r26806, "10", 10, MPFR_RNDN);
        mpfr_init(r26807);
        mpfr_init_set_str(r26808, "20", 10, MPFR_RNDN);
        mpfr_init(r26809);
        mpfr_init(r26810);
}

double f_fm(double d1, double d2) {
        mpfr_set_d(r26804, d1, MPFR_RNDN);
        mpfr_set_d(r26805, d2, MPFR_RNDN);
        ;
        mpfr_add(r26807, r26805, r26806, MPFR_RNDN);
        ;
        mpfr_add(r26809, r26807, r26808, MPFR_RNDN);
        mpfr_mul(r26810, r26804, r26809, MPFR_RNDN);
        return mpfr_get_d(r26810, MPFR_RNDN);
}

static mpfr_t r26811, r26812, r26813, r26814, r26815, r26816, r26817;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r26811);
        mpfr_init(r26812);
        mpfr_init_set_str(r26813, "10", 10, MPFR_RNDN);
        mpfr_init(r26814);
        mpfr_init_set_str(r26815, "20", 10, MPFR_RNDN);
        mpfr_init(r26816);
        mpfr_init(r26817);
}

double f_dm(double d1, double d2) {
        mpfr_set_d(r26811, d1, MPFR_RNDN);
        mpfr_set_d(r26812, d2, MPFR_RNDN);
        ;
        mpfr_add(r26814, r26812, r26813, MPFR_RNDN);
        ;
        mpfr_add(r26816, r26814, r26815, MPFR_RNDN);
        mpfr_mul(r26817, r26811, r26816, MPFR_RNDN);
        return mpfr_get_d(r26817, MPFR_RNDN);
}

