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

char *name = "Linear.Matrix:fromQuaternion from linear-1.19.1.3, B";

double f_if(float x, float y) {
        float r47270 = 2.0;
        float r47271 = x;
        float r47272 = r47271 * r47271;
        float r47273 = y;
        float r47274 = r47271 * r47273;
        float r47275 = r47272 + r47274;
        float r47276 = r47270 * r47275;
        return r47276;
}

double f_id(double x, double y) {
        double r47277 = 2.0;
        double r47278 = x;
        double r47279 = r47278 * r47278;
        double r47280 = y;
        double r47281 = r47278 * r47280;
        double r47282 = r47279 + r47281;
        double r47283 = r47277 * r47282;
        return r47283;
}


double f_of(float x, float y) {
        float r47284 = 2.0;
        float r47285 = x;
        float r47286 = r47285 * r47285;
        float r47287 = y;
        float r47288 = r47285 * r47287;
        float r47289 = r47286 + r47288;
        float r47290 = r47284 * r47289;
        return r47290;
}

double f_od(double x, double y) {
        double r47291 = 2.0;
        double r47292 = x;
        double r47293 = r47292 * r47292;
        double r47294 = y;
        double r47295 = r47292 * r47294;
        double r47296 = r47293 + r47295;
        double r47297 = r47291 * r47296;
        return r47297;
}

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 r47298, r47299, r47300, r47301, r47302, r47303, r47304;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47298, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47299);
        mpfr_init(r47300);
        mpfr_init(r47301);
        mpfr_init(r47302);
        mpfr_init(r47303);
        mpfr_init(r47304);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r47299, x, MPFR_RNDN);
        mpfr_mul(r47300, r47299, r47299, MPFR_RNDN);
        mpfr_set_d(r47301, y, MPFR_RNDN);
        mpfr_mul(r47302, r47299, r47301, MPFR_RNDN);
        mpfr_add(r47303, r47300, r47302, MPFR_RNDN);
        mpfr_mul(r47304, r47298, r47303, MPFR_RNDN);
        return mpfr_get_d(r47304, MPFR_RNDN);
}

static mpfr_t r47305, r47306, r47307, r47308, r47309, r47310, r47311;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47305, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47306);
        mpfr_init(r47307);
        mpfr_init(r47308);
        mpfr_init(r47309);
        mpfr_init(r47310);
        mpfr_init(r47311);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r47306, x, MPFR_RNDN);
        mpfr_mul(r47307, r47306, r47306, MPFR_RNDN);
        mpfr_set_d(r47308, y, MPFR_RNDN);
        mpfr_mul(r47309, r47306, r47308, MPFR_RNDN);
        mpfr_add(r47310, r47307, r47309, MPFR_RNDN);
        mpfr_mul(r47311, r47305, r47310, MPFR_RNDN);
        return mpfr_get_d(r47311, MPFR_RNDN);
}

static mpfr_t r47312, r47313, r47314, r47315, r47316, r47317, r47318;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47312, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47313);
        mpfr_init(r47314);
        mpfr_init(r47315);
        mpfr_init(r47316);
        mpfr_init(r47317);
        mpfr_init(r47318);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r47313, x, MPFR_RNDN);
        mpfr_mul(r47314, r47313, r47313, MPFR_RNDN);
        mpfr_set_d(r47315, y, MPFR_RNDN);
        mpfr_mul(r47316, r47313, r47315, MPFR_RNDN);
        mpfr_add(r47317, r47314, r47316, MPFR_RNDN);
        mpfr_mul(r47318, r47312, r47317, MPFR_RNDN);
        return mpfr_get_d(r47318, MPFR_RNDN);
}

