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

char *name = "Expression, p14";

double f_if(float a, float b, float c, float d) {
        float r9279 = a;
        float r9280 = b;
        float r9281 = c;
        float r9282 = r9280 + r9281;
        float r9283 = d;
        float r9284 = r9282 + r9283;
        float r9285 = r9279 * r9284;
        return r9285;
}

double f_id(double a, double b, double c, double d) {
        double r9286 = a;
        double r9287 = b;
        double r9288 = c;
        double r9289 = r9287 + r9288;
        double r9290 = d;
        double r9291 = r9289 + r9290;
        double r9292 = r9286 * r9291;
        return r9292;
}


double f_of(float a, float b, float c, float d) {
        float r9293 = b;
        float r9294 = c;
        float r9295 = r9293 + r9294;
        float r9296 = d;
        float r9297 = r9295 + r9296;
        float r9298 = a;
        float r9299 = r9297 * r9298;
        return r9299;
}

double f_od(double a, double b, double c, double d) {
        double r9300 = b;
        double r9301 = c;
        double r9302 = r9300 + r9301;
        double r9303 = d;
        double r9304 = r9302 + r9303;
        double r9305 = a;
        double r9306 = r9304 * r9305;
        return r9306;
}

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 r9307, r9308, r9309, r9310, r9311, r9312, r9313;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9307);
        mpfr_init(r9308);
        mpfr_init(r9309);
        mpfr_init(r9310);
        mpfr_init(r9311);
        mpfr_init(r9312);
        mpfr_init(r9313);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r9307, a, MPFR_RNDN);
        mpfr_set_d(r9308, b, MPFR_RNDN);
        mpfr_set_d(r9309, c, MPFR_RNDN);
        mpfr_add(r9310, r9308, r9309, MPFR_RNDN);
        mpfr_set_d(r9311, d, MPFR_RNDN);
        mpfr_add(r9312, r9310, r9311, MPFR_RNDN);
        mpfr_mul(r9313, r9307, r9312, MPFR_RNDN);
        return mpfr_get_d(r9313, MPFR_RNDN);
}

static mpfr_t r9314, r9315, r9316, r9317, r9318, r9319, r9320;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9314);
        mpfr_init(r9315);
        mpfr_init(r9316);
        mpfr_init(r9317);
        mpfr_init(r9318);
        mpfr_init(r9319);
        mpfr_init(r9320);
}

double f_fm(double a, double b, double c, double d) {
        mpfr_set_d(r9314, b, MPFR_RNDN);
        mpfr_set_d(r9315, c, MPFR_RNDN);
        mpfr_add(r9316, r9314, r9315, MPFR_RNDN);
        mpfr_set_d(r9317, d, MPFR_RNDN);
        mpfr_add(r9318, r9316, r9317, MPFR_RNDN);
        mpfr_set_d(r9319, a, MPFR_RNDN);
        mpfr_mul(r9320, r9318, r9319, MPFR_RNDN);
        return mpfr_get_d(r9320, MPFR_RNDN);
}

static mpfr_t r9321, r9322, r9323, r9324, r9325, r9326, r9327;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9321);
        mpfr_init(r9322);
        mpfr_init(r9323);
        mpfr_init(r9324);
        mpfr_init(r9325);
        mpfr_init(r9326);
        mpfr_init(r9327);
}

double f_dm(double a, double b, double c, double d) {
        mpfr_set_d(r9321, b, MPFR_RNDN);
        mpfr_set_d(r9322, c, MPFR_RNDN);
        mpfr_add(r9323, r9321, r9322, MPFR_RNDN);
        mpfr_set_d(r9324, d, MPFR_RNDN);
        mpfr_add(r9325, r9323, r9324, MPFR_RNDN);
        mpfr_set_d(r9326, a, MPFR_RNDN);
        mpfr_mul(r9327, r9325, r9326, MPFR_RNDN);
        return mpfr_get_d(r9327, MPFR_RNDN);
}

