#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 r55907 = x;
        float r55908 = r55907 * r55907;
        float r55909 = y;
        float r55910 = r55909 * r55909;
        float r55911 = r55908 + r55910;
        float r55912 = sqrt(r55911);
        return r55912;
}

double f_id(double x, double y) {
        double r55913 = x;
        double r55914 = r55913 * r55913;
        double r55915 = y;
        double r55916 = r55915 * r55915;
        double r55917 = r55914 + r55916;
        double r55918 = sqrt(r55917);
        return r55918;
}


double f_of(float x, float y) {
        float r55919 = x;
        float r55920 = -3.993615069801488e+125;
        bool r55921 = r55919 <= r55920;
        float r55922 = -r55919;
        float r55923 = 2.447855958190132e-195;
        bool r55924 = r55919 <= r55923;
        float r55925 = r55919 * r55919;
        float r55926 = y;
        float r55927 = r55926 * r55926;
        float r55928 = r55925 + r55927;
        float r55929 = sqrt(r55928);
        float r55930 = 2.240485188259365e-180;
        bool r55931 = r55919 <= r55930;
        float r55932 = 5.62501088847094e+147;
        bool r55933 = r55919 <= r55932;
        float r55934 = r55933 ? r55929 : r55919;
        float r55935 = r55931 ? r55919 : r55934;
        float r55936 = r55924 ? r55929 : r55935;
        float r55937 = r55921 ? r55922 : r55936;
        return r55937;
}

double f_od(double x, double y) {
        double r55938 = x;
        double r55939 = -3.993615069801488e+125;
        bool r55940 = r55938 <= r55939;
        double r55941 = -r55938;
        double r55942 = 2.447855958190132e-195;
        bool r55943 = r55938 <= r55942;
        double r55944 = r55938 * r55938;
        double r55945 = y;
        double r55946 = r55945 * r55945;
        double r55947 = r55944 + r55946;
        double r55948 = sqrt(r55947);
        double r55949 = 2.240485188259365e-180;
        bool r55950 = r55938 <= r55949;
        double r55951 = 5.62501088847094e+147;
        bool r55952 = r55938 <= r55951;
        double r55953 = r55952 ? r55948 : r55938;
        double r55954 = r55950 ? r55938 : r55953;
        double r55955 = r55943 ? r55948 : r55954;
        double r55956 = r55940 ? r55941 : r55955;
        return r55956;
}

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 r55957, r55958, r55959, r55960, r55961, r55962;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55957);
        mpfr_init(r55958);
        mpfr_init(r55959);
        mpfr_init(r55960);
        mpfr_init(r55961);
        mpfr_init(r55962);
}

double f_im(double x, double y) {
        mpfr_set_d(r55957, x, MPFR_RNDN);
        mpfr_mul(r55958, r55957, r55957, MPFR_RNDN);
        mpfr_set_d(r55959, y, MPFR_RNDN);
        mpfr_mul(r55960, r55959, r55959, MPFR_RNDN);
        mpfr_add(r55961, r55958, r55960, MPFR_RNDN);
        mpfr_sqrt(r55962, r55961, MPFR_RNDN);
        return mpfr_get_d(r55962, MPFR_RNDN);
}

static mpfr_t r55963, r55964, r55965, r55966, r55967, r55968, r55969, r55970, r55971, r55972, r55973, r55974, r55975, r55976, r55977, r55978, r55979, r55980, r55981;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55963);
        mpfr_init_set_str(r55964, "-3.993615069801488e+125", 10, MPFR_RNDN);
        mpfr_init(r55965);
        mpfr_init(r55966);
        mpfr_init_set_str(r55967, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r55968);
        mpfr_init(r55969);
        mpfr_init(r55970);
        mpfr_init(r55971);
        mpfr_init(r55972);
        mpfr_init(r55973);
        mpfr_init_set_str(r55974, "2.240485188259365e-180", 10, MPFR_RNDN);
        mpfr_init(r55975);
        mpfr_init_set_str(r55976, "5.62501088847094e+147", 10, MPFR_RNDN);
        mpfr_init(r55977);
        mpfr_init(r55978);
        mpfr_init(r55979);
        mpfr_init(r55980);
        mpfr_init(r55981);
}

