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

char *name = "Linear.Quaternion:$clog from linear-1.19.1.3";

double f_if(float x, float y) {
        float r44181 = x;
        float r44182 = r44181 * r44181;
        float r44183 = y;
        float r44184 = r44182 + r44183;
        float r44185 = sqrt(r44184);
        return r44185;
}

double f_id(double x, double y) {
        double r44186 = x;
        double r44187 = r44186 * r44186;
        double r44188 = y;
        double r44189 = r44187 + r44188;
        double r44190 = sqrt(r44189);
        return r44190;
}


double f_of(float x, float y) {
        float r44191 = x;
        float r44192 = -1.798458072626415e+148f;
        bool r44193 = r44191 <= r44192;
        float r44194 = 0.5f;
        float r44195 = y;
        float r44196 = r44195 / r44191;
        float r44197 = r44194 * r44196;
        float r44198 = r44191 + r44197;
        float r44199 = -r44198;
        float r44200 = 3.3156380580081446e+107f;
        bool r44201 = r44191 <= r44200;
        float r44202 = r44191 * r44191;
        float r44203 = r44202 + r44195;
        float r44204 = sqrt(r44203);
        float r44205 = r44201 ? r44204 : r44198;
        float r44206 = r44193 ? r44199 : r44205;
        return r44206;
}

double f_od(double x, double y) {
        double r44207 = x;
        double r44208 = -1.798458072626415e+148;
        bool r44209 = r44207 <= r44208;
        double r44210 = 0.5;
        double r44211 = y;
        double r44212 = r44211 / r44207;
        double r44213 = r44210 * r44212;
        double r44214 = r44207 + r44213;
        double r44215 = -r44214;
        double r44216 = 3.3156380580081446e+107;
        bool r44217 = r44207 <= r44216;
        double r44218 = r44207 * r44207;
        double r44219 = r44218 + r44211;
        double r44220 = sqrt(r44219);
        double r44221 = r44217 ? r44220 : r44214;
        double r44222 = r44209 ? r44215 : r44221;
        return r44222;
}

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 r44223, r44224, r44225, r44226, r44227;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r44223);
        mpfr_init(r44224);
        mpfr_init(r44225);
        mpfr_init(r44226);
        mpfr_init(r44227);
}

double f_im(double x, double y) {
        mpfr_set_d(r44223, x, MPFR_RNDN);
        mpfr_mul(r44224, r44223, r44223, MPFR_RNDN);
        mpfr_set_d(r44225, y, MPFR_RNDN);
        mpfr_add(r44226, r44224, r44225, MPFR_RNDN);
        mpfr_sqrt(r44227, r44226, MPFR_RNDN);
        return mpfr_get_d(r44227, MPFR_RNDN);
}

static mpfr_t r44228, r44229, r44230, r44231, r44232, r44233, r44234, r44235, r44236, r44237, r44238, r44239, r44240, r44241, r44242, r44243;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r44228);
        mpfr_init_set_str(r44229, "-1.798458072626415e+148", 10, MPFR_RNDN);
        mpfr_init(r44230);
        mpfr_init_set_str(r44231, "1/2", 10, MPFR_RNDN);
        mpfr_init(r44232);
        mpfr_init(r44233);
        mpfr_init(r44234);
        mpfr_init(r44235);
        mpfr_init(r44236);
        mpfr_init_set_str(r44237, "3.3156380580081446e+107", 10, MPFR_RNDN);
        mpfr_init(r44238);
        mpfr_init(r44239);
        mpfr_init(r44240);
        mpfr_init(r44241);
        mpfr_init(r44242);
        mpfr_init(r44243);
}

double f_fm(double x, double y) {
        mpfr_set_d(r44228, x, MPFR_RNDN);
        ;
        mpfr_set_si(r44230, mpfr_cmp(r44228, r44229) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r44232, y, MPFR_RNDN);
        mpfr_div(r44233, r44232, r44228, MPFR_RNDN);
        mpfr_mul(r44234, r44231, r44233, MPFR_RNDN);
        mpfr_add(r44235, r44228, r44234, MPFR_RNDN);
        mpfr_neg(r44236, r44235, MPFR_RNDN);
        ;
        mpfr_set_si(r44238, mpfr_cmp(r44228, r44237) <= 0, MPFR_RNDN);
        mpfr_mul(r44239, r44228, r44228, MPFR_RNDN);
        mpfr_add(r44240, r44239, r44232, MPFR_RNDN);
        mpfr_sqrt(r44241, r44240, MPFR_RNDN);
        if (mpfr_get_si(r44238, MPFR_RNDN)) { mpfr_set(r44242, r44241, MPFR_RNDN); } else { mpfr_set(r44242, r44235, MPFR_RNDN); };
        if (mpfr_get_si(r44230, MPFR_RNDN)) { mpfr_set(r44243, r44236, MPFR_RNDN); } else { mpfr_set(r44243, r44242, MPFR_RNDN); };
        return mpfr_get_d(r44243, MPFR_RNDN);
}

static mpfr_t r44244, r44245, r44246, r44247, r44248, r44249, r44250, r44251, r44252, r44253, r44254, r44255, r44256, r44257, r44258, r44259;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r44244);
        mpfr_init_set_str(r44245, "-1.798458072626415e+148", 10, MPFR_RNDN);
        mpfr_init(r44246);
        mpfr_init_set_str(r44247, "1/2", 10, MPFR_RNDN);
        mpfr_init(r44248);
        mpfr_init(r44249);
        mpfr_init(r44250);
        mpfr_init(r44251);
        mpfr_init(r44252);
        mpfr_init_set_str(r44253, "3.3156380580081446e+107", 10, MPFR_RNDN);
        mpfr_init(r44254);
        mpfr_init(r44255);
        mpfr_init(r44256);
        mpfr_init(r44257);
        mpfr_init(r44258);
        mpfr_init(r44259);
}

double f_dm(double x, double y) {
        mpfr_set_d(r44244, x, MPFR_RNDN);
        ;
        mpfr_set_si(r44246, mpfr_cmp(r44244, r44245) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r44248, y, MPFR_RNDN);
        mpfr_div(r44249, r44248, r44244, MPFR_RNDN);
        mpfr_mul(r44250, r44247, r44249, MPFR_RNDN);
        mpfr_add(r44251, r44244, r44250, MPFR_RNDN);
        mpfr_neg(r44252, r44251, MPFR_RNDN);
        ;
        mpfr_set_si(r44254, mpfr_cmp(r44244, r44253) <= 0, MPFR_RNDN);
        mpfr_mul(r44255, r44244, r44244, MPFR_RNDN);
        mpfr_add(r44256, r44255, r44248, MPFR_RNDN);
        mpfr_sqrt(r44257, r44256, MPFR_RNDN);
        if (mpfr_get_si(r44254, MPFR_RNDN)) { mpfr_set(r44258, r44257, MPFR_RNDN); } else { mpfr_set(r44258, r44251, MPFR_RNDN); };
        if (mpfr_get_si(r44246, MPFR_RNDN)) { mpfr_set(r44259, r44252, MPFR_RNDN); } else { mpfr_set(r44259, r44258, MPFR_RNDN); };
        return mpfr_get_d(r44259, MPFR_RNDN);
}

