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

char *name = "Linear.V4:$cdot from linear-1.19.1.3";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r9315 = x;
        float r9316 = y;
        float r9317 = r9315 * r9316;
        float r9318 = z;
        float r9319 = t;
        float r9320 = r9318 * r9319;
        float r9321 = r9317 + r9320;
        float r9322 = a;
        float r9323 = b;
        float r9324 = r9322 * r9323;
        float r9325 = r9321 + r9324;
        float r9326 = c;
        float r9327 = i;
        float r9328 = r9326 * r9327;
        float r9329 = r9325 + r9328;
        return r9329;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9330 = x;
        double r9331 = y;
        double r9332 = r9330 * r9331;
        double r9333 = z;
        double r9334 = t;
        double r9335 = r9333 * r9334;
        double r9336 = r9332 + r9335;
        double r9337 = a;
        double r9338 = b;
        double r9339 = r9337 * r9338;
        double r9340 = r9336 + r9339;
        double r9341 = c;
        double r9342 = i;
        double r9343 = r9341 * r9342;
        double r9344 = r9340 + r9343;
        return r9344;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r9345 = b;
        float r9346 = a;
        float r9347 = z;
        float r9348 = t;
        float r9349 = r9347 * r9348;
        float r9350 = fma(r9345, r9346, r9349);
        float r9351 = i;
        float r9352 = c;
        float r9353 = y;
        float r9354 = x;
        float r9355 = r9353 * r9354;
        float r9356 = fma(r9351, r9352, r9355);
        float r9357 = r9350 + r9356;
        return r9357;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9358 = b;
        double r9359 = a;
        double r9360 = z;
        double r9361 = t;
        double r9362 = r9360 * r9361;
        double r9363 = fma(r9358, r9359, r9362);
        double r9364 = i;
        double r9365 = c;
        double r9366 = y;
        double r9367 = x;
        double r9368 = r9366 * r9367;
        double r9369 = fma(r9364, r9365, r9368);
        double r9370 = r9363 + r9369;
        return r9370;
}

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 r9371, r9372, r9373, r9374, r9375, r9376, r9377, r9378, r9379, r9380, r9381, r9382, r9383, r9384, r9385;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9371);
        mpfr_init(r9372);
        mpfr_init(r9373);
        mpfr_init(r9374);
        mpfr_init(r9375);
        mpfr_init(r9376);
        mpfr_init(r9377);
        mpfr_init(r9378);
        mpfr_init(r9379);
        mpfr_init(r9380);
        mpfr_init(r9381);
        mpfr_init(r9382);
        mpfr_init(r9383);
        mpfr_init(r9384);
        mpfr_init(r9385);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9371, x, MPFR_RNDN);
        mpfr_set_d(r9372, y, MPFR_RNDN);
        mpfr_mul(r9373, r9371, r9372, MPFR_RNDN);
        mpfr_set_d(r9374, z, MPFR_RNDN);
        mpfr_set_d(r9375, t, MPFR_RNDN);
        mpfr_mul(r9376, r9374, r9375, MPFR_RNDN);
        mpfr_add(r9377, r9373, r9376, MPFR_RNDN);
        mpfr_set_d(r9378, a, MPFR_RNDN);
        mpfr_set_d(r9379, b, MPFR_RNDN);
        mpfr_mul(r9380, r9378, r9379, MPFR_RNDN);
        mpfr_add(r9381, r9377, r9380, MPFR_RNDN);
        mpfr_set_d(r9382, c, MPFR_RNDN);
        mpfr_set_d(r9383, i, MPFR_RNDN);
        mpfr_mul(r9384, r9382, r9383, MPFR_RNDN);
        mpfr_add(r9385, r9381, r9384, MPFR_RNDN);
        return mpfr_get_d(r9385, MPFR_RNDN);
}

static mpfr_t r9386, r9387, r9388, r9389, r9390, r9391, r9392, r9393, r9394, r9395, r9396, r9397, r9398;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9386);
        mpfr_init(r9387);
        mpfr_init(r9388);
        mpfr_init(r9389);
        mpfr_init(r9390);
        mpfr_init(r9391);
        mpfr_init(r9392);
        mpfr_init(r9393);
        mpfr_init(r9394);
        mpfr_init(r9395);
        mpfr_init(r9396);
        mpfr_init(r9397);
        mpfr_init(r9398);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9386, b, MPFR_RNDN);
        mpfr_set_d(r9387, a, MPFR_RNDN);
        mpfr_set_d(r9388, z, MPFR_RNDN);
        mpfr_set_d(r9389, t, MPFR_RNDN);
        mpfr_mul(r9390, r9388, r9389, MPFR_RNDN);
        mpfr_fma(r9391, r9386, r9387, r9390, MPFR_RNDN);
        mpfr_set_d(r9392, i, MPFR_RNDN);
        mpfr_set_d(r9393, c, MPFR_RNDN);
        mpfr_set_d(r9394, y, MPFR_RNDN);
        mpfr_set_d(r9395, x, MPFR_RNDN);
        mpfr_mul(r9396, r9394, r9395, MPFR_RNDN);
        mpfr_fma(r9397, r9392, r9393, r9396, MPFR_RNDN);
        mpfr_add(r9398, r9391, r9397, MPFR_RNDN);
        return mpfr_get_d(r9398, MPFR_RNDN);
}

static mpfr_t r9399, r9400, r9401, r9402, r9403, r9404, r9405, r9406, r9407, r9408, r9409, r9410, r9411;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9399);
        mpfr_init(r9400);
        mpfr_init(r9401);
        mpfr_init(r9402);
        mpfr_init(r9403);
        mpfr_init(r9404);
        mpfr_init(r9405);
        mpfr_init(r9406);
        mpfr_init(r9407);
        mpfr_init(r9408);
        mpfr_init(r9409);
        mpfr_init(r9410);
        mpfr_init(r9411);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9399, b, MPFR_RNDN);
        mpfr_set_d(r9400, a, MPFR_RNDN);
        mpfr_set_d(r9401, z, MPFR_RNDN);
        mpfr_set_d(r9402, t, MPFR_RNDN);
        mpfr_mul(r9403, r9401, r9402, MPFR_RNDN);
        mpfr_fma(r9404, r9399, r9400, r9403, MPFR_RNDN);
        mpfr_set_d(r9405, i, MPFR_RNDN);
        mpfr_set_d(r9406, c, MPFR_RNDN);
        mpfr_set_d(r9407, y, MPFR_RNDN);
        mpfr_set_d(r9408, x, MPFR_RNDN);
        mpfr_mul(r9409, r9407, r9408, MPFR_RNDN);
        mpfr_fma(r9410, r9405, r9406, r9409, MPFR_RNDN);
        mpfr_add(r9411, r9404, r9410, MPFR_RNDN);
        return mpfr_get_d(r9411, MPFR_RNDN);
}

