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

char *name = "Data.Octree.Internal:octantDistance  from Octree-0.5.4.2";

double f_if(float x, float y) {
        float r54712 = x;
        float r54713 = r54712 * r54712;
        float r54714 = y;
        float r54715 = r54714 * r54714;
        float r54716 = r54713 + r54715;
        float r54717 = sqrt(r54716);
        return r54717;
}

double f_id(double x, double y) {
        double r54718 = x;
        double r54719 = r54718 * r54718;
        double r54720 = y;
        double r54721 = r54720 * r54720;
        double r54722 = r54719 + r54721;
        double r54723 = sqrt(r54722);
        return r54723;
}


double f_of(float x, float y) {
        float r54724 = y;
        float r54725 = -1.1496000680102836e+163f;
        bool r54726 = r54724 <= r54725;
        float r54727 = -r54724;
        float r54728 = 4.692828868299432e+91f;
        bool r54729 = r54724 <= r54728;
        float r54730 = r54724 * r54724;
        float r54731 = x;
        float r54732 = r54731 * r54731;
        float r54733 = r54730 + r54732;
        float r54734 = sqrt(r54733);
        float r54735 = r54729 ? r54734 : r54724;
        float r54736 = r54726 ? r54727 : r54735;
        return r54736;
}

double f_od(double x, double y) {
        double r54737 = y;
        double r54738 = -1.1496000680102836e+163;
        bool r54739 = r54737 <= r54738;
        double r54740 = -r54737;
        double r54741 = 4.692828868299432e+91;
        bool r54742 = r54737 <= r54741;
        double r54743 = r54737 * r54737;
        double r54744 = x;
        double r54745 = r54744 * r54744;
        double r54746 = r54743 + r54745;
        double r54747 = sqrt(r54746);
        double r54748 = r54742 ? r54747 : r54737;
        double r54749 = r54739 ? r54740 : r54748;
        return r54749;
}

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 r54750, r54751, r54752, r54753, r54754, r54755;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r54750);
        mpfr_init(r54751);
        mpfr_init(r54752);
        mpfr_init(r54753);
        mpfr_init(r54754);
        mpfr_init(r54755);
}

double f_im(double x, double y) {
        mpfr_set_d(r54750, x, MPFR_RNDN);
        mpfr_mul(r54751, r54750, r54750, MPFR_RNDN);
        mpfr_set_d(r54752, y, MPFR_RNDN);
        mpfr_mul(r54753, r54752, r54752, MPFR_RNDN);
        mpfr_add(r54754, r54751, r54753, MPFR_RNDN);
        mpfr_sqrt(r54755, r54754, MPFR_RNDN);
        return mpfr_get_d(r54755, MPFR_RNDN);
}

static mpfr_t r54756, r54757, r54758, r54759, r54760, r54761, r54762, r54763, r54764, r54765, r54766, r54767, r54768;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r54756);
        mpfr_init_set_str(r54757, "-1.1496000680102836e+163", 10, MPFR_RNDN);
        mpfr_init(r54758);
        mpfr_init(r54759);
        mpfr_init_set_str(r54760, "4.692828868299432e+91", 10, MPFR_RNDN);
        mpfr_init(r54761);
        mpfr_init(r54762);
        mpfr_init(r54763);
        mpfr_init(r54764);
        mpfr_init(r54765);
        mpfr_init(r54766);
        mpfr_init(r54767);
        mpfr_init(r54768);
}

double f_fm(double x, double y) {
        mpfr_set_d(r54756, y, MPFR_RNDN);
        ;
        mpfr_set_si(r54758, mpfr_cmp(r54756, r54757) <= 0, MPFR_RNDN);
        mpfr_neg(r54759, r54756, MPFR_RNDN);
        ;
        mpfr_set_si(r54761, mpfr_cmp(r54756, r54760) <= 0, MPFR_RNDN);
        mpfr_sqr(r54762, r54756, MPFR_RNDN);
        mpfr_set_d(r54763, x, MPFR_RNDN);
        mpfr_mul(r54764, r54763, r54763, MPFR_RNDN);
        mpfr_add(r54765, r54762, r54764, MPFR_RNDN);
        mpfr_sqrt(r54766, r54765, MPFR_RNDN);
        if (mpfr_get_si(r54761, MPFR_RNDN)) { mpfr_set(r54767, r54766, MPFR_RNDN); } else { mpfr_set(r54767, r54756, MPFR_RNDN); };
        if (mpfr_get_si(r54758, MPFR_RNDN)) { mpfr_set(r54768, r54759, MPFR_RNDN); } else { mpfr_set(r54768, r54767, MPFR_RNDN); };
        return mpfr_get_d(r54768, MPFR_RNDN);
}

static mpfr_t r54769, r54770, r54771, r54772, r54773, r54774, r54775, r54776, r54777, r54778, r54779, r54780, r54781;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r54769);
        mpfr_init_set_str(r54770, "-1.1496000680102836e+163", 10, MPFR_RNDN);
        mpfr_init(r54771);
        mpfr_init(r54772);
        mpfr_init_set_str(r54773, "4.692828868299432e+91", 10, MPFR_RNDN);
        mpfr_init(r54774);
        mpfr_init(r54775);
        mpfr_init(r54776);
        mpfr_init(r54777);
        mpfr_init(r54778);
        mpfr_init(r54779);
        mpfr_init(r54780);
        mpfr_init(r54781);
}

double f_dm(double x, double y) {
        mpfr_set_d(r54769, y, MPFR_RNDN);
        ;
        mpfr_set_si(r54771, mpfr_cmp(r54769, r54770) <= 0, MPFR_RNDN);
        mpfr_neg(r54772, r54769, MPFR_RNDN);
        ;
        mpfr_set_si(r54774, mpfr_cmp(r54769, r54773) <= 0, MPFR_RNDN);
        mpfr_sqr(r54775, r54769, MPFR_RNDN);
        mpfr_set_d(r54776, x, MPFR_RNDN);
        mpfr_mul(r54777, r54776, r54776, MPFR_RNDN);
        mpfr_add(r54778, r54775, r54777, MPFR_RNDN);
        mpfr_sqrt(r54779, r54778, MPFR_RNDN);
        if (mpfr_get_si(r54774, MPFR_RNDN)) { mpfr_set(r54780, r54779, MPFR_RNDN); } else { mpfr_set(r54780, r54769, MPFR_RNDN); };
        if (mpfr_get_si(r54771, MPFR_RNDN)) { mpfr_set(r54781, r54772, MPFR_RNDN); } else { mpfr_set(r54781, r54780, MPFR_RNDN); };
        return mpfr_get_d(r54781, MPFR_RNDN);
}

