#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 r48024 = 2.0;
        float r48025 = x;
        float r48026 = r48025 * r48025;
        float r48027 = y;
        float r48028 = r48025 * r48027;
        float r48029 = r48026 + r48028;
        float r48030 = r48024 * r48029;
        return r48030;
}

double f_id(double x, double y) {
        double r48031 = 2.0;
        double r48032 = x;
        double r48033 = r48032 * r48032;
        double r48034 = y;
        double r48035 = r48032 * r48034;
        double r48036 = r48033 + r48035;
        double r48037 = r48031 * r48036;
        return r48037;
}


double f_of(float x, float y) {
        float r48038 = 2.0;
        float r48039 = x;
        float r48040 = r48039 * r48039;
        float r48041 = y;
        float r48042 = r48039 * r48041;
        float r48043 = r48040 + r48042;
        float r48044 = r48038 * r48043;
        return r48044;
}

double f_od(double x, double y) {
        double r48045 = 2.0;
        double r48046 = x;
        double r48047 = r48046 * r48046;
        double r48048 = y;
        double r48049 = r48046 * r48048;
        double r48050 = r48047 + r48049;
        double r48051 = r48045 * r48050;
        return r48051;
}

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 r48052, r48053, r48054, r48055, r48056, r48057, r48058;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r48052, "2.0", 10, MPFR_RNDN);
        mpfr_init(r48053);
        mpfr_init(r48054);
        mpfr_init(r48055);
        mpfr_init(r48056);
        mpfr_init(r48057);
        mpfr_init(r48058);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r48053, x, MPFR_RNDN);
        mpfr_mul(r48054, r48053, r48053, MPFR_RNDN);
        mpfr_set_d(r48055, y, MPFR_RNDN);
        mpfr_mul(r48056, r48053, r48055, MPFR_RNDN);
        mpfr_add(r48057, r48054, r48056, MPFR_RNDN);
        mpfr_mul(r48058, r48052, r48057, MPFR_RNDN);
        return mpfr_get_d(r48058, MPFR_RNDN);
}

static mpfr_t r48059, r48060, r48061, r48062, r48063, r48064, r48065;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r48059, "2.0", 10, MPFR_RNDN);
        mpfr_init(r48060);
        mpfr_init(r48061);
        mpfr_init(r48062);
        mpfr_init(r48063);
        mpfr_init(r48064);
        mpfr_init(r48065);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r48060, x, MPFR_RNDN);
        mpfr_mul(r48061, r48060, r48060, MPFR_RNDN);
        mpfr_set_d(r48062, y, MPFR_RNDN);
        mpfr_mul(r48063, r48060, r48062, MPFR_RNDN);
        mpfr_add(r48064, r48061, r48063, MPFR_RNDN);
        mpfr_mul(r48065, r48059, r48064, MPFR_RNDN);
        return mpfr_get_d(r48065, MPFR_RNDN);
}

static mpfr_t r48066, r48067, r48068, r48069, r48070, r48071, r48072;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r48066, "2.0", 10, MPFR_RNDN);
        mpfr_init(r48067);
        mpfr_init(r48068);
        mpfr_init(r48069);
        mpfr_init(r48070);
        mpfr_init(r48071);
        mpfr_init(r48072);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r48067, x, MPFR_RNDN);
        mpfr_mul(r48068, r48067, r48067, MPFR_RNDN);
        mpfr_set_d(r48069, y, MPFR_RNDN);
        mpfr_mul(r48070, r48067, r48069, MPFR_RNDN);
        mpfr_add(r48071, r48068, r48070, MPFR_RNDN);
        mpfr_mul(r48072, r48066, r48071, MPFR_RNDN);
        return mpfr_get_d(r48072, MPFR_RNDN);
}

