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

char *name = "Expression, p14";

double f_if(float a, float b, float c, float d) {
        float r9783 = a;
        float r9784 = b;
        float r9785 = c;
        float r9786 = r9784 + r9785;
        float r9787 = d;
        float r9788 = r9786 + r9787;
        float r9789 = r9783 * r9788;
        return r9789;
}

double f_id(double a, double b, double c, double d) {
        double r9790 = a;
        double r9791 = b;
        double r9792 = c;
        double r9793 = r9791 + r9792;
        double r9794 = d;
        double r9795 = r9793 + r9794;
        double r9796 = r9790 * r9795;
        return r9796;
}


double f_of(float a, float b, float c, float d) {
        float r9797 = a;
        float r9798 = b;
        float r9799 = c;
        float r9800 = r9798 + r9799;
        float r9801 = r9797 * r9800;
        float r9802 = d;
        float r9803 = r9797 * r9802;
        float r9804 = r9801 + r9803;
        return r9804;
}

double f_od(double a, double b, double c, double d) {
        double r9805 = a;
        double r9806 = b;
        double r9807 = c;
        double r9808 = r9806 + r9807;
        double r9809 = r9805 * r9808;
        double r9810 = d;
        double r9811 = r9805 * r9810;
        double r9812 = r9809 + r9811;
        return r9812;
}

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 r9813, r9814, r9815, r9816, r9817, r9818, r9819;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9813);
        mpfr_init(r9814);
        mpfr_init(r9815);
        mpfr_init(r9816);
        mpfr_init(r9817);
        mpfr_init(r9818);
        mpfr_init(r9819);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r9813, a, MPFR_RNDN);
        mpfr_set_d(r9814, b, MPFR_RNDN);
        mpfr_set_d(r9815, c, MPFR_RNDN);
        mpfr_add(r9816, r9814, r9815, MPFR_RNDN);
        mpfr_set_d(r9817, d, MPFR_RNDN);
        mpfr_add(r9818, r9816, r9817, MPFR_RNDN);
        mpfr_mul(r9819, r9813, r9818, MPFR_RNDN);
        return mpfr_get_d(r9819, MPFR_RNDN);
}

static mpfr_t r9820, r9821, r9822, r9823, r9824, r9825, r9826, r9827;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9820);
        mpfr_init(r9821);
        mpfr_init(r9822);
        mpfr_init(r9823);
        mpfr_init(r9824);
        mpfr_init(r9825);
        mpfr_init(r9826);
        mpfr_init(r9827);
}

double f_fm(double a, double b, double c, double d) {
        mpfr_set_d(r9820, a, MPFR_RNDN);
        mpfr_set_d(r9821, b, MPFR_RNDN);
        mpfr_set_d(r9822, c, MPFR_RNDN);
        mpfr_add(r9823, r9821, r9822, MPFR_RNDN);
        mpfr_mul(r9824, r9820, r9823, MPFR_RNDN);
        mpfr_set_d(r9825, d, MPFR_RNDN);
        mpfr_mul(r9826, r9820, r9825, MPFR_RNDN);
        mpfr_add(r9827, r9824, r9826, MPFR_RNDN);
        return mpfr_get_d(r9827, MPFR_RNDN);
}

static mpfr_t r9828, r9829, r9830, r9831, r9832, r9833, r9834, r9835;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9828);
        mpfr_init(r9829);
        mpfr_init(r9830);
        mpfr_init(r9831);
        mpfr_init(r9832);
        mpfr_init(r9833);
        mpfr_init(r9834);
        mpfr_init(r9835);
}

double f_dm(double a, double b, double c, double d) {
        mpfr_set_d(r9828, a, MPFR_RNDN);
        mpfr_set_d(r9829, b, MPFR_RNDN);
        mpfr_set_d(r9830, c, MPFR_RNDN);
        mpfr_add(r9831, r9829, r9830, MPFR_RNDN);
        mpfr_mul(r9832, r9828, r9831, MPFR_RNDN);
        mpfr_set_d(r9833, d, MPFR_RNDN);
        mpfr_mul(r9834, r9828, r9833, MPFR_RNDN);
        mpfr_add(r9835, r9832, r9834, MPFR_RNDN);
        return mpfr_get_d(r9835, MPFR_RNDN);
}

