#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 r55985 = x;
        float r55986 = r55985 * r55985;
        float r55987 = y;
        float r55988 = r55987 * r55987;
        float r55989 = r55986 + r55988;
        float r55990 = sqrt(r55989);
        return r55990;
}

double f_id(double x, double y) {
        double r55991 = x;
        double r55992 = r55991 * r55991;
        double r55993 = y;
        double r55994 = r55993 * r55993;
        double r55995 = r55992 + r55994;
        double r55996 = sqrt(r55995);
        return r55996;
}


double f_of(float x, float y) {
        float r55997 = x;
        float r55998 = -3.993615069801488e+125;
        bool r55999 = r55997 <= r55998;
        float r56000 = -r55997;
        float r56001 = 2.447855958190132e-195;
        bool r56002 = r55997 <= r56001;
        float r56003 = r55997 * r55997;
        float r56004 = y;
        float r56005 = r56004 * r56004;
        float r56006 = r56003 + r56005;
        float r56007 = sqrt(r56006);
        float r56008 = 2.240485188259365e-180;
        bool r56009 = r55997 <= r56008;
        float r56010 = 3.0139115645243634e+153;
        bool r56011 = r55997 <= r56010;
        float r56012 = r56011 ? r56007 : r55997;
        float r56013 = r56009 ? r55997 : r56012;
        float r56014 = r56002 ? r56007 : r56013;
        float r56015 = r55999 ? r56000 : r56014;
        return r56015;
}

double f_od(double x, double y) {
        double r56016 = x;
        double r56017 = -3.993615069801488e+125;
        bool r56018 = r56016 <= r56017;
        double r56019 = -r56016;
        double r56020 = 2.447855958190132e-195;
        bool r56021 = r56016 <= r56020;
        double r56022 = r56016 * r56016;
        double r56023 = y;
        double r56024 = r56023 * r56023;
        double r56025 = r56022 + r56024;
        double r56026 = sqrt(r56025);
        double r56027 = 2.240485188259365e-180;
        bool r56028 = r56016 <= r56027;
        double r56029 = 3.0139115645243634e+153;
        bool r56030 = r56016 <= r56029;
        double r56031 = r56030 ? r56026 : r56016;
        double r56032 = r56028 ? r56016 : r56031;
        double r56033 = r56021 ? r56026 : r56032;
        double r56034 = r56018 ? r56019 : r56033;
        return r56034;
}

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 r56035, r56036, r56037, r56038, r56039, r56040;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r56035);
        mpfr_init(r56036);
        mpfr_init(r56037);
        mpfr_init(r56038);
        mpfr_init(r56039);
        mpfr_init(r56040);
}

double f_im(double x, double y) {
        mpfr_set_d(r56035, x, MPFR_RNDN);
        mpfr_mul(r56036, r56035, r56035, MPFR_RNDN);
        mpfr_set_d(r56037, y, MPFR_RNDN);
        mpfr_mul(r56038, r56037, r56037, MPFR_RNDN);
        mpfr_add(r56039, r56036, r56038, MPFR_RNDN);
        mpfr_sqrt(r56040, r56039, MPFR_RNDN);
        return mpfr_get_d(r56040, MPFR_RNDN);
}

static mpfr_t r56041, r56042, r56043, r56044, r56045, r56046, r56047, r56048, r56049, r56050, r56051, r56052, r56053, r56054, r56055, r56056, r56057, r56058, r56059;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56041);
        mpfr_init_set_str(r56042, "-3.993615069801488e+125", 10, MPFR_RNDN);
        mpfr_init(r56043);
        mpfr_init(r56044);
        mpfr_init_set_str(r56045, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r56046);
        mpfr_init(r56047);
        mpfr_init(r56048);
        mpfr_init(r56049);
        mpfr_init(r56050);
        mpfr_init(r56051);
        mpfr_init_set_str(r56052, "2.240485188259365e-180", 10, MPFR_RNDN);
        mpfr_init(r56053);
        mpfr_init_set_str(r56054, "3.0139115645243634e+153", 10, MPFR_RNDN);
        mpfr_init(r56055);
        mpfr_init(r56056);
        mpfr_init(r56057);
        mpfr_init(r56058);
        mpfr_init(r56059);
}

