#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 r10438 = e;
        float r10439 = d;
        float r10440 = r10438 + r10439;
        float r10441 = c;
        float r10442 = r10440 + r10441;
        float r10443 = b;
        float r10444 = r10442 + r10443;
        float r10445 = a;
        float r10446 = r10444 + r10445;
        return r10446;
}

double f_id(double a, double b, double c, double d, double e) {
        double r10447 = e;
        double r10448 = d;
        double r10449 = r10447 + r10448;
        double r10450 = c;
        double r10451 = r10449 + r10450;
        double r10452 = b;
        double r10453 = r10451 + r10452;
        double r10454 = a;
        double r10455 = r10453 + r10454;
        return r10455;
}


double f_of(float a, float b, float c, float d, float e) {
        float r10456 = e;
        float r10457 = d;
        float r10458 = r10456 + r10457;
        float r10459 = c;
        float r10460 = r10458 + r10459;
        float r10461 = b;
        float r10462 = a;
        float r10463 = r10461 + r10462;
        float r10464 = r10460 + r10463;
        return r10464;
}

double f_od(double a, double b, double c, double d, double e) {
        double r10465 = e;
        double r10466 = d;
        double r10467 = r10465 + r10466;
        double r10468 = c;
        double r10469 = r10467 + r10468;
        double r10470 = b;
        double r10471 = a;
        double r10472 = r10470 + r10471;
        double r10473 = r10469 + r10472;
        return r10473;
}

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 r10474, r10475, r10476, r10477, r10478, r10479, r10480, r10481, r10482;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r10474);
        mpfr_init(r10475);
        mpfr_init(r10476);
        mpfr_init(r10477);
        mpfr_init(r10478);
        mpfr_init(r10479);
        mpfr_init(r10480);
        mpfr_init(r10481);
        mpfr_init(r10482);
}

double f_im(double a, double b, double c, double d, double e) {
        mpfr_set_d(r10474, e, MPFR_RNDN);
        mpfr_set_d(r10475, d, MPFR_RNDN);
        mpfr_add(r10476, r10474, r10475, MPFR_RNDN);
        mpfr_set_d(r10477, c, MPFR_RNDN);
        mpfr_add(r10478, r10476, r10477, MPFR_RNDN);
        mpfr_set_d(r10479, b, MPFR_RNDN);
        mpfr_add(r10480, r10478, r10479, MPFR_RNDN);
        mpfr_set_d(r10481, a, MPFR_RNDN);
        mpfr_add(r10482, r10480, r10481, MPFR_RNDN);
        return mpfr_get_d(r10482, MPFR_RNDN);
}

static mpfr_t r10483, r10484, r10485, r10486, r10487, r10488, r10489, r10490, r10491;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10483);
        mpfr_init(r10484);
        mpfr_init(r10485);
        mpfr_init(r10486);
        mpfr_init(r10487);
        mpfr_init(r10488);
        mpfr_init(r10489);
        mpfr_init(r10490);
        mpfr_init(r10491);
}

double f_fm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r10483, e, MPFR_RNDN);
        mpfr_set_d(r10484, d, MPFR_RNDN);
        mpfr_add(r10485, r10483, r10484, MPFR_RNDN);
        mpfr_set_d(r10486, c, MPFR_RNDN);
        mpfr_add(r10487, r10485, r10486, MPFR_RNDN);
        mpfr_set_d(r10488, b, MPFR_RNDN);
        mpfr_set_d(r10489, a, MPFR_RNDN);
        mpfr_add(r10490, r10488, r10489, MPFR_RNDN);
        mpfr_add(r10491, r10487, r10490, MPFR_RNDN);
        return mpfr_get_d(r10491, MPFR_RNDN);
}

static mpfr_t r10492, r10493, r10494, r10495, r10496, r10497, r10498, r10499, r10500;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r10492);
        mpfr_init(r10493);
        mpfr_init(r10494);
        mpfr_init(r10495);
        mpfr_init(r10496);
        mpfr_init(r10497);
        mpfr_init(r10498);
        mpfr_init(r10499);
        mpfr_init(r10500);
}

double f_dm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r10492, e, MPFR_RNDN);
        mpfr_set_d(r10493, d, MPFR_RNDN);
        mpfr_add(r10494, r10492, r10493, MPFR_RNDN);
        mpfr_set_d(r10495, c, MPFR_RNDN);
        mpfr_add(r10496, r10494, r10495, MPFR_RNDN);
        mpfr_set_d(r10497, b, MPFR_RNDN);
        mpfr_set_d(r10498, a, MPFR_RNDN);
        mpfr_add(r10499, r10497, r10498, MPFR_RNDN);
        mpfr_add(r10500, r10496, r10499, MPFR_RNDN);
        return mpfr_get_d(r10500, MPFR_RNDN);
}

