#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 r26077 = d1;
        float r26078 = 10;
        float r26079 = r26077 * r26078;
        float r26080 = d2;
        float r26081 = r26077 * r26080;
        float r26082 = r26079 + r26081;
        float r26083 = 20;
        float r26084 = r26077 * r26083;
        float r26085 = r26082 + r26084;
        return r26085;
}

double f_id(double d1, double d2) {
        double r26086 = d1;
        double r26087 = 10;
        double r26088 = r26086 * r26087;
        double r26089 = d2;
        double r26090 = r26086 * r26089;
        double r26091 = r26088 + r26090;
        double r26092 = 20;
        double r26093 = r26086 * r26092;
        double r26094 = r26091 + r26093;
        return r26094;
}


double f_of(float d1, float d2) {
        float r26095 = d1;
        float r26096 = d2;
        float r26097 = 10;
        float r26098 = r26096 + r26097;
        float r26099 = 20;
        float r26100 = r26098 + r26099;
        float r26101 = r26095 * r26100;
        return r26101;
}

double f_od(double d1, double d2) {
        double r26102 = d1;
        double r26103 = d2;
        double r26104 = 10;
        double r26105 = r26103 + r26104;
        double r26106 = 20;
        double r26107 = r26105 + r26106;
        double r26108 = r26102 * r26107;
        return r26108;
}

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 r26109, r26110, r26111, r26112, r26113, r26114, r26115, r26116, r26117;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26109);
        mpfr_init_set_str(r26110, "10", 10, MPFR_RNDN);
        mpfr_init(r26111);
        mpfr_init(r26112);
        mpfr_init(r26113);
        mpfr_init(r26114);
        mpfr_init_set_str(r26115, "20", 10, MPFR_RNDN);
        mpfr_init(r26116);
        mpfr_init(r26117);
}

double f_im(double d1, double d2) {
        mpfr_set_d(r26109, d1, MPFR_RNDN);
        ;
        mpfr_mul(r26111, r26109, r26110, MPFR_RNDN);
        mpfr_set_d(r26112, d2, MPFR_RNDN);
        mpfr_mul(r26113, r26109, r26112, MPFR_RNDN);
        mpfr_add(r26114, r26111, r26113, MPFR_RNDN);
        ;
        mpfr_mul(r26116, r26109, r26115, MPFR_RNDN);
        mpfr_add(r26117, r26114, r26116, MPFR_RNDN);
        return mpfr_get_d(r26117, MPFR_RNDN);
}

static mpfr_t r26118, r26119, r26120, r26121, r26122, r26123, r26124;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26118);
        mpfr_init(r26119);
        mpfr_init_set_str(r26120, "10", 10, MPFR_RNDN);
        mpfr_init(r26121);
        mpfr_init_set_str(r26122, "20", 10, MPFR_RNDN);
        mpfr_init(r26123);
        mpfr_init(r26124);
}

double f_fm(double d1, double d2) {
        mpfr_set_d(r26118, d1, MPFR_RNDN);
        mpfr_set_d(r26119, d2, MPFR_RNDN);
        ;
        mpfr_add(r26121, r26119, r26120, MPFR_RNDN);
        ;
        mpfr_add(r26123, r26121, r26122, MPFR_RNDN);
        mpfr_mul(r26124, r26118, r26123, MPFR_RNDN);
        return mpfr_get_d(r26124, MPFR_RNDN);
}

static mpfr_t r26125, r26126, r26127, r26128, r26129, r26130, r26131;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26125);
        mpfr_init(r26126);
        mpfr_init_set_str(r26127, "10", 10, MPFR_RNDN);
        mpfr_init(r26128);
        mpfr_init_set_str(r26129, "20", 10, MPFR_RNDN);
        mpfr_init(r26130);
        mpfr_init(r26131);
}

double f_dm(double d1, double d2) {
        mpfr_set_d(r26125, d1, MPFR_RNDN);
        mpfr_set_d(r26126, d2, MPFR_RNDN);
        ;
        mpfr_add(r26128, r26126, r26127, MPFR_RNDN);
        ;
        mpfr_add(r26130, r26128, r26129, MPFR_RNDN);
        mpfr_mul(r26131, r26125, r26130, MPFR_RNDN);
        return mpfr_get_d(r26131, MPFR_RNDN);
}

