#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 r47704 = 2.0;
        float r47705 = x;
        float r47706 = r47705 * r47705;
        float r47707 = y;
        float r47708 = r47705 * r47707;
        float r47709 = r47706 + r47708;
        float r47710 = r47704 * r47709;
        return r47710;
}

double f_id(double x, double y) {
        double r47711 = 2.0;
        double r47712 = x;
        double r47713 = r47712 * r47712;
        double r47714 = y;
        double r47715 = r47712 * r47714;
        double r47716 = r47713 + r47715;
        double r47717 = r47711 * r47716;
        return r47717;
}


double f_of(float x, float y) {
        float r47718 = 2.0;
        float r47719 = x;
        float r47720 = r47719 * r47719;
        float r47721 = y;
        float r47722 = r47719 * r47721;
        float r47723 = r47720 + r47722;
        float r47724 = r47718 * r47723;
        return r47724;
}

double f_od(double x, double y) {
        double r47725 = 2.0;
        double r47726 = x;
        double r47727 = r47726 * r47726;
        double r47728 = y;
        double r47729 = r47726 * r47728;
        double r47730 = r47727 + r47729;
        double r47731 = r47725 * r47730;
        return r47731;
}

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 r47732, r47733, r47734, r47735, r47736, r47737, r47738;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47732, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47733);
        mpfr_init(r47734);
        mpfr_init(r47735);
        mpfr_init(r47736);
        mpfr_init(r47737);
        mpfr_init(r47738);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r47733, x, MPFR_RNDN);
        mpfr_mul(r47734, r47733, r47733, MPFR_RNDN);
        mpfr_set_d(r47735, y, MPFR_RNDN);
        mpfr_mul(r47736, r47733, r47735, MPFR_RNDN);
        mpfr_add(r47737, r47734, r47736, MPFR_RNDN);
        mpfr_mul(r47738, r47732, r47737, MPFR_RNDN);
        return mpfr_get_d(r47738, MPFR_RNDN);
}

static mpfr_t r47739, r47740, r47741, r47742, r47743, r47744, r47745;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47739, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47740);
        mpfr_init(r47741);
        mpfr_init(r47742);
        mpfr_init(r47743);
        mpfr_init(r47744);
        mpfr_init(r47745);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r47740, x, MPFR_RNDN);
        mpfr_mul(r47741, r47740, r47740, MPFR_RNDN);
        mpfr_set_d(r47742, y, MPFR_RNDN);
        mpfr_mul(r47743, r47740, r47742, MPFR_RNDN);
        mpfr_add(r47744, r47741, r47743, MPFR_RNDN);
        mpfr_mul(r47745, r47739, r47744, MPFR_RNDN);
        return mpfr_get_d(r47745, MPFR_RNDN);
}

static mpfr_t r47746, r47747, r47748, r47749, r47750, r47751, r47752;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r47746, "2.0", 10, MPFR_RNDN);
        mpfr_init(r47747);
        mpfr_init(r47748);
        mpfr_init(r47749);
        mpfr_init(r47750);
        mpfr_init(r47751);
        mpfr_init(r47752);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r47747, x, MPFR_RNDN);
        mpfr_mul(r47748, r47747, r47747, MPFR_RNDN);
        mpfr_set_d(r47749, y, MPFR_RNDN);
        mpfr_mul(r47750, r47747, r47749, MPFR_RNDN);
        mpfr_add(r47751, r47748, r47750, MPFR_RNDN);
        mpfr_mul(r47752, r47746, r47751, MPFR_RNDN);
        return mpfr_get_d(r47752, MPFR_RNDN);
}

