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

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


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

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

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

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26797);
        mpfr_init_set_str(r26798, "10", 10, MPFR_RNDN);
        mpfr_init(r26799);
        mpfr_init(r26800);
        mpfr_init(r26801);
        mpfr_init(r26802);
        mpfr_init_set_str(r26803, "20", 10, MPFR_RNDN);
        mpfr_init(r26804);
        mpfr_init(r26805);
}

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

static mpfr_t r26806, r26807, r26808, r26809, r26810, r26811, r26812;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26806);
        mpfr_init(r26807);
        mpfr_init_set_str(r26808, "10", 10, MPFR_RNDN);
        mpfr_init(r26809);
        mpfr_init_set_str(r26810, "20", 10, MPFR_RNDN);
        mpfr_init(r26811);
        mpfr_init(r26812);
}

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

static mpfr_t r26813, r26814, r26815, r26816, r26817, r26818, r26819;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26813);
        mpfr_init(r26814);
        mpfr_init_set_str(r26815, "10", 10, MPFR_RNDN);
        mpfr_init(r26816);
        mpfr_init_set_str(r26817, "20", 10, MPFR_RNDN);
        mpfr_init(r26818);
        mpfr_init(r26819);
}

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

