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

char *name = "test06_sums4, sum2";

double f_if(float x0, float x1, float x2, float x3) {
        float r20721 = x0;
        float r20722 = x1;
        float r20723 = r20721 + r20722;
        float r20724 = x2;
        float r20725 = x3;
        float r20726 = r20724 + r20725;
        float r20727 = r20723 + r20726;
        return r20727;
}

double f_id(double x0, double x1, double x2, double x3) {
        double r20728 = x0;
        double r20729 = x1;
        double r20730 = r20728 + r20729;
        double r20731 = x2;
        double r20732 = x3;
        double r20733 = r20731 + r20732;
        double r20734 = r20730 + r20733;
        return r20734;
}


double f_of(float x0, float x1, float x2, float x3) {
        float r20735 = x0;
        float r20736 = x1;
        float r20737 = r20735 + r20736;
        float r20738 = x2;
        float r20739 = x3;
        float r20740 = r20738 + r20739;
        float r20741 = r20737 + r20740;
        return r20741;
}

double f_od(double x0, double x1, double x2, double x3) {
        double r20742 = x0;
        double r20743 = x1;
        double r20744 = r20742 + r20743;
        double r20745 = x2;
        double r20746 = x3;
        double r20747 = r20745 + r20746;
        double r20748 = r20744 + r20747;
        return r20748;
}

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 r20749, r20750, r20751, r20752, r20753, r20754, r20755;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init(r20749);
        mpfr_init(r20750);
        mpfr_init(r20751);
        mpfr_init(r20752);
        mpfr_init(r20753);
        mpfr_init(r20754);
        mpfr_init(r20755);
}

double f_im(double x0, double x1, double x2, double x3) {
        mpfr_set_d(r20749, x0, MPFR_RNDN);
        mpfr_set_d(r20750, x1, MPFR_RNDN);
        mpfr_add(r20751, r20749, r20750, MPFR_RNDN);
        mpfr_set_d(r20752, x2, MPFR_RNDN);
        mpfr_set_d(r20753, x3, MPFR_RNDN);
        mpfr_add(r20754, r20752, r20753, MPFR_RNDN);
        mpfr_add(r20755, r20751, r20754, MPFR_RNDN);
        return mpfr_get_d(r20755, MPFR_RNDN);
}

static mpfr_t r20756, r20757, r20758, r20759, r20760, r20761, r20762;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r20756);
        mpfr_init(r20757);
        mpfr_init(r20758);
        mpfr_init(r20759);
        mpfr_init(r20760);
        mpfr_init(r20761);
        mpfr_init(r20762);
}

double f_fm(double x0, double x1, double x2, double x3) {
        mpfr_set_d(r20756, x0, MPFR_RNDN);
        mpfr_set_d(r20757, x1, MPFR_RNDN);
        mpfr_add(r20758, r20756, r20757, MPFR_RNDN);
        mpfr_set_d(r20759, x2, MPFR_RNDN);
        mpfr_set_d(r20760, x3, MPFR_RNDN);
        mpfr_add(r20761, r20759, r20760, MPFR_RNDN);
        mpfr_add(r20762, r20758, r20761, MPFR_RNDN);
        return mpfr_get_d(r20762, MPFR_RNDN);
}

static mpfr_t r20763, r20764, r20765, r20766, r20767, r20768, r20769;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r20763);
        mpfr_init(r20764);
        mpfr_init(r20765);
        mpfr_init(r20766);
        mpfr_init(r20767);
        mpfr_init(r20768);
        mpfr_init(r20769);
}

double f_dm(double x0, double x1, double x2, double x3) {
        mpfr_set_d(r20763, x0, MPFR_RNDN);
        mpfr_set_d(r20764, x1, MPFR_RNDN);
        mpfr_add(r20765, r20763, r20764, MPFR_RNDN);
        mpfr_set_d(r20766, x2, MPFR_RNDN);
        mpfr_set_d(r20767, x3, MPFR_RNDN);
        mpfr_add(r20768, r20766, r20767, MPFR_RNDN);
        mpfr_add(r20769, r20765, r20768, MPFR_RNDN);
        return mpfr_get_d(r20769, MPFR_RNDN);
}

