#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 r16281420 = e;
        float r16281421 = d;
        float r16281422 = r16281420 + r16281421;
        float r16281423 = c;
        float r16281424 = r16281422 + r16281423;
        float r16281425 = b;
        float r16281426 = r16281424 + r16281425;
        float r16281427 = a;
        float r16281428 = r16281426 + r16281427;
        return r16281428;
}

double f_id(double a, double b, double c, double d, double e) {
        double r16281429 = e;
        double r16281430 = d;
        double r16281431 = r16281429 + r16281430;
        double r16281432 = c;
        double r16281433 = r16281431 + r16281432;
        double r16281434 = b;
        double r16281435 = r16281433 + r16281434;
        double r16281436 = a;
        double r16281437 = r16281435 + r16281436;
        return r16281437;
}


double f_of(float a, float b, float c, float d, float e) {
        float r16281438 = e;
        float r16281439 = d;
        float r16281440 = r16281438 + r16281439;
        float r16281441 = c;
        float r16281442 = r16281440 + r16281441;
        float r16281443 = b;
        float r16281444 = a;
        float r16281445 = r16281443 + r16281444;
        float r16281446 = r16281442 + r16281445;
        return r16281446;
}

double f_od(double a, double b, double c, double d, double e) {
        double r16281447 = e;
        double r16281448 = d;
        double r16281449 = r16281447 + r16281448;
        double r16281450 = c;
        double r16281451 = r16281449 + r16281450;
        double r16281452 = b;
        double r16281453 = a;
        double r16281454 = r16281452 + r16281453;
        double r16281455 = r16281451 + r16281454;
        return r16281455;
}

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 r16281456, r16281457, r16281458, r16281459, r16281460, r16281461, r16281462, r16281463, r16281464;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r16281456);
        mpfr_init(r16281457);
        mpfr_init(r16281458);
        mpfr_init(r16281459);
        mpfr_init(r16281460);
        mpfr_init(r16281461);
        mpfr_init(r16281462);
        mpfr_init(r16281463);
        mpfr_init(r16281464);
}

double f_im(double a, double b, double c, double d, double e) {
        mpfr_set_d(r16281456, e, MPFR_RNDN);
        mpfr_set_d(r16281457, d, MPFR_RNDN);
        mpfr_add(r16281458, r16281456, r16281457, MPFR_RNDN);
        mpfr_set_d(r16281459, c, MPFR_RNDN);
        mpfr_add(r16281460, r16281458, r16281459, MPFR_RNDN);
        mpfr_set_d(r16281461, b, MPFR_RNDN);
        mpfr_add(r16281462, r16281460, r16281461, MPFR_RNDN);
        mpfr_set_d(r16281463, a, MPFR_RNDN);
        mpfr_add(r16281464, r16281462, r16281463, MPFR_RNDN);
        return mpfr_get_d(r16281464, MPFR_RNDN);
}

static mpfr_t r16281465, r16281466, r16281467, r16281468, r16281469, r16281470, r16281471, r16281472, r16281473;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r16281465);
        mpfr_init(r16281466);
        mpfr_init(r16281467);
        mpfr_init(r16281468);
        mpfr_init(r16281469);
        mpfr_init(r16281470);
        mpfr_init(r16281471);
        mpfr_init(r16281472);
        mpfr_init(r16281473);
}

double f_fm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r16281465, e, MPFR_RNDN);
        mpfr_set_d(r16281466, d, MPFR_RNDN);
        mpfr_add(r16281467, r16281465, r16281466, MPFR_RNDN);
        mpfr_set_d(r16281468, c, MPFR_RNDN);
        mpfr_add(r16281469, r16281467, r16281468, MPFR_RNDN);
        mpfr_set_d(r16281470, b, MPFR_RNDN);
        mpfr_set_d(r16281471, a, MPFR_RNDN);
        mpfr_add(r16281472, r16281470, r16281471, MPFR_RNDN);
        mpfr_add(r16281473, r16281469, r16281472, MPFR_RNDN);
        return mpfr_get_d(r16281473, MPFR_RNDN);
}

static mpfr_t r16281474, r16281475, r16281476, r16281477, r16281478, r16281479, r16281480, r16281481, r16281482;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r16281474);
        mpfr_init(r16281475);
        mpfr_init(r16281476);
        mpfr_init(r16281477);
        mpfr_init(r16281478);
        mpfr_init(r16281479);
        mpfr_init(r16281480);
        mpfr_init(r16281481);
        mpfr_init(r16281482);
}

double f_dm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r16281474, e, MPFR_RNDN);
        mpfr_set_d(r16281475, d, MPFR_RNDN);
        mpfr_add(r16281476, r16281474, r16281475, MPFR_RNDN);
        mpfr_set_d(r16281477, c, MPFR_RNDN);
        mpfr_add(r16281478, r16281476, r16281477, MPFR_RNDN);
        mpfr_set_d(r16281479, b, MPFR_RNDN);
        mpfr_set_d(r16281480, a, MPFR_RNDN);
        mpfr_add(r16281481, r16281479, r16281480, MPFR_RNDN);
        mpfr_add(r16281482, r16281478, r16281481, MPFR_RNDN);
        return mpfr_get_d(r16281482, MPFR_RNDN);
}

