#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 r10101 = x;
        float r10102 = y;
        float r10103 = r10101 * r10102;
        float r10104 = z;
        float r10105 = t;
        float r10106 = r10104 * r10105;
        float r10107 = r10103 + r10106;
        float r10108 = a;
        float r10109 = b;
        float r10110 = r10108 * r10109;
        float r10111 = r10107 + r10110;
        float r10112 = c;
        float r10113 = i;
        float r10114 = r10112 * r10113;
        float r10115 = r10111 + r10114;
        return r10115;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r10116 = x;
        double r10117 = y;
        double r10118 = r10116 * r10117;
        double r10119 = z;
        double r10120 = t;
        double r10121 = r10119 * r10120;
        double r10122 = r10118 + r10121;
        double r10123 = a;
        double r10124 = b;
        double r10125 = r10123 * r10124;
        double r10126 = r10122 + r10125;
        double r10127 = c;
        double r10128 = i;
        double r10129 = r10127 * r10128;
        double r10130 = r10126 + r10129;
        return r10130;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r10131 = x;
        float r10132 = y;
        float r10133 = z;
        float r10134 = t;
        float r10135 = r10133 * r10134;
        float r10136 = fma(r10131, r10132, r10135);
        float r10137 = a;
        float r10138 = b;
        float r10139 = r10137 * r10138;
        float r10140 = r10136 + r10139;
        float r10141 = c;
        float r10142 = i;
        float r10143 = r10141 * r10142;
        float r10144 = r10140 + r10143;
        return r10144;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r10145 = x;
        double r10146 = y;
        double r10147 = z;
        double r10148 = t;
        double r10149 = r10147 * r10148;
        double r10150 = fma(r10145, r10146, r10149);
        double r10151 = a;
        double r10152 = b;
        double r10153 = r10151 * r10152;
        double r10154 = r10150 + r10153;
        double r10155 = c;
        double r10156 = i;
        double r10157 = r10155 * r10156;
        double r10158 = r10154 + r10157;
        return r10158;
}

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 r10159, r10160, r10161, r10162, r10163, r10164, r10165, r10166, r10167, r10168, r10169, r10170, r10171, r10172, r10173;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r10159);
        mpfr_init(r10160);
        mpfr_init(r10161);
        mpfr_init(r10162);
        mpfr_init(r10163);
        mpfr_init(r10164);
        mpfr_init(r10165);
        mpfr_init(r10166);
        mpfr_init(r10167);
        mpfr_init(r10168);
        mpfr_init(r10169);
        mpfr_init(r10170);
        mpfr_init(r10171);
        mpfr_init(r10172);
        mpfr_init(r10173);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r10159, x, MPFR_RNDN);
        mpfr_set_d(r10160, y, MPFR_RNDN);
        mpfr_mul(r10161, r10159, r10160, MPFR_RNDN);
        mpfr_set_d(r10162, z, MPFR_RNDN);
        mpfr_set_d(r10163, t, MPFR_RNDN);
        mpfr_mul(r10164, r10162, r10163, MPFR_RNDN);
        mpfr_add(r10165, r10161, r10164, MPFR_RNDN);
        mpfr_set_d(r10166, a, MPFR_RNDN);
        mpfr_set_d(r10167, b, MPFR_RNDN);
        mpfr_mul(r10168, r10166, r10167, MPFR_RNDN);
        mpfr_add(r10169, r10165, r10168, MPFR_RNDN);
        mpfr_set_d(r10170, c, MPFR_RNDN);
        mpfr_set_d(r10171, i, MPFR_RNDN);
        mpfr_mul(r10172, r10170, r10171, MPFR_RNDN);
        mpfr_add(r10173, r10169, r10172, MPFR_RNDN);
        return mpfr_get_d(r10173, MPFR_RNDN);
}

static mpfr_t r10174, r10175, r10176, r10177, r10178, r10179, r10180, r10181, r10182, r10183, r10184, r10185, r10186, r10187;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10174);
        mpfr_init(r10175);
        mpfr_init(r10176);
        mpfr_init(r10177);
        mpfr_init(r10178);
        mpfr_init(r10179);
        mpfr_init(r10180);
        mpfr_init(r10181);
        mpfr_init(r10182);
        mpfr_init(r10183);
        mpfr_init(r10184);
        mpfr_init(r10185);
        mpfr_init(r10186);
        mpfr_init(r10187);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r10174, x, MPFR_RNDN);
        mpfr_set_d(r10175, y, MPFR_RNDN);
        mpfr_set_d(r10176, z, MPFR_RNDN);
        mpfr_set_d(r10177, t, MPFR_RNDN);
        mpfr_mul(r10178, r10176, r10177, MPFR_RNDN);
        mpfr_fma(r10179, r10174, r10175, r10178, MPFR_RNDN);
        mpfr_set_d(r10180, a, MPFR_RNDN);
        mpfr_set_d(r10181, b, MPFR_RNDN);
        mpfr_mul(r10182, r10180, r10181, MPFR_RNDN);
        mpfr_add(r10183, r10179, r10182, MPFR_RNDN);
        mpfr_set_d(r10184, c, MPFR_RNDN);
        mpfr_set_d(r10185, i, MPFR_RNDN);
        mpfr_mul(r10186, r10184, r10185, MPFR_RNDN);
        mpfr_add(r10187, r10183, r10186, MPFR_RNDN);
        return mpfr_get_d(r10187, MPFR_RNDN);
}

static mpfr_t r10188, r10189, r10190, r10191, r10192, r10193, r10194, r10195, r10196, r10197, r10198, r10199, r10200, r10201;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10188);
        mpfr_init(r10189);
        mpfr_init(r10190);
        mpfr_init(r10191);
        mpfr_init(r10192);
        mpfr_init(r10193);
        mpfr_init(r10194);
        mpfr_init(r10195);
        mpfr_init(r10196);
        mpfr_init(r10197);
        mpfr_init(r10198);
        mpfr_init(r10199);
        mpfr_init(r10200);
        mpfr_init(r10201);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r10188, x, MPFR_RNDN);
        mpfr_set_d(r10189, y, MPFR_RNDN);
        mpfr_set_d(r10190, z, MPFR_RNDN);
        mpfr_set_d(r10191, t, MPFR_RNDN);
        mpfr_mul(r10192, r10190, r10191, MPFR_RNDN);
        mpfr_fma(r10193, r10188, r10189, r10192, MPFR_RNDN);
        mpfr_set_d(r10194, a, MPFR_RNDN);
        mpfr_set_d(r10195, b, MPFR_RNDN);
        mpfr_mul(r10196, r10194, r10195, MPFR_RNDN);
        mpfr_add(r10197, r10193, r10196, MPFR_RNDN);
        mpfr_set_d(r10198, c, MPFR_RNDN);
        mpfr_set_d(r10199, i, MPFR_RNDN);
        mpfr_mul(r10200, r10198, r10199, MPFR_RNDN);
        mpfr_add(r10201, r10197, r10200, MPFR_RNDN);
        return mpfr_get_d(r10201, MPFR_RNDN);
}

