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

char *name = "Linear.V2:$cdot from linear-1.19.1.3, A";

double f_if(float x, float y, float z, float t) {
        float r43862 = x;
        float r43863 = y;
        float r43864 = r43862 * r43863;
        float r43865 = z;
        float r43866 = t;
        float r43867 = r43865 * r43866;
        float r43868 = r43864 + r43867;
        return r43868;
}

double f_id(double x, double y, double z, double t) {
        double r43869 = x;
        double r43870 = y;
        double r43871 = r43869 * r43870;
        double r43872 = z;
        double r43873 = t;
        double r43874 = r43872 * r43873;
        double r43875 = r43871 + r43874;
        return r43875;
}


double f_of(float x, float y, float z, float t) {
        float r43876 = x;
        float r43877 = y;
        float r43878 = r43876 * r43877;
        float r43879 = z;
        float r43880 = t;
        float r43881 = r43879 * r43880;
        float r43882 = r43878 + r43881;
        return r43882;
}

double f_od(double x, double y, double z, double t) {
        double r43883 = x;
        double r43884 = y;
        double r43885 = r43883 * r43884;
        double r43886 = z;
        double r43887 = t;
        double r43888 = r43886 * r43887;
        double r43889 = r43885 + r43888;
        return r43889;
}

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 r43890, r43891, r43892, r43893, r43894, r43895, r43896;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r43890);
        mpfr_init(r43891);
        mpfr_init(r43892);
        mpfr_init(r43893);
        mpfr_init(r43894);
        mpfr_init(r43895);
        mpfr_init(r43896);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r43890, x, MPFR_RNDN);
        mpfr_set_d(r43891, y, MPFR_RNDN);
        mpfr_mul(r43892, r43890, r43891, MPFR_RNDN);
        mpfr_set_d(r43893, z, MPFR_RNDN);
        mpfr_set_d(r43894, t, MPFR_RNDN);
        mpfr_mul(r43895, r43893, r43894, MPFR_RNDN);
        mpfr_add(r43896, r43892, r43895, MPFR_RNDN);
        return mpfr_get_d(r43896, MPFR_RNDN);
}

static mpfr_t r43897, r43898, r43899, r43900, r43901, r43902, r43903;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r43897);
        mpfr_init(r43898);
        mpfr_init(r43899);
        mpfr_init(r43900);
        mpfr_init(r43901);
        mpfr_init(r43902);
        mpfr_init(r43903);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r43897, x, MPFR_RNDN);
        mpfr_set_d(r43898, y, MPFR_RNDN);
        mpfr_mul(r43899, r43897, r43898, MPFR_RNDN);
        mpfr_set_d(r43900, z, MPFR_RNDN);
        mpfr_set_d(r43901, t, MPFR_RNDN);
        mpfr_mul(r43902, r43900, r43901, MPFR_RNDN);
        mpfr_add(r43903, r43899, r43902, MPFR_RNDN);
        return mpfr_get_d(r43903, MPFR_RNDN);
}

static mpfr_t r43904, r43905, r43906, r43907, r43908, r43909, r43910;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r43904);
        mpfr_init(r43905);
        mpfr_init(r43906);
        mpfr_init(r43907);
        mpfr_init(r43908);
        mpfr_init(r43909);
        mpfr_init(r43910);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r43904, x, MPFR_RNDN);
        mpfr_set_d(r43905, y, MPFR_RNDN);
        mpfr_mul(r43906, r43904, r43905, MPFR_RNDN);
        mpfr_set_d(r43907, z, MPFR_RNDN);
        mpfr_set_d(r43908, t, MPFR_RNDN);
        mpfr_mul(r43909, r43907, r43908, MPFR_RNDN);
        mpfr_add(r43910, r43906, r43909, MPFR_RNDN);
        return mpfr_get_d(r43910, MPFR_RNDN);
}

