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

char *name = "Expression 1, p15";

double f_if(float a, float b, float c, float d, float e) {
        float r9431 = e;
        float r9432 = d;
        float r9433 = r9431 + r9432;
        float r9434 = c;
        float r9435 = r9433 + r9434;
        float r9436 = b;
        float r9437 = r9435 + r9436;
        float r9438 = a;
        float r9439 = r9437 + r9438;
        return r9439;
}

double f_id(double a, double b, double c, double d, double e) {
        double r9440 = e;
        double r9441 = d;
        double r9442 = r9440 + r9441;
        double r9443 = c;
        double r9444 = r9442 + r9443;
        double r9445 = b;
        double r9446 = r9444 + r9445;
        double r9447 = a;
        double r9448 = r9446 + r9447;
        return r9448;
}


double f_of(float a, float b, float c, float d, float e) {
        float r9449 = b;
        float r9450 = a;
        float r9451 = r9449 + r9450;
        float r9452 = e;
        float r9453 = d;
        float r9454 = c;
        float r9455 = r9453 + r9454;
        float r9456 = r9452 + r9455;
        float r9457 = r9451 + r9456;
        return r9457;
}

double f_od(double a, double b, double c, double d, double e) {
        double r9458 = b;
        double r9459 = a;
        double r9460 = r9458 + r9459;
        double r9461 = e;
        double r9462 = d;
        double r9463 = c;
        double r9464 = r9462 + r9463;
        double r9465 = r9461 + r9464;
        double r9466 = r9460 + r9465;
        return r9466;
}

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 r9467, r9468, r9469, r9470, r9471, r9472, r9473, r9474, r9475;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9467);
        mpfr_init(r9468);
        mpfr_init(r9469);
        mpfr_init(r9470);
        mpfr_init(r9471);
        mpfr_init(r9472);
        mpfr_init(r9473);
        mpfr_init(r9474);
        mpfr_init(r9475);
}

double f_im(double a, double b, double c, double d, double e) {
        mpfr_set_d(r9467, e, MPFR_RNDN);
        mpfr_set_d(r9468, d, MPFR_RNDN);
        mpfr_add(r9469, r9467, r9468, MPFR_RNDN);
        mpfr_set_d(r9470, c, MPFR_RNDN);
        mpfr_add(r9471, r9469, r9470, MPFR_RNDN);
        mpfr_set_d(r9472, b, MPFR_RNDN);
        mpfr_add(r9473, r9471, r9472, MPFR_RNDN);
        mpfr_set_d(r9474, a, MPFR_RNDN);
        mpfr_add(r9475, r9473, r9474, MPFR_RNDN);
        return mpfr_get_d(r9475, MPFR_RNDN);
}

static mpfr_t r9476, r9477, r9478, r9479, r9480, r9481, r9482, r9483, r9484;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9476);
        mpfr_init(r9477);
        mpfr_init(r9478);
        mpfr_init(r9479);
        mpfr_init(r9480);
        mpfr_init(r9481);
        mpfr_init(r9482);
        mpfr_init(r9483);
        mpfr_init(r9484);
}

double f_fm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r9476, b, MPFR_RNDN);
        mpfr_set_d(r9477, a, MPFR_RNDN);
        mpfr_add(r9478, r9476, r9477, MPFR_RNDN);
        mpfr_set_d(r9479, e, MPFR_RNDN);
        mpfr_set_d(r9480, d, MPFR_RNDN);
        mpfr_set_d(r9481, c, MPFR_RNDN);
        mpfr_add(r9482, r9480, r9481, MPFR_RNDN);
        mpfr_add(r9483, r9479, r9482, MPFR_RNDN);
        mpfr_add(r9484, r9478, r9483, MPFR_RNDN);
        return mpfr_get_d(r9484, MPFR_RNDN);
}

static mpfr_t r9485, r9486, r9487, r9488, r9489, r9490, r9491, r9492, r9493;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9485);
        mpfr_init(r9486);
        mpfr_init(r9487);
        mpfr_init(r9488);
        mpfr_init(r9489);
        mpfr_init(r9490);
        mpfr_init(r9491);
        mpfr_init(r9492);
        mpfr_init(r9493);
}

double f_dm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r9485, b, MPFR_RNDN);
        mpfr_set_d(r9486, a, MPFR_RNDN);
        mpfr_add(r9487, r9485, r9486, MPFR_RNDN);
        mpfr_set_d(r9488, e, MPFR_RNDN);
        mpfr_set_d(r9489, d, MPFR_RNDN);
        mpfr_set_d(r9490, c, MPFR_RNDN);
        mpfr_add(r9491, r9489, r9490, MPFR_RNDN);
        mpfr_add(r9492, r9488, r9491, MPFR_RNDN);
        mpfr_add(r9493, r9487, r9492, MPFR_RNDN);
        return mpfr_get_d(r9493, MPFR_RNDN);
}

