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

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

double f_if(float x, float y, float z, float t, float a, float b) {
        float r29261 = x;
        float r29262 = y;
        float r29263 = r29261 * r29262;
        float r29264 = z;
        float r29265 = t;
        float r29266 = r29264 * r29265;
        float r29267 = r29263 + r29266;
        float r29268 = a;
        float r29269 = b;
        float r29270 = r29268 * r29269;
        float r29271 = r29267 + r29270;
        return r29271;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r29272 = x;
        double r29273 = y;
        double r29274 = r29272 * r29273;
        double r29275 = z;
        double r29276 = t;
        double r29277 = r29275 * r29276;
        double r29278 = r29274 + r29277;
        double r29279 = a;
        double r29280 = b;
        double r29281 = r29279 * r29280;
        double r29282 = r29278 + r29281;
        return r29282;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r29283 = x;
        float r29284 = y;
        float r29285 = r29283 * r29284;
        float r29286 = z;
        float r29287 = t;
        float r29288 = r29286 * r29287;
        float r29289 = r29285 + r29288;
        float r29290 = a;
        float r29291 = b;
        float r29292 = r29290 * r29291;
        float r29293 = r29289 + r29292;
        return r29293;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r29294 = x;
        double r29295 = y;
        double r29296 = r29294 * r29295;
        double r29297 = z;
        double r29298 = t;
        double r29299 = r29297 * r29298;
        double r29300 = r29296 + r29299;
        double r29301 = a;
        double r29302 = b;
        double r29303 = r29301 * r29302;
        double r29304 = r29300 + r29303;
        return r29304;
}

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 r29305, r29306, r29307, r29308, r29309, r29310, r29311, r29312, r29313, r29314, r29315;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29305);
        mpfr_init(r29306);
        mpfr_init(r29307);
        mpfr_init(r29308);
        mpfr_init(r29309);
        mpfr_init(r29310);
        mpfr_init(r29311);
        mpfr_init(r29312);
        mpfr_init(r29313);
        mpfr_init(r29314);
        mpfr_init(r29315);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29305, x, MPFR_RNDN);
        mpfr_set_d(r29306, y, MPFR_RNDN);
        mpfr_mul(r29307, r29305, r29306, MPFR_RNDN);
        mpfr_set_d(r29308, z, MPFR_RNDN);
        mpfr_set_d(r29309, t, MPFR_RNDN);
        mpfr_mul(r29310, r29308, r29309, MPFR_RNDN);
        mpfr_add(r29311, r29307, r29310, MPFR_RNDN);
        mpfr_set_d(r29312, a, MPFR_RNDN);
        mpfr_set_d(r29313, b, MPFR_RNDN);
        mpfr_mul(r29314, r29312, r29313, MPFR_RNDN);
        mpfr_add(r29315, r29311, r29314, MPFR_RNDN);
        return mpfr_get_d(r29315, MPFR_RNDN);
}

static mpfr_t r29316, r29317, r29318, r29319, r29320, r29321, r29322, r29323, r29324, r29325, r29326;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29316);
        mpfr_init(r29317);
        mpfr_init(r29318);
        mpfr_init(r29319);
        mpfr_init(r29320);
        mpfr_init(r29321);
        mpfr_init(r29322);
        mpfr_init(r29323);
        mpfr_init(r29324);
        mpfr_init(r29325);
        mpfr_init(r29326);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29316, x, MPFR_RNDN);
        mpfr_set_d(r29317, y, MPFR_RNDN);
        mpfr_mul(r29318, r29316, r29317, MPFR_RNDN);
        mpfr_set_d(r29319, z, MPFR_RNDN);
        mpfr_set_d(r29320, t, MPFR_RNDN);
        mpfr_mul(r29321, r29319, r29320, MPFR_RNDN);
        mpfr_add(r29322, r29318, r29321, MPFR_RNDN);
        mpfr_set_d(r29323, a, MPFR_RNDN);
        mpfr_set_d(r29324, b, MPFR_RNDN);
        mpfr_mul(r29325, r29323, r29324, MPFR_RNDN);
        mpfr_add(r29326, r29322, r29325, MPFR_RNDN);
        return mpfr_get_d(r29326, MPFR_RNDN);
}

static mpfr_t r29327, r29328, r29329, r29330, r29331, r29332, r29333, r29334, r29335, r29336, r29337;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29327);
        mpfr_init(r29328);
        mpfr_init(r29329);
        mpfr_init(r29330);
        mpfr_init(r29331);
        mpfr_init(r29332);
        mpfr_init(r29333);
        mpfr_init(r29334);
        mpfr_init(r29335);
        mpfr_init(r29336);
        mpfr_init(r29337);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29327, x, MPFR_RNDN);
        mpfr_set_d(r29328, y, MPFR_RNDN);
        mpfr_mul(r29329, r29327, r29328, MPFR_RNDN);
        mpfr_set_d(r29330, z, MPFR_RNDN);
        mpfr_set_d(r29331, t, MPFR_RNDN);
        mpfr_mul(r29332, r29330, r29331, MPFR_RNDN);
        mpfr_add(r29333, r29329, r29332, MPFR_RNDN);
        mpfr_set_d(r29334, a, MPFR_RNDN);
        mpfr_set_d(r29335, b, MPFR_RNDN);
        mpfr_mul(r29336, r29334, r29335, MPFR_RNDN);
        mpfr_add(r29337, r29333, r29336, MPFR_RNDN);
        return mpfr_get_d(r29337, MPFR_RNDN);
}