double f_fm(double x, double y) {
        mpfr_set_d(r56041, x, MPFR_RNDN);
        ;
        mpfr_set_si(r56043, mpfr_cmp(r56041, r56042) <= 0, MPFR_RNDN);
        mpfr_neg(r56044, r56041, MPFR_RNDN);
        ;
        mpfr_set_si(r56046, mpfr_cmp(r56041, r56045) <= 0, MPFR_RNDN);
        mpfr_mul(r56047, r56041, r56041, MPFR_RNDN);
        mpfr_set_d(r56048, y, MPFR_RNDN);
        mpfr_mul(r56049, r56048, r56048, MPFR_RNDN);
        mpfr_add(r56050, r56047, r56049, MPFR_RNDN);
        mpfr_sqrt(r56051, r56050, MPFR_RNDN);
        ;
        mpfr_set_si(r56053, mpfr_cmp(r56041, r56052) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r56055, mpfr_cmp(r56041, r56054) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r56055, MPFR_RNDN)) { mpfr_set(r56056, r56051, MPFR_RNDN); } else { mpfr_set(r56056, r56041, MPFR_RNDN); };
        if (mpfr_get_si(r56053, MPFR_RNDN)) { mpfr_set(r56057, r56041, MPFR_RNDN); } else { mpfr_set(r56057, r56056, MPFR_RNDN); };
        if (mpfr_get_si(r56046, MPFR_RNDN)) { mpfr_set(r56058, r56051, MPFR_RNDN); } else { mpfr_set(r56058, r56057, MPFR_RNDN); };
        if (mpfr_get_si(r56043, MPFR_RNDN)) { mpfr_set(r56059, r56044, MPFR_RNDN); } else { mpfr_set(r56059, r56058, MPFR_RNDN); };
        return mpfr_get_d(r56059, MPFR_RNDN);
}

static mpfr_t r56060, r56061, r56062, r56063, r56064, r56065, r56066, r56067, r56068, r56069, r56070, r56071, r56072, r56073, r56074, r56075, r56076, r56077, r56078;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56060);
        mpfr_init_set_str(r56061, "-3.993615069801488e+125", 10, MPFR_RNDN);
        mpfr_init(r56062);
        mpfr_init(r56063);
        mpfr_init_set_str(r56064, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r56065);
        mpfr_init(r56066);
        mpfr_init(r56067);
        mpfr_init(r56068);
        mpfr_init(r56069);
        mpfr_init(r56070);
        mpfr_init_set_str(r56071, "2.240485188259365e-180", 10, MPFR_RNDN);
        mpfr_init(r56072);
        mpfr_init_set_str(r56073, "3.0139115645243634e+153", 10, MPFR_RNDN);
        mpfr_init(r56074);
        mpfr_init(r56075);
        mpfr_init(r56076);
        mpfr_init(r56077);
        mpfr_init(r56078);
}

double f_dm(double x, double y) {
        mpfr_set_d(r56060, x, MPFR_RNDN);
        ;
        mpfr_set_si(r56062, mpfr_cmp(r56060, r56061) <= 0, MPFR_RNDN);
        mpfr_neg(r56063, r56060, MPFR_RNDN);
        ;
        mpfr_set_si(r56065, mpfr_cmp(r56060, r56064) <= 0, MPFR_RNDN);
        mpfr_mul(r56066, r56060, r56060, MPFR_RNDN);
        mpfr_set_d(r56067, y, MPFR_RNDN);
        mpfr_mul(r56068, r56067, r56067, MPFR_RNDN);
        mpfr_add(r56069, r56066, r56068, MPFR_RNDN);
        mpfr_sqrt(r56070, r56069, MPFR_RNDN);
        ;
        mpfr_set_si(r56072, mpfr_cmp(r56060, r56071) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r56074, mpfr_cmp(r56060, r56073) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r56074, MPFR_RNDN)) { mpfr_set(r56075, r56070, MPFR_RNDN); } else { mpfr_set(r56075, r56060, MPFR_RNDN); };
        if (mpfr_get_si(r56072, MPFR_RNDN)) { mpfr_set(r56076, r56060, MPFR_RNDN); } else { mpfr_set(r56076, r56075, MPFR_RNDN); };
        if (mpfr_get_si(r56065, MPFR_RNDN)) { mpfr_set(r56077, r56070, MPFR_RNDN); } else { mpfr_set(r56077, r56076, MPFR_RNDN); };
        if (mpfr_get_si(r56062, MPFR_RNDN)) { mpfr_set(r56078, r56063, MPFR_RNDN); } else { mpfr_set(r56078, r56077, MPFR_RNDN); };
        return mpfr_get_d(r56078, MPFR_RNDN);
}

