#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 r29513 = x;
        float r29514 = y;
        float r29515 = r29513 * r29514;
        float r29516 = z;
        float r29517 = t;
        float r29518 = r29516 * r29517;
        float r29519 = r29515 + r29518;
        float r29520 = a;
        float r29521 = b;
        float r29522 = r29520 * r29521;
        float r29523 = r29519 + r29522;
        return r29523;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r29524 = x;
        double r29525 = y;
        double r29526 = r29524 * r29525;
        double r29527 = z;
        double r29528 = t;
        double r29529 = r29527 * r29528;
        double r29530 = r29526 + r29529;
        double r29531 = a;
        double r29532 = b;
        double r29533 = r29531 * r29532;
        double r29534 = r29530 + r29533;
        return r29534;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r29535 = x;
        float r29536 = y;
        float r29537 = r29535 * r29536;
        float r29538 = z;
        float r29539 = t;
        float r29540 = r29538 * r29539;
        float r29541 = r29537 + r29540;
        float r29542 = a;
        float r29543 = b;
        float r29544 = r29542 * r29543;
        float r29545 = r29541 + r29544;
        return r29545;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r29546 = x;
        double r29547 = y;
        double r29548 = r29546 * r29547;
        double r29549 = z;
        double r29550 = t;
        double r29551 = r29549 * r29550;
        double r29552 = r29548 + r29551;
        double r29553 = a;
        double r29554 = b;
        double r29555 = r29553 * r29554;
        double r29556 = r29552 + r29555;
        return r29556;
}

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 r29557, r29558, r29559, r29560, r29561, r29562, r29563, r29564, r29565, r29566, r29567;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29557);
        mpfr_init(r29558);
        mpfr_init(r29559);
        mpfr_init(r29560);
        mpfr_init(r29561);
        mpfr_init(r29562);
        mpfr_init(r29563);
        mpfr_init(r29564);
        mpfr_init(r29565);
        mpfr_init(r29566);
        mpfr_init(r29567);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29557, x, MPFR_RNDN);
        mpfr_set_d(r29558, y, MPFR_RNDN);
        mpfr_mul(r29559, r29557, r29558, MPFR_RNDN);
        mpfr_set_d(r29560, z, MPFR_RNDN);
        mpfr_set_d(r29561, t, MPFR_RNDN);
        mpfr_mul(r29562, r29560, r29561, MPFR_RNDN);
        mpfr_add(r29563, r29559, r29562, MPFR_RNDN);
        mpfr_set_d(r29564, a, MPFR_RNDN);
        mpfr_set_d(r29565, b, MPFR_RNDN);
        mpfr_mul(r29566, r29564, r29565, MPFR_RNDN);
        mpfr_add(r29567, r29563, r29566, MPFR_RNDN);
        return mpfr_get_d(r29567, MPFR_RNDN);
}

static mpfr_t r29568, r29569, r29570, r29571, r29572, r29573, r29574, r29575, r29576, r29577, r29578;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29568);
        mpfr_init(r29569);
        mpfr_init(r29570);
        mpfr_init(r29571);
        mpfr_init(r29572);
        mpfr_init(r29573);
        mpfr_init(r29574);
        mpfr_init(r29575);
        mpfr_init(r29576);
        mpfr_init(r29577);
        mpfr_init(r29578);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29568, x, MPFR_RNDN);
        mpfr_set_d(r29569, y, MPFR_RNDN);
        mpfr_mul(r29570, r29568, r29569, MPFR_RNDN);
        mpfr_set_d(r29571, z, MPFR_RNDN);
        mpfr_set_d(r29572, t, MPFR_RNDN);
        mpfr_mul(r29573, r29571, r29572, MPFR_RNDN);
        mpfr_add(r29574, r29570, r29573, MPFR_RNDN);
        mpfr_set_d(r29575, a, MPFR_RNDN);
        mpfr_set_d(r29576, b, MPFR_RNDN);
        mpfr_mul(r29577, r29575, r29576, MPFR_RNDN);
        mpfr_add(r29578, r29574, r29577, MPFR_RNDN);
        return mpfr_get_d(r29578, MPFR_RNDN);
}

static mpfr_t r29579, r29580, r29581, r29582, r29583, r29584, r29585, r29586, r29587, r29588, r29589;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29579);
        mpfr_init(r29580);
        mpfr_init(r29581);
        mpfr_init(r29582);
        mpfr_init(r29583);
        mpfr_init(r29584);
        mpfr_init(r29585);
        mpfr_init(r29586);
        mpfr_init(r29587);
        mpfr_init(r29588);
        mpfr_init(r29589);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r29579, x, MPFR_RNDN);
        mpfr_set_d(r29580, y, MPFR_RNDN);
        mpfr_mul(r29581, r29579, r29580, MPFR_RNDN);
        mpfr_set_d(r29582, z, MPFR_RNDN);
        mpfr_set_d(r29583, t, MPFR_RNDN);
        mpfr_mul(r29584, r29582, r29583, MPFR_RNDN);
        mpfr_add(r29585, r29581, r29584, MPFR_RNDN);
        mpfr_set_d(r29586, a, MPFR_RNDN);
        mpfr_set_d(r29587, b, MPFR_RNDN);
        mpfr_mul(r29588, r29586, r29587, MPFR_RNDN);
        mpfr_add(r29589, r29585, r29588, MPFR_RNDN);
        return mpfr_get_d(r29589, MPFR_RNDN);
}

