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

char *name = "Linear.V2:$cdot from linear-1.19.1.3, A";

double f_if(float x, float y, float z, float t) {
        float r29590 = x;
        float r29591 = y;
        float r29592 = r29590 * r29591;
        float r29593 = z;
        float r29594 = t;
        float r29595 = r29593 * r29594;
        float r29596 = r29592 + r29595;
        return r29596;
}

double f_id(double x, double y, double z, double t) {
        double r29597 = x;
        double r29598 = y;
        double r29599 = r29597 * r29598;
        double r29600 = z;
        double r29601 = t;
        double r29602 = r29600 * r29601;
        double r29603 = r29599 + r29602;
        return r29603;
}


double f_of(float x, float y, float z, float t) {
        float r29604 = x;
        float r29605 = y;
        float r29606 = r29604 * r29605;
        float r29607 = z;
        float r29608 = t;
        float r29609 = r29607 * r29608;
        float r29610 = r29606 + r29609;
        return r29610;
}

double f_od(double x, double y, double z, double t) {
        double r29611 = x;
        double r29612 = y;
        double r29613 = r29611 * r29612;
        double r29614 = z;
        double r29615 = t;
        double r29616 = r29614 * r29615;
        double r29617 = r29613 + r29616;
        return r29617;
}

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 r29618, r29619, r29620, r29621, r29622, r29623, r29624;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29618);
        mpfr_init(r29619);
        mpfr_init(r29620);
        mpfr_init(r29621);
        mpfr_init(r29622);
        mpfr_init(r29623);
        mpfr_init(r29624);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r29618, x, MPFR_RNDN);
        mpfr_set_d(r29619, y, MPFR_RNDN);
        mpfr_mul(r29620, r29618, r29619, MPFR_RNDN);
        mpfr_set_d(r29621, z, MPFR_RNDN);
        mpfr_set_d(r29622, t, MPFR_RNDN);
        mpfr_mul(r29623, r29621, r29622, MPFR_RNDN);
        mpfr_add(r29624, r29620, r29623, MPFR_RNDN);
        return mpfr_get_d(r29624, MPFR_RNDN);
}

static mpfr_t r29625, r29626, r29627, r29628, r29629, r29630, r29631;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29625);
        mpfr_init(r29626);
        mpfr_init(r29627);
        mpfr_init(r29628);
        mpfr_init(r29629);
        mpfr_init(r29630);
        mpfr_init(r29631);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r29625, x, MPFR_RNDN);
        mpfr_set_d(r29626, y, MPFR_RNDN);
        mpfr_mul(r29627, r29625, r29626, MPFR_RNDN);
        mpfr_set_d(r29628, z, MPFR_RNDN);
        mpfr_set_d(r29629, t, MPFR_RNDN);
        mpfr_mul(r29630, r29628, r29629, MPFR_RNDN);
        mpfr_add(r29631, r29627, r29630, MPFR_RNDN);
        return mpfr_get_d(r29631, MPFR_RNDN);
}

static mpfr_t r29632, r29633, r29634, r29635, r29636, r29637, r29638;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29632);
        mpfr_init(r29633);
        mpfr_init(r29634);
        mpfr_init(r29635);
        mpfr_init(r29636);
        mpfr_init(r29637);
        mpfr_init(r29638);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r29632, x, MPFR_RNDN);
        mpfr_set_d(r29633, y, MPFR_RNDN);
        mpfr_mul(r29634, r29632, r29633, MPFR_RNDN);
        mpfr_set_d(r29635, z, MPFR_RNDN);
        mpfr_set_d(r29636, t, MPFR_RNDN);
        mpfr_mul(r29637, r29635, r29636, MPFR_RNDN);
        mpfr_add(r29638, r29634, r29637, MPFR_RNDN);
        return mpfr_get_d(r29638, MPFR_RNDN);
}

