#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 r47768 = 2.0;
        float r47769 = x;
        float r47770 = r47769 * r47769;
        float r47771 = y;
        float r47772 = r47769 * r47771;
        float r47773 = r47770 + r47772;
        float r47774 = r47768 * r47773;
        return r47774;
}

double f_id(double x, double y) {
        double r47775 = 2.0;
        double r47776 = x;
        double r47777 = r47776 * r47776;
        double r47778 = y;
        double r47779 = r47776 * r47778;
        double r47780 = r47777 + r47779;
        double r47781 = r47775 * r47780;
        return r47781;
}


double f_of(float x, float y) {
        float r47782 = 2.0;
        float r47783 = x;
        float r47784 = r47783 * r47783;
        float r47785 = y;
        float r47786 = r47783 * r47785;
        float r47787 = r47784 + r47786;
        float r47788 = r47782 * r47787;
        return r47788;
}

double f_od(double x, double y) {
        double r47789 = 2.0;
        double r47790 = x;
        double r47791 = r47790 * r47790;
        double r47792 = y;
        double r47793 = r47790 * r47792;
        double r47794 = r47791 + r47793;
        double r47795 = r47789 * r47794;
        return r47795;
}

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 r47796, r47797, r47798, r47799, r47800, r47801, r47802;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47796, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47797);
        mpfr_init(r47798);
        mpfr_init(r47799);
        mpfr_init(r47800);
        mpfr_init(r47801);
        mpfr_init(r47802);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r47797, x, MPFR_RNDN);
        mpfr_mul(r47798, r47797, r47797, MPFR_RNDN);
        mpfr_set_d(r47799, y, MPFR_RNDN);
        mpfr_mul(r47800, r47797, r47799, MPFR_RNDN);
        mpfr_add(r47801, r47798, r47800, MPFR_RNDN);
        mpfr_mul(r47802, r47796, r47801, MPFR_RNDN);
        return mpfr_get_d(r47802, MPFR_RNDN);
}

static mpfr_t r47803, r47804, r47805, r47806, r47807, r47808, r47809;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47803, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47804);
        mpfr_init(r47805);
        mpfr_init(r47806);
        mpfr_init(r47807);
        mpfr_init(r47808);
        mpfr_init(r47809);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r47804, x, MPFR_RNDN);
        mpfr_mul(r47805, r47804, r47804, MPFR_RNDN);
        mpfr_set_d(r47806, y, MPFR_RNDN);
        mpfr_mul(r47807, r47804, r47806, MPFR_RNDN);
        mpfr_add(r47808, r47805, r47807, MPFR_RNDN);
        mpfr_mul(r47809, r47803, r47808, MPFR_RNDN);
        return mpfr_get_d(r47809, MPFR_RNDN);
}

static mpfr_t r47810, r47811, r47812, r47813, r47814, r47815, r47816;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47810, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47811);
        mpfr_init(r47812);
        mpfr_init(r47813);
        mpfr_init(r47814);
        mpfr_init(r47815);
        mpfr_init(r47816);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r47811, x, MPFR_RNDN);
        mpfr_mul(r47812, r47811, r47811, MPFR_RNDN);
        mpfr_set_d(r47813, y, MPFR_RNDN);
        mpfr_mul(r47814, r47811, r47813, MPFR_RNDN);
        mpfr_add(r47815, r47812, r47814, MPFR_RNDN);
        mpfr_mul(r47816, r47810, r47815, MPFR_RNDN);
        return mpfr_get_d(r47816, MPFR_RNDN);
}

