#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 r29390 = x;
        float r29391 = y;
        float r29392 = r29390 * r29391;
        float r29393 = z;
        float r29394 = t;
        float r29395 = r29393 * r29394;
        float r29396 = r29392 + r29395;
        float r29397 = a;
        float r29398 = b;
        float r29399 = r29397 * r29398;
        float r29400 = r29396 + r29399;
        return r29400;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r29401 = x;
        double r29402 = y;
        double r29403 = r29401 * r29402;
        double r29404 = z;
        double r29405 = t;
        double r29406 = r29404 * r29405;
        double r29407 = r29403 + r29406;
        double r29408 = a;
        double r29409 = b;
        double r29410 = r29408 * r29409;
        double r29411 = r29407 + r29410;
        return r29411;
}


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

double f_od(double x, double y, double z, double t, double a, double b) {
        double r29423 = x;
        double r29424 = y;
        double r29425 = r29423 * r29424;
        double r29426 = z;
        double r29427 = t;
        double r29428 = r29426 * r29427;
        double r29429 = r29425 + r29428;
        double r29430 = a;
        double r29431 = b;
        double r29432 = r29430 * r29431;
        double r29433 = r29429 + r29432;
        return r29433;
}

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 r29434, r29435, r29436, r29437, r29438, r29439, r29440, r29441, r29442, r29443, r29444;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29434);
        mpfr_init(r29435);
        mpfr_init(r29436);
        mpfr_init(r29437);
        mpfr_init(r29438);
        mpfr_init(r29439);
        mpfr_init(r29440);
        mpfr_init(r29441);
        mpfr_init(r29442);
        mpfr_init(r29443);
        mpfr_init(r29444);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29434, x, MPFR_RNDN);
        mpfr_set_d(r29435, y, MPFR_RNDN);
        mpfr_mul(r29436, r29434, r29435, MPFR_RNDN);
        mpfr_set_d(r29437, z, MPFR_RNDN);
        mpfr_set_d(r29438, t, MPFR_RNDN);
        mpfr_mul(r29439, r29437, r29438, MPFR_RNDN);
        mpfr_add(r29440, r29436, r29439, MPFR_RNDN);
        mpfr_set_d(r29441, a, MPFR_RNDN);
        mpfr_set_d(r29442, b, MPFR_RNDN);
        mpfr_mul(r29443, r29441, r29442, MPFR_RNDN);
        mpfr_add(r29444, r29440, r29443, MPFR_RNDN);
        return mpfr_get_d(r29444, MPFR_RNDN);
}

static mpfr_t r29445, r29446, r29447, r29448, r29449, r29450, r29451, r29452, r29453, r29454, r29455;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29445);
        mpfr_init(r29446);
        mpfr_init(r29447);
        mpfr_init(r29448);
        mpfr_init(r29449);
        mpfr_init(r29450);
        mpfr_init(r29451);
        mpfr_init(r29452);
        mpfr_init(r29453);
        mpfr_init(r29454);
        mpfr_init(r29455);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29445, x, MPFR_RNDN);
        mpfr_set_d(r29446, y, MPFR_RNDN);
        mpfr_mul(r29447, r29445, r29446, MPFR_RNDN);
        mpfr_set_d(r29448, z, MPFR_RNDN);
        mpfr_set_d(r29449, t, MPFR_RNDN);
        mpfr_mul(r29450, r29448, r29449, MPFR_RNDN);
        mpfr_add(r29451, r29447, r29450, MPFR_RNDN);
        mpfr_set_d(r29452, a, MPFR_RNDN);
        mpfr_set_d(r29453, b, MPFR_RNDN);
        mpfr_mul(r29454, r29452, r29453, MPFR_RNDN);
        mpfr_add(r29455, r29451, r29454, MPFR_RNDN);
        return mpfr_get_d(r29455, MPFR_RNDN);
}

static mpfr_t r29456, r29457, r29458, r29459, r29460, r29461, r29462, r29463, r29464, r29465, r29466;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29456);
        mpfr_init(r29457);
        mpfr_init(r29458);
        mpfr_init(r29459);
        mpfr_init(r29460);
        mpfr_init(r29461);
        mpfr_init(r29462);
        mpfr_init(r29463);
        mpfr_init(r29464);
        mpfr_init(r29465);
        mpfr_init(r29466);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29456, x, MPFR_RNDN);
        mpfr_set_d(r29457, y, MPFR_RNDN);
        mpfr_mul(r29458, r29456, r29457, MPFR_RNDN);
        mpfr_set_d(r29459, z, MPFR_RNDN);
        mpfr_set_d(r29460, t, MPFR_RNDN);
        mpfr_mul(r29461, r29459, r29460, MPFR_RNDN);
        mpfr_add(r29462, r29458, r29461, MPFR_RNDN);
        mpfr_set_d(r29463, a, MPFR_RNDN);
        mpfr_set_d(r29464, b, MPFR_RNDN);
        mpfr_mul(r29465, r29463, r29464, MPFR_RNDN);
        mpfr_add(r29466, r29462, r29465, MPFR_RNDN);
        return mpfr_get_d(r29466, MPFR_RNDN);
}

