#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 r29398 = x;
        float r29399 = y;
        float r29400 = r29398 * r29399;
        float r29401 = z;
        float r29402 = t;
        float r29403 = r29401 * r29402;
        float r29404 = r29400 + r29403;
        return r29404;
}

double f_id(double x, double y, double z, double t) {
        double r29405 = x;
        double r29406 = y;
        double r29407 = r29405 * r29406;
        double r29408 = z;
        double r29409 = t;
        double r29410 = r29408 * r29409;
        double r29411 = r29407 + r29410;
        return r29411;
}


double f_of(float x, float y, float z, float t) {
        float r29412 = x;
        float r29413 = y;
        float r29414 = r29412 * r29413;
        float r29415 = z;
        float r29416 = t;
        float r29417 = r29415 * r29416;
        float r29418 = r29414 + r29417;
        return r29418;
}

double f_od(double x, double y, double z, double t) {
        double r29419 = x;
        double r29420 = y;
        double r29421 = r29419 * r29420;
        double r29422 = z;
        double r29423 = t;
        double r29424 = r29422 * r29423;
        double r29425 = r29421 + r29424;
        return r29425;
}

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 r29426, r29427, r29428, r29429, r29430, r29431, r29432;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29426);
        mpfr_init(r29427);
        mpfr_init(r29428);
        mpfr_init(r29429);
        mpfr_init(r29430);
        mpfr_init(r29431);
        mpfr_init(r29432);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r29426, x, MPFR_RNDN);
        mpfr_set_d(r29427, y, MPFR_RNDN);
        mpfr_mul(r29428, r29426, r29427, MPFR_RNDN);
        mpfr_set_d(r29429, z, MPFR_RNDN);
        mpfr_set_d(r29430, t, MPFR_RNDN);
        mpfr_mul(r29431, r29429, r29430, MPFR_RNDN);
        mpfr_add(r29432, r29428, r29431, MPFR_RNDN);
        return mpfr_get_d(r29432, MPFR_RNDN);
}

static mpfr_t r29433, r29434, r29435, r29436, r29437, r29438, r29439;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29433);
        mpfr_init(r29434);
        mpfr_init(r29435);
        mpfr_init(r29436);
        mpfr_init(r29437);
        mpfr_init(r29438);
        mpfr_init(r29439);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r29433, x, MPFR_RNDN);
        mpfr_set_d(r29434, y, MPFR_RNDN);
        mpfr_mul(r29435, r29433, r29434, MPFR_RNDN);
        mpfr_set_d(r29436, z, MPFR_RNDN);
        mpfr_set_d(r29437, t, MPFR_RNDN);
        mpfr_mul(r29438, r29436, r29437, MPFR_RNDN);
        mpfr_add(r29439, r29435, r29438, MPFR_RNDN);
        return mpfr_get_d(r29439, MPFR_RNDN);
}

static mpfr_t r29440, r29441, r29442, r29443, r29444, r29445, r29446;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29440);
        mpfr_init(r29441);
        mpfr_init(r29442);
        mpfr_init(r29443);
        mpfr_init(r29444);
        mpfr_init(r29445);
        mpfr_init(r29446);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r29440, x, MPFR_RNDN);
        mpfr_set_d(r29441, y, MPFR_RNDN);
        mpfr_mul(r29442, r29440, r29441, MPFR_RNDN);
        mpfr_set_d(r29443, z, MPFR_RNDN);
        mpfr_set_d(r29444, t, MPFR_RNDN);
        mpfr_mul(r29445, r29443, r29444, MPFR_RNDN);
        mpfr_add(r29446, r29442, r29445, MPFR_RNDN);
        return mpfr_get_d(r29446, MPFR_RNDN);
}

