#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 r29245 = x;
        float r29246 = y;
        float r29247 = r29245 * r29246;
        float r29248 = z;
        float r29249 = t;
        float r29250 = r29248 * r29249;
        float r29251 = r29247 + r29250;
        float r29252 = a;
        float r29253 = b;
        float r29254 = r29252 * r29253;
        float r29255 = r29251 + r29254;
        return r29255;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r29256 = x;
        double r29257 = y;
        double r29258 = r29256 * r29257;
        double r29259 = z;
        double r29260 = t;
        double r29261 = r29259 * r29260;
        double r29262 = r29258 + r29261;
        double r29263 = a;
        double r29264 = b;
        double r29265 = r29263 * r29264;
        double r29266 = r29262 + r29265;
        return r29266;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r29267 = x;
        float r29268 = y;
        float r29269 = r29267 * r29268;
        float r29270 = z;
        float r29271 = t;
        float r29272 = r29270 * r29271;
        float r29273 = r29269 + r29272;
        float r29274 = a;
        float r29275 = b;
        float r29276 = r29274 * r29275;
        float r29277 = r29273 + r29276;
        return r29277;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r29278 = x;
        double r29279 = y;
        double r29280 = r29278 * r29279;
        double r29281 = z;
        double r29282 = t;
        double r29283 = r29281 * r29282;
        double r29284 = r29280 + r29283;
        double r29285 = a;
        double r29286 = b;
        double r29287 = r29285 * r29286;
        double r29288 = r29284 + r29287;
        return r29288;
}

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 r29289, r29290, r29291, r29292, r29293, r29294, r29295, r29296, r29297, r29298, r29299;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29289);
        mpfr_init(r29290);
        mpfr_init(r29291);
        mpfr_init(r29292);
        mpfr_init(r29293);
        mpfr_init(r29294);
        mpfr_init(r29295);
        mpfr_init(r29296);
        mpfr_init(r29297);
        mpfr_init(r29298);
        mpfr_init(r29299);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29289, x, MPFR_RNDN);
        mpfr_set_d(r29290, y, MPFR_RNDN);
        mpfr_mul(r29291, r29289, r29290, MPFR_RNDN);
        mpfr_set_d(r29292, z, MPFR_RNDN);
        mpfr_set_d(r29293, t, MPFR_RNDN);
        mpfr_mul(r29294, r29292, r29293, MPFR_RNDN);
        mpfr_add(r29295, r29291, r29294, MPFR_RNDN);
        mpfr_set_d(r29296, a, MPFR_RNDN);
        mpfr_set_d(r29297, b, MPFR_RNDN);
        mpfr_mul(r29298, r29296, r29297, MPFR_RNDN);
        mpfr_add(r29299, r29295, r29298, MPFR_RNDN);
        return mpfr_get_d(r29299, MPFR_RNDN);
}

static mpfr_t r29300, r29301, r29302, r29303, r29304, r29305, r29306, r29307, r29308, r29309, r29310;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29300);
        mpfr_init(r29301);
        mpfr_init(r29302);
        mpfr_init(r29303);
        mpfr_init(r29304);
        mpfr_init(r29305);
        mpfr_init(r29306);
        mpfr_init(r29307);
        mpfr_init(r29308);
        mpfr_init(r29309);
        mpfr_init(r29310);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29300, x, MPFR_RNDN);
        mpfr_set_d(r29301, y, MPFR_RNDN);
        mpfr_mul(r29302, r29300, r29301, MPFR_RNDN);
        mpfr_set_d(r29303, z, MPFR_RNDN);
        mpfr_set_d(r29304, t, MPFR_RNDN);
        mpfr_mul(r29305, r29303, r29304, MPFR_RNDN);
        mpfr_add(r29306, r29302, r29305, MPFR_RNDN);
        mpfr_set_d(r29307, a, MPFR_RNDN);
        mpfr_set_d(r29308, b, MPFR_RNDN);
        mpfr_mul(r29309, r29307, r29308, MPFR_RNDN);
        mpfr_add(r29310, r29306, r29309, MPFR_RNDN);
        return mpfr_get_d(r29310, MPFR_RNDN);
}

static mpfr_t r29311, r29312, r29313, r29314, r29315, r29316, r29317, r29318, r29319, r29320, r29321;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29311);
        mpfr_init(r29312);
        mpfr_init(r29313);
        mpfr_init(r29314);
        mpfr_init(r29315);
        mpfr_init(r29316);
        mpfr_init(r29317);
        mpfr_init(r29318);
        mpfr_init(r29319);
        mpfr_init(r29320);
        mpfr_init(r29321);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29311, x, MPFR_RNDN);
        mpfr_set_d(r29312, y, MPFR_RNDN);
        mpfr_mul(r29313, r29311, r29312, MPFR_RNDN);
        mpfr_set_d(r29314, z, MPFR_RNDN);
        mpfr_set_d(r29315, t, MPFR_RNDN);
        mpfr_mul(r29316, r29314, r29315, MPFR_RNDN);
        mpfr_add(r29317, r29313, r29316, MPFR_RNDN);
        mpfr_set_d(r29318, a, MPFR_RNDN);
        mpfr_set_d(r29319, b, MPFR_RNDN);
        mpfr_mul(r29320, r29318, r29319, MPFR_RNDN);
        mpfr_add(r29321, r29317, r29320, MPFR_RNDN);
        return mpfr_get_d(r29321, MPFR_RNDN);
}

