#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 r9320 = a;
        float r9321 = b;
        float r9322 = c;
        float r9323 = r9321 + r9322;
        float r9324 = d;
        float r9325 = r9323 + r9324;
        float r9326 = r9320 * r9325;
        return r9326;
}

double f_id(double a, double b, double c, double d) {
        double r9327 = a;
        double r9328 = b;
        double r9329 = c;
        double r9330 = r9328 + r9329;
        double r9331 = d;
        double r9332 = r9330 + r9331;
        double r9333 = r9327 * r9332;
        return r9333;
}


double f_of(float a, float b, float c, float d) {
        float r9334 = a;
        float r9335 = b;
        float r9336 = d;
        float r9337 = r9335 + r9336;
        float r9338 = c;
        float r9339 = r9338 * r9334;
        float r9340 = fma(r9334, r9337, r9339);
        return r9340;
}

double f_od(double a, double b, double c, double d) {
        double r9341 = a;
        double r9342 = b;
        double r9343 = d;
        double r9344 = r9342 + r9343;
        double r9345 = c;
        double r9346 = r9345 * r9341;
        double r9347 = fma(r9341, r9344, r9346);
        return r9347;
}

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 r9348, r9349, r9350, r9351, r9352, r9353, r9354;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9348);
        mpfr_init(r9349);
        mpfr_init(r9350);
        mpfr_init(r9351);
        mpfr_init(r9352);
        mpfr_init(r9353);
        mpfr_init(r9354);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r9348, a, MPFR_RNDN);
        mpfr_set_d(r9349, b, MPFR_RNDN);
        mpfr_set_d(r9350, c, MPFR_RNDN);
        mpfr_add(r9351, r9349, r9350, MPFR_RNDN);
        mpfr_set_d(r9352, d, MPFR_RNDN);
        mpfr_add(r9353, r9351, r9352, MPFR_RNDN);
        mpfr_mul(r9354, r9348, r9353, MPFR_RNDN);
        return mpfr_get_d(r9354, MPFR_RNDN);
}

static mpfr_t r9355, r9356, r9357, r9358, r9359, r9360, r9361;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9355);
        mpfr_init(r9356);
        mpfr_init(r9357);
        mpfr_init(r9358);
        mpfr_init(r9359);
        mpfr_init(r9360);
        mpfr_init(r9361);
}

double f_fm(double a, double b, double c, double d) {
        mpfr_set_d(r9355, a, MPFR_RNDN);
        mpfr_set_d(r9356, b, MPFR_RNDN);
        mpfr_set_d(r9357, d, MPFR_RNDN);
        mpfr_add(r9358, r9356, r9357, MPFR_RNDN);
        mpfr_set_d(r9359, c, MPFR_RNDN);
        mpfr_mul(r9360, r9359, r9355, MPFR_RNDN);
        mpfr_fma(r9361, r9355, r9358, r9360, MPFR_RNDN);
        return mpfr_get_d(r9361, MPFR_RNDN);
}

static mpfr_t r9362, r9363, r9364, r9365, r9366, r9367, r9368;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9362);
        mpfr_init(r9363);
        mpfr_init(r9364);
        mpfr_init(r9365);
        mpfr_init(r9366);
        mpfr_init(r9367);
        mpfr_init(r9368);
}

double f_dm(double a, double b, double c, double d) {
        mpfr_set_d(r9362, a, MPFR_RNDN);
        mpfr_set_d(r9363, b, MPFR_RNDN);
        mpfr_set_d(r9364, d, MPFR_RNDN);
        mpfr_add(r9365, r9363, r9364, MPFR_RNDN);
        mpfr_set_d(r9366, c, MPFR_RNDN);
        mpfr_mul(r9367, r9366, r9362, MPFR_RNDN);
        mpfr_fma(r9368, r9362, r9365, r9367, MPFR_RNDN);
        return mpfr_get_d(r9368, MPFR_RNDN);
}

