#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 r29449 = x;
        float r29450 = y;
        float r29451 = r29449 * r29450;
        float r29452 = z;
        float r29453 = t;
        float r29454 = r29452 * r29453;
        float r29455 = r29451 + r29454;
        float r29456 = a;
        float r29457 = b;
        float r29458 = r29456 * r29457;
        float r29459 = r29455 + r29458;
        return r29459;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r29460 = x;
        double r29461 = y;
        double r29462 = r29460 * r29461;
        double r29463 = z;
        double r29464 = t;
        double r29465 = r29463 * r29464;
        double r29466 = r29462 + r29465;
        double r29467 = a;
        double r29468 = b;
        double r29469 = r29467 * r29468;
        double r29470 = r29466 + r29469;
        return r29470;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r29471 = x;
        float r29472 = y;
        float r29473 = r29471 * r29472;
        float r29474 = z;
        float r29475 = t;
        float r29476 = r29474 * r29475;
        float r29477 = r29473 + r29476;
        float r29478 = a;
        float r29479 = b;
        float r29480 = r29478 * r29479;
        float r29481 = r29477 + r29480;
        return r29481;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r29482 = x;
        double r29483 = y;
        double r29484 = r29482 * r29483;
        double r29485 = z;
        double r29486 = t;
        double r29487 = r29485 * r29486;
        double r29488 = r29484 + r29487;
        double r29489 = a;
        double r29490 = b;
        double r29491 = r29489 * r29490;
        double r29492 = r29488 + r29491;
        return r29492;
}

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

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

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

static mpfr_t r29504, r29505, r29506, r29507, r29508, r29509, r29510, r29511, r29512, r29513, r29514;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29504);
        mpfr_init(r29505);
        mpfr_init(r29506);
        mpfr_init(r29507);
        mpfr_init(r29508);
        mpfr_init(r29509);
        mpfr_init(r29510);
        mpfr_init(r29511);
        mpfr_init(r29512);
        mpfr_init(r29513);
        mpfr_init(r29514);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29504, x, MPFR_RNDN);
        mpfr_set_d(r29505, y, MPFR_RNDN);
        mpfr_mul(r29506, r29504, r29505, MPFR_RNDN);
        mpfr_set_d(r29507, z, MPFR_RNDN);
        mpfr_set_d(r29508, t, MPFR_RNDN);
        mpfr_mul(r29509, r29507, r29508, MPFR_RNDN);
        mpfr_add(r29510, r29506, r29509, MPFR_RNDN);
        mpfr_set_d(r29511, a, MPFR_RNDN);
        mpfr_set_d(r29512, b, MPFR_RNDN);
        mpfr_mul(r29513, r29511, r29512, MPFR_RNDN);
        mpfr_add(r29514, r29510, r29513, MPFR_RNDN);
        return mpfr_get_d(r29514, MPFR_RNDN);
}

static mpfr_t r29515, r29516, r29517, r29518, r29519, r29520, r29521, r29522, r29523, r29524, r29525;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29515);
        mpfr_init(r29516);
        mpfr_init(r29517);
        mpfr_init(r29518);
        mpfr_init(r29519);
        mpfr_init(r29520);
        mpfr_init(r29521);
        mpfr_init(r29522);
        mpfr_init(r29523);
        mpfr_init(r29524);
        mpfr_init(r29525);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29515, x, MPFR_RNDN);
        mpfr_set_d(r29516, y, MPFR_RNDN);
        mpfr_mul(r29517, r29515, r29516, MPFR_RNDN);
        mpfr_set_d(r29518, z, MPFR_RNDN);
        mpfr_set_d(r29519, t, MPFR_RNDN);
        mpfr_mul(r29520, r29518, r29519, MPFR_RNDN);
        mpfr_add(r29521, r29517, r29520, MPFR_RNDN);
        mpfr_set_d(r29522, a, MPFR_RNDN);
        mpfr_set_d(r29523, b, MPFR_RNDN);
        mpfr_mul(r29524, r29522, r29523, MPFR_RNDN);
        mpfr_add(r29525, r29521, r29524, MPFR_RNDN);
        return mpfr_get_d(r29525, MPFR_RNDN);
}

