#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 r29322 = x;
        float r29323 = y;
        float r29324 = r29322 * r29323;
        float r29325 = z;
        float r29326 = t;
        float r29327 = r29325 * r29326;
        float r29328 = r29324 + r29327;
        return r29328;
}

double f_id(double x, double y, double z, double t) {
        double r29329 = x;
        double r29330 = y;
        double r29331 = r29329 * r29330;
        double r29332 = z;
        double r29333 = t;
        double r29334 = r29332 * r29333;
        double r29335 = r29331 + r29334;
        return r29335;
}


double f_of(float x, float y, float z, float t) {
        float r29336 = x;
        float r29337 = y;
        float r29338 = r29336 * r29337;
        float r29339 = z;
        float r29340 = t;
        float r29341 = r29339 * r29340;
        float r29342 = r29338 + r29341;
        return r29342;
}

double f_od(double x, double y, double z, double t) {
        double r29343 = x;
        double r29344 = y;
        double r29345 = r29343 * r29344;
        double r29346 = z;
        double r29347 = t;
        double r29348 = r29346 * r29347;
        double r29349 = r29345 + r29348;
        return r29349;
}

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 r29350, r29351, r29352, r29353, r29354, r29355, r29356;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29350);
        mpfr_init(r29351);
        mpfr_init(r29352);
        mpfr_init(r29353);
        mpfr_init(r29354);
        mpfr_init(r29355);
        mpfr_init(r29356);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r29350, x, MPFR_RNDN);
        mpfr_set_d(r29351, y, MPFR_RNDN);
        mpfr_mul(r29352, r29350, r29351, MPFR_RNDN);
        mpfr_set_d(r29353, z, MPFR_RNDN);
        mpfr_set_d(r29354, t, MPFR_RNDN);
        mpfr_mul(r29355, r29353, r29354, MPFR_RNDN);
        mpfr_add(r29356, r29352, r29355, MPFR_RNDN);
        return mpfr_get_d(r29356, MPFR_RNDN);
}

static mpfr_t r29357, r29358, r29359, r29360, r29361, r29362, r29363;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29357);
        mpfr_init(r29358);
        mpfr_init(r29359);
        mpfr_init(r29360);
        mpfr_init(r29361);
        mpfr_init(r29362);
        mpfr_init(r29363);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r29357, x, MPFR_RNDN);
        mpfr_set_d(r29358, y, MPFR_RNDN);
        mpfr_mul(r29359, r29357, r29358, MPFR_RNDN);
        mpfr_set_d(r29360, z, MPFR_RNDN);
        mpfr_set_d(r29361, t, MPFR_RNDN);
        mpfr_mul(r29362, r29360, r29361, MPFR_RNDN);
        mpfr_add(r29363, r29359, r29362, MPFR_RNDN);
        return mpfr_get_d(r29363, MPFR_RNDN);
}

static mpfr_t r29364, r29365, r29366, r29367, r29368, r29369, r29370;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29364);
        mpfr_init(r29365);
        mpfr_init(r29366);
        mpfr_init(r29367);
        mpfr_init(r29368);
        mpfr_init(r29369);
        mpfr_init(r29370);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r29364, x, MPFR_RNDN);
        mpfr_set_d(r29365, y, MPFR_RNDN);
        mpfr_mul(r29366, r29364, r29365, MPFR_RNDN);
        mpfr_set_d(r29367, z, MPFR_RNDN);
        mpfr_set_d(r29368, t, MPFR_RNDN);
        mpfr_mul(r29369, r29367, r29368, MPFR_RNDN);
        mpfr_add(r29370, r29366, r29369, MPFR_RNDN);
        return mpfr_get_d(r29370, MPFR_RNDN);
}

