#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 r29467 = x;
        float r29468 = y;
        float r29469 = r29467 * r29468;
        float r29470 = z;
        float r29471 = t;
        float r29472 = r29470 * r29471;
        float r29473 = r29469 + r29472;
        return r29473;
}

double f_id(double x, double y, double z, double t) {
        double r29474 = x;
        double r29475 = y;
        double r29476 = r29474 * r29475;
        double r29477 = z;
        double r29478 = t;
        double r29479 = r29477 * r29478;
        double r29480 = r29476 + r29479;
        return r29480;
}


double f_of(float x, float y, float z, float t) {
        float r29481 = x;
        float r29482 = y;
        float r29483 = r29481 * r29482;
        float r29484 = z;
        float r29485 = t;
        float r29486 = r29484 * r29485;
        float r29487 = r29483 + r29486;
        return r29487;
}

double f_od(double x, double y, double z, double t) {
        double r29488 = x;
        double r29489 = y;
        double r29490 = r29488 * r29489;
        double r29491 = z;
        double r29492 = t;
        double r29493 = r29491 * r29492;
        double r29494 = r29490 + r29493;
        return r29494;
}

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 r29495, r29496, r29497, r29498, r29499, r29500, r29501;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29495);
        mpfr_init(r29496);
        mpfr_init(r29497);
        mpfr_init(r29498);
        mpfr_init(r29499);
        mpfr_init(r29500);
        mpfr_init(r29501);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r29495, x, MPFR_RNDN);
        mpfr_set_d(r29496, y, MPFR_RNDN);
        mpfr_mul(r29497, r29495, r29496, MPFR_RNDN);
        mpfr_set_d(r29498, z, MPFR_RNDN);
        mpfr_set_d(r29499, t, MPFR_RNDN);
        mpfr_mul(r29500, r29498, r29499, MPFR_RNDN);
        mpfr_add(r29501, r29497, r29500, MPFR_RNDN);
        return mpfr_get_d(r29501, MPFR_RNDN);
}

static mpfr_t r29502, r29503, r29504, r29505, r29506, r29507, r29508;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29502);
        mpfr_init(r29503);
        mpfr_init(r29504);
        mpfr_init(r29505);
        mpfr_init(r29506);
        mpfr_init(r29507);
        mpfr_init(r29508);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r29502, x, MPFR_RNDN);
        mpfr_set_d(r29503, y, MPFR_RNDN);
        mpfr_mul(r29504, r29502, r29503, MPFR_RNDN);
        mpfr_set_d(r29505, z, MPFR_RNDN);
        mpfr_set_d(r29506, t, MPFR_RNDN);
        mpfr_mul(r29507, r29505, r29506, MPFR_RNDN);
        mpfr_add(r29508, r29504, r29507, MPFR_RNDN);
        return mpfr_get_d(r29508, MPFR_RNDN);
}

static mpfr_t r29509, r29510, r29511, r29512, r29513, r29514, r29515;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29509);
        mpfr_init(r29510);
        mpfr_init(r29511);
        mpfr_init(r29512);
        mpfr_init(r29513);
        mpfr_init(r29514);
        mpfr_init(r29515);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r29509, x, MPFR_RNDN);
        mpfr_set_d(r29510, y, MPFR_RNDN);
        mpfr_mul(r29511, r29509, r29510, MPFR_RNDN);
        mpfr_set_d(r29512, z, MPFR_RNDN);
        mpfr_set_d(r29513, t, MPFR_RNDN);
        mpfr_mul(r29514, r29512, r29513, MPFR_RNDN);
        mpfr_add(r29515, r29511, r29514, MPFR_RNDN);
        return mpfr_get_d(r29515, MPFR_RNDN);
}

