#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 r29526 = x;
        float r29527 = y;
        float r29528 = r29526 * r29527;
        float r29529 = z;
        float r29530 = t;
        float r29531 = r29529 * r29530;
        float r29532 = r29528 + r29531;
        return r29532;
}

double f_id(double x, double y, double z, double t) {
        double r29533 = x;
        double r29534 = y;
        double r29535 = r29533 * r29534;
        double r29536 = z;
        double r29537 = t;
        double r29538 = r29536 * r29537;
        double r29539 = r29535 + r29538;
        return r29539;
}


double f_of(float x, float y, float z, float t) {
        float r29540 = x;
        float r29541 = y;
        float r29542 = r29540 * r29541;
        float r29543 = z;
        float r29544 = t;
        float r29545 = r29543 * r29544;
        float r29546 = r29542 + r29545;
        return r29546;
}

double f_od(double x, double y, double z, double t) {
        double r29547 = x;
        double r29548 = y;
        double r29549 = r29547 * r29548;
        double r29550 = z;
        double r29551 = t;
        double r29552 = r29550 * r29551;
        double r29553 = r29549 + r29552;
        return r29553;
}

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 r29554, r29555, r29556, r29557, r29558, r29559, r29560;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29554);
        mpfr_init(r29555);
        mpfr_init(r29556);
        mpfr_init(r29557);
        mpfr_init(r29558);
        mpfr_init(r29559);
        mpfr_init(r29560);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r29554, x, MPFR_RNDN);
        mpfr_set_d(r29555, y, MPFR_RNDN);
        mpfr_mul(r29556, r29554, r29555, MPFR_RNDN);
        mpfr_set_d(r29557, z, MPFR_RNDN);
        mpfr_set_d(r29558, t, MPFR_RNDN);
        mpfr_mul(r29559, r29557, r29558, MPFR_RNDN);
        mpfr_add(r29560, r29556, r29559, MPFR_RNDN);
        return mpfr_get_d(r29560, MPFR_RNDN);
}

static mpfr_t r29561, r29562, r29563, r29564, r29565, r29566, r29567;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29561);
        mpfr_init(r29562);
        mpfr_init(r29563);
        mpfr_init(r29564);
        mpfr_init(r29565);
        mpfr_init(r29566);
        mpfr_init(r29567);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r29561, x, MPFR_RNDN);
        mpfr_set_d(r29562, y, MPFR_RNDN);
        mpfr_mul(r29563, r29561, r29562, MPFR_RNDN);
        mpfr_set_d(r29564, z, MPFR_RNDN);
        mpfr_set_d(r29565, t, MPFR_RNDN);
        mpfr_mul(r29566, r29564, r29565, MPFR_RNDN);
        mpfr_add(r29567, r29563, r29566, MPFR_RNDN);
        return mpfr_get_d(r29567, MPFR_RNDN);
}

static mpfr_t r29568, r29569, r29570, r29571, r29572, r29573, r29574;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29568);
        mpfr_init(r29569);
        mpfr_init(r29570);
        mpfr_init(r29571);
        mpfr_init(r29572);
        mpfr_init(r29573);
        mpfr_init(r29574);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r29568, x, MPFR_RNDN);
        mpfr_set_d(r29569, y, MPFR_RNDN);
        mpfr_mul(r29570, r29568, r29569, MPFR_RNDN);
        mpfr_set_d(r29571, z, MPFR_RNDN);
        mpfr_set_d(r29572, t, MPFR_RNDN);
        mpfr_mul(r29573, r29571, r29572, MPFR_RNDN);
        mpfr_add(r29574, r29570, r29573, MPFR_RNDN);
        return mpfr_get_d(r29574, MPFR_RNDN);
}