double f_fm(double x, double y) {
        mpfr_set_d(r55963, x, MPFR_RNDN);
        ;
        mpfr_set_si(r55965, mpfr_cmp(r55963, r55964) <= 0, MPFR_RNDN);
        mpfr_neg(r55966, r55963, MPFR_RNDN);
        ;
        mpfr_set_si(r55968, mpfr_cmp(r55963, r55967) <= 0, MPFR_RNDN);
        mpfr_mul(r55969, r55963, r55963, MPFR_RNDN);
        mpfr_set_d(r55970, y, MPFR_RNDN);
        mpfr_mul(r55971, r55970, r55970, MPFR_RNDN);
        mpfr_add(r55972, r55969, r55971, MPFR_RNDN);
        mpfr_sqrt(r55973, r55972, MPFR_RNDN);
        ;
        mpfr_set_si(r55975, mpfr_cmp(r55963, r55974) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r55977, mpfr_cmp(r55963, r55976) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r55977, MPFR_RNDN)) { mpfr_set(r55978, r55973, MPFR_RNDN); } else { mpfr_set(r55978, r55963, MPFR_RNDN); };
        if (mpfr_get_si(r55975, MPFR_RNDN)) { mpfr_set(r55979, r55963, MPFR_RNDN); } else { mpfr_set(r55979, r55978, MPFR_RNDN); };
        if (mpfr_get_si(r55968, MPFR_RNDN)) { mpfr_set(r55980, r55973, MPFR_RNDN); } else { mpfr_set(r55980, r55979, MPFR_RNDN); };
        if (mpfr_get_si(r55965, MPFR_RNDN)) { mpfr_set(r55981, r55966, MPFR_RNDN); } else { mpfr_set(r55981, r55980, MPFR_RNDN); };
        return mpfr_get_d(r55981, MPFR_RNDN);
}

static mpfr_t r55982, r55983, r55984, r55985, r55986, r55987, r55988, r55989, r55990, r55991, r55992, r55993, r55994, r55995, r55996, r55997, r55998, r55999, r56000;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55982);
        mpfr_init_set_str(r55983, "-3.993615069801488e+125", 10, MPFR_RNDN);
        mpfr_init(r55984);
        mpfr_init(r55985);
        mpfr_init_set_str(r55986, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r55987);
        mpfr_init(r55988);
        mpfr_init(r55989);
        mpfr_init(r55990);
        mpfr_init(r55991);
        mpfr_init(r55992);
        mpfr_init_set_str(r55993, "2.240485188259365e-180", 10, MPFR_RNDN);
        mpfr_init(r55994);
        mpfr_init_set_str(r55995, "5.62501088847094e+147", 10, MPFR_RNDN);
        mpfr_init(r55996);
        mpfr_init(r55997);
        mpfr_init(r55998);
        mpfr_init(r55999);
        mpfr_init(r56000);
}

double f_dm(double x, double y) {
        mpfr_set_d(r55982, x, MPFR_RNDN);
        ;
        mpfr_set_si(r55984, mpfr_cmp(r55982, r55983) <= 0, MPFR_RNDN);
        mpfr_neg(r55985, r55982, MPFR_RNDN);
        ;
        mpfr_set_si(r55987, mpfr_cmp(r55982, r55986) <= 0, MPFR_RNDN);
        mpfr_mul(r55988, r55982, r55982, MPFR_RNDN);
        mpfr_set_d(r55989, y, MPFR_RNDN);
        mpfr_mul(r55990, r55989, r55989, MPFR_RNDN);
        mpfr_add(r55991, r55988, r55990, MPFR_RNDN);
        mpfr_sqrt(r55992, r55991, MPFR_RNDN);
        ;
        mpfr_set_si(r55994, mpfr_cmp(r55982, r55993) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r55996, mpfr_cmp(r55982, r55995) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r55996, MPFR_RNDN)) { mpfr_set(r55997, r55992, MPFR_RNDN); } else { mpfr_set(r55997, r55982, MPFR_RNDN); };
        if (mpfr_get_si(r55994, MPFR_RNDN)) { mpfr_set(r55998, r55982, MPFR_RNDN); } else { mpfr_set(r55998, r55997, MPFR_RNDN); };
        if (mpfr_get_si(r55987, MPFR_RNDN)) { mpfr_set(r55999, r55992, MPFR_RNDN); } else { mpfr_set(r55999, r55998, MPFR_RNDN); };
        if (mpfr_get_si(r55984, MPFR_RNDN)) { mpfr_set(r56000, r55985, MPFR_RNDN); } else { mpfr_set(r56000, r55999, MPFR_RNDN); };
        return mpfr_get_d(r56000, MPFR_RNDN);
}

