#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 r26535 = a;
        float r26536 = b;
        float r26537 = c;
        float r26538 = r26536 + r26537;
        float r26539 = d;
        float r26540 = r26538 + r26539;
        float r26541 = r26535 * r26540;
        return r26541;
}

double f_id(double a, double b, double c, double d) {
        double r26542 = a;
        double r26543 = b;
        double r26544 = c;
        double r26545 = r26543 + r26544;
        double r26546 = d;
        double r26547 = r26545 + r26546;
        double r26548 = r26542 * r26547;
        return r26548;
}


double f_of(float a, float b, float c, float d) {
        float r26549 = a;
        float r26550 = b;
        float r26551 = c;
        float r26552 = r26550 + r26551;
        float r26553 = r26549 * r26552;
        float r26554 = d;
        float r26555 = r26549 * r26554;
        float r26556 = r26553 + r26555;
        return r26556;
}

double f_od(double a, double b, double c, double d) {
        double r26557 = a;
        double r26558 = b;
        double r26559 = c;
        double r26560 = r26558 + r26559;
        double r26561 = r26557 * r26560;
        double r26562 = d;
        double r26563 = r26557 * r26562;
        double r26564 = r26561 + r26563;
        return r26564;
}

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 r26565, r26566, r26567, r26568, r26569, r26570, r26571;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26565);
        mpfr_init(r26566);
        mpfr_init(r26567);
        mpfr_init(r26568);
        mpfr_init(r26569);
        mpfr_init(r26570);
        mpfr_init(r26571);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r26565, a, MPFR_RNDN);
        mpfr_set_d(r26566, b, MPFR_RNDN);
        mpfr_set_d(r26567, c, MPFR_RNDN);
        mpfr_add(r26568, r26566, r26567, MPFR_RNDN);
        mpfr_set_d(r26569, d, MPFR_RNDN);
        mpfr_add(r26570, r26568, r26569, MPFR_RNDN);
        mpfr_mul(r26571, r26565, r26570, MPFR_RNDN);
        return mpfr_get_d(r26571, MPFR_RNDN);
}

static mpfr_t r26572, r26573, r26574, r26575, r26576, r26577, r26578, r26579;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26572);
        mpfr_init(r26573);
        mpfr_init(r26574);
        mpfr_init(r26575);
        mpfr_init(r26576);
        mpfr_init(r26577);
        mpfr_init(r26578);
        mpfr_init(r26579);
}

double f_fm(double a, double b, double c, double d) {
        mpfr_set_d(r26572, a, MPFR_RNDN);
        mpfr_set_d(r26573, b, MPFR_RNDN);
        mpfr_set_d(r26574, c, MPFR_RNDN);
        mpfr_add(r26575, r26573, r26574, MPFR_RNDN);
        mpfr_mul(r26576, r26572, r26575, MPFR_RNDN);
        mpfr_set_d(r26577, d, MPFR_RNDN);
        mpfr_mul(r26578, r26572, r26577, MPFR_RNDN);
        mpfr_add(r26579, r26576, r26578, MPFR_RNDN);
        return mpfr_get_d(r26579, MPFR_RNDN);
}

static mpfr_t r26580, r26581, r26582, r26583, r26584, r26585, r26586, r26587;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26580);
        mpfr_init(r26581);
        mpfr_init(r26582);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init(r26586);
        mpfr_init(r26587);
}

double f_dm(double a, double b, double c, double d) {
        mpfr_set_d(r26580, a, MPFR_RNDN);
        mpfr_set_d(r26581, b, MPFR_RNDN);
        mpfr_set_d(r26582, c, MPFR_RNDN);
        mpfr_add(r26583, r26581, r26582, MPFR_RNDN);
        mpfr_mul(r26584, r26580, r26583, MPFR_RNDN);
        mpfr_set_d(r26585, d, MPFR_RNDN);
        mpfr_mul(r26586, r26580, r26585, MPFR_RNDN);
        mpfr_add(r26587, r26584, r26586, MPFR_RNDN);
        return mpfr_get_d(r26587, MPFR_RNDN);
}

