#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 r26665 = e;
        float r26666 = d;
        float r26667 = r26665 + r26666;
        float r26668 = c;
        float r26669 = r26667 + r26668;
        float r26670 = b;
        float r26671 = r26669 + r26670;
        float r26672 = a;
        float r26673 = r26671 + r26672;
        return r26673;
}

double f_id(double a, double b, double c, double d, double e) {
        double r26674 = e;
        double r26675 = d;
        double r26676 = r26674 + r26675;
        double r26677 = c;
        double r26678 = r26676 + r26677;
        double r26679 = b;
        double r26680 = r26678 + r26679;
        double r26681 = a;
        double r26682 = r26680 + r26681;
        return r26682;
}


double f_of(float a, float b, float c, float d, float e) {
        float r26683 = a;
        float r26684 = c;
        float r26685 = e;
        float r26686 = r26684 + r26685;
        float r26687 = r26683 + r26686;
        float r26688 = d;
        float r26689 = b;
        float r26690 = r26688 + r26689;
        float r26691 = r26687 + r26690;
        float r26692 = exp(r26691);
        float r26693 = log(r26692);
        return r26693;
}

double f_od(double a, double b, double c, double d, double e) {
        double r26694 = a;
        double r26695 = c;
        double r26696 = e;
        double r26697 = r26695 + r26696;
        double r26698 = r26694 + r26697;
        double r26699 = d;
        double r26700 = b;
        double r26701 = r26699 + r26700;
        double r26702 = r26698 + r26701;
        double r26703 = exp(r26702);
        double r26704 = log(r26703);
        return r26704;
}

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 r26705, r26706, r26707, r26708, r26709, r26710, r26711, r26712, r26713;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r26705);
        mpfr_init(r26706);
        mpfr_init(r26707);
        mpfr_init(r26708);
        mpfr_init(r26709);
        mpfr_init(r26710);
        mpfr_init(r26711);
        mpfr_init(r26712);
        mpfr_init(r26713);
}

double f_im(double a, double b, double c, double d, double e) {
        mpfr_set_d(r26705, e, MPFR_RNDN);
        mpfr_set_d(r26706, d, MPFR_RNDN);
        mpfr_add(r26707, r26705, r26706, MPFR_RNDN);
        mpfr_set_d(r26708, c, MPFR_RNDN);
        mpfr_add(r26709, r26707, r26708, MPFR_RNDN);
        mpfr_set_d(r26710, b, MPFR_RNDN);
        mpfr_add(r26711, r26709, r26710, MPFR_RNDN);
        mpfr_set_d(r26712, a, MPFR_RNDN);
        mpfr_add(r26713, r26711, r26712, MPFR_RNDN);
        return mpfr_get_d(r26713, MPFR_RNDN);
}

static mpfr_t r26714, r26715, r26716, r26717, r26718, r26719, r26720, r26721, r26722, r26723, r26724;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26714);
        mpfr_init(r26715);
        mpfr_init(r26716);
        mpfr_init(r26717);
        mpfr_init(r26718);
        mpfr_init(r26719);
        mpfr_init(r26720);
        mpfr_init(r26721);
        mpfr_init(r26722);
        mpfr_init(r26723);
        mpfr_init(r26724);
}

double f_fm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r26714, a, MPFR_RNDN);
        mpfr_set_d(r26715, c, MPFR_RNDN);
        mpfr_set_d(r26716, e, MPFR_RNDN);
        mpfr_add(r26717, r26715, r26716, MPFR_RNDN);
        mpfr_add(r26718, r26714, r26717, MPFR_RNDN);
        mpfr_set_d(r26719, d, MPFR_RNDN);
        mpfr_set_d(r26720, b, MPFR_RNDN);
        mpfr_add(r26721, r26719, r26720, MPFR_RNDN);
        mpfr_add(r26722, r26718, r26721, MPFR_RNDN);
        mpfr_exp(r26723, r26722, MPFR_RNDN);
        mpfr_log(r26724, r26723, MPFR_RNDN);
        return mpfr_get_d(r26724, MPFR_RNDN);
}

static mpfr_t r26725, r26726, r26727, r26728, r26729, r26730, r26731, r26732, r26733, r26734, r26735;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26725);
        mpfr_init(r26726);
        mpfr_init(r26727);
        mpfr_init(r26728);
        mpfr_init(r26729);
        mpfr_init(r26730);
        mpfr_init(r26731);
        mpfr_init(r26732);
        mpfr_init(r26733);
        mpfr_init(r26734);
        mpfr_init(r26735);
}

double f_dm(double a, double b, double c, double d, double e) {
        mpfr_set_d(r26725, a, MPFR_RNDN);
        mpfr_set_d(r26726, c, MPFR_RNDN);
        mpfr_set_d(r26727, e, MPFR_RNDN);
        mpfr_add(r26728, r26726, r26727, MPFR_RNDN);
        mpfr_add(r26729, r26725, r26728, MPFR_RNDN);
        mpfr_set_d(r26730, d, MPFR_RNDN);
        mpfr_set_d(r26731, b, MPFR_RNDN);
        mpfr_add(r26732, r26730, r26731, MPFR_RNDN);
        mpfr_add(r26733, r26729, r26732, MPFR_RNDN);
        mpfr_exp(r26734, r26733, MPFR_RNDN);
        mpfr_log(r26735, r26734, MPFR_RNDN);
        return mpfr_get_d(r26735, MPFR_RNDN);
}

