#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 r55849 = x;
        float r55850 = r55849 * r55849;
        float r55851 = y;
        float r55852 = r55851 * r55851;
        float r55853 = r55850 + r55852;
        float r55854 = sqrt(r55853);
        return r55854;
}

double f_id(double x, double y) {
        double r55855 = x;
        double r55856 = r55855 * r55855;
        double r55857 = y;
        double r55858 = r55857 * r55857;
        double r55859 = r55856 + r55858;
        double r55860 = sqrt(r55859);
        return r55860;
}


double f_of(float x, float y) {
        float r55861 = x;
        float r55862 = -9.5730411458898e+118;
        bool r55863 = r55861 <= r55862;
        float r55864 = -r55861;
        float r55865 = 2.4528332963254056e-195;
        bool r55866 = r55861 <= r55865;
        float r55867 = r55861 * r55861;
        float r55868 = y;
        float r55869 = r55868 * r55868;
        float r55870 = r55867 + r55869;
        float r55871 = sqrt(r55870);
        float r55872 = 4.8611610197161825e-177;
        bool r55873 = r55861 <= r55872;
        float r55874 = 5.142867098030574e+148;
        bool r55875 = r55861 <= r55874;
        float r55876 = r55875 ? r55871 : r55861;
        float r55877 = r55873 ? r55861 : r55876;
        float r55878 = r55866 ? r55871 : r55877;
        float r55879 = r55863 ? r55864 : r55878;
        return r55879;
}

double f_od(double x, double y) {
        double r55880 = x;
        double r55881 = -9.5730411458898e+118;
        bool r55882 = r55880 <= r55881;
        double r55883 = -r55880;
        double r55884 = 2.4528332963254056e-195;
        bool r55885 = r55880 <= r55884;
        double r55886 = r55880 * r55880;
        double r55887 = y;
        double r55888 = r55887 * r55887;
        double r55889 = r55886 + r55888;
        double r55890 = sqrt(r55889);
        double r55891 = 4.8611610197161825e-177;
        bool r55892 = r55880 <= r55891;
        double r55893 = 5.142867098030574e+148;
        bool r55894 = r55880 <= r55893;
        double r55895 = r55894 ? r55890 : r55880;
        double r55896 = r55892 ? r55880 : r55895;
        double r55897 = r55885 ? r55890 : r55896;
        double r55898 = r55882 ? r55883 : r55897;
        return r55898;
}

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 r55899, r55900, r55901, r55902, r55903, r55904;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55899);
        mpfr_init(r55900);
        mpfr_init(r55901);
        mpfr_init(r55902);
        mpfr_init(r55903);
        mpfr_init(r55904);
}

double f_im(double x, double y) {
        mpfr_set_d(r55899, x, MPFR_RNDN);
        mpfr_mul(r55900, r55899, r55899, MPFR_RNDN);
        mpfr_set_d(r55901, y, MPFR_RNDN);
        mpfr_mul(r55902, r55901, r55901, MPFR_RNDN);
        mpfr_add(r55903, r55900, r55902, MPFR_RNDN);
        mpfr_sqrt(r55904, r55903, MPFR_RNDN);
        return mpfr_get_d(r55904, MPFR_RNDN);
}

static mpfr_t r55905, r55906, r55907, r55908, r55909, r55910, r55911, r55912, r55913, r55914, r55915, r55916, r55917, r55918, r55919, r55920, r55921, r55922, r55923;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55905);
        mpfr_init_set_str(r55906, "-9.5730411458898e+118", 10, MPFR_RNDN);
        mpfr_init(r55907);
        mpfr_init(r55908);
        mpfr_init_set_str(r55909, "2.4528332963254056e-195", 10, MPFR_RNDN);
        mpfr_init(r55910);
        mpfr_init(r55911);
        mpfr_init(r55912);
        mpfr_init(r55913);
        mpfr_init(r55914);
        mpfr_init(r55915);
        mpfr_init_set_str(r55916, "4.8611610197161825e-177", 10, MPFR_RNDN);
        mpfr_init(r55917);
        mpfr_init_set_str(r55918, "5.142867098030574e+148", 10, MPFR_RNDN);
        mpfr_init(r55919);
        mpfr_init(r55920);
        mpfr_init(r55921);
        mpfr_init(r55922);
        mpfr_init(r55923);
}

double f_fm(double x, double y) {
        mpfr_set_d(r55905, x, MPFR_RNDN);
        ;
        mpfr_set_si(r55907, mpfr_cmp(r55905, r55906) <= 0, MPFR_RNDN);
        mpfr_neg(r55908, r55905, MPFR_RNDN);
        ;
        mpfr_set_si(r55910, mpfr_cmp(r55905, r55909) <= 0, MPFR_RNDN);
        mpfr_mul(r55911, r55905, r55905, MPFR_RNDN);
        mpfr_set_d(r55912, y, MPFR_RNDN);
        mpfr_mul(r55913, r55912, r55912, MPFR_RNDN);
        mpfr_add(r55914, r55911, r55913, MPFR_RNDN);
        mpfr_sqrt(r55915, r55914, MPFR_RNDN);
        ;
        mpfr_set_si(r55917, mpfr_cmp(r55905, r55916) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r55919, mpfr_cmp(r55905, r55918) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r55919, MPFR_RNDN)) { mpfr_set(r55920, r55915, MPFR_RNDN); } else { mpfr_set(r55920, r55905, MPFR_RNDN); };
        if (mpfr_get_si(r55917, MPFR_RNDN)) { mpfr_set(r55921, r55905, MPFR_RNDN); } else { mpfr_set(r55921, r55920, MPFR_RNDN); };
        if (mpfr_get_si(r55910, MPFR_RNDN)) { mpfr_set(r55922, r55915, MPFR_RNDN); } else { mpfr_set(r55922, r55921, MPFR_RNDN); };
        if (mpfr_get_si(r55907, MPFR_RNDN)) { mpfr_set(r55923, r55908, MPFR_RNDN); } else { mpfr_set(r55923, r55922, MPFR_RNDN); };
        return mpfr_get_d(r55923, MPFR_RNDN);
}

static mpfr_t r55924, r55925, r55926, r55927, r55928, r55929, r55930, r55931, r55932, r55933, r55934, r55935, r55936, r55937, r55938, r55939, r55940, r55941, r55942;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55924);
        mpfr_init_set_str(r55925, "-9.5730411458898e+118", 10, MPFR_RNDN);
        mpfr_init(r55926);
        mpfr_init(r55927);
        mpfr_init_set_str(r55928, "2.4528332963254056e-195", 10, MPFR_RNDN);
        mpfr_init(r55929);
        mpfr_init(r55930);
        mpfr_init(r55931);
        mpfr_init(r55932);
        mpfr_init(r55933);
        mpfr_init(r55934);
        mpfr_init_set_str(r55935, "4.8611610197161825e-177", 10, MPFR_RNDN);
        mpfr_init(r55936);
        mpfr_init_set_str(r55937, "5.142867098030574e+148", 10, MPFR_RNDN);
        mpfr_init(r55938);
        mpfr_init(r55939);
        mpfr_init(r55940);
        mpfr_init(r55941);
        mpfr_init(r55942);
}

double f_dm(double x, double y) {
        mpfr_set_d(r55924, x, MPFR_RNDN);
        ;
        mpfr_set_si(r55926, mpfr_cmp(r55924, r55925) <= 0, MPFR_RNDN);
        mpfr_neg(r55927, r55924, MPFR_RNDN);
        ;
        mpfr_set_si(r55929, mpfr_cmp(r55924, r55928) <= 0, MPFR_RNDN);
        mpfr_mul(r55930, r55924, r55924, MPFR_RNDN);
        mpfr_set_d(r55931, y, MPFR_RNDN);
        mpfr_mul(r55932, r55931, r55931, MPFR_RNDN);
        mpfr_add(r55933, r55930, r55932, MPFR_RNDN);
        mpfr_sqrt(r55934, r55933, MPFR_RNDN);
        ;
        mpfr_set_si(r55936, mpfr_cmp(r55924, r55935) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r55938, mpfr_cmp(r55924, r55937) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r55938, MPFR_RNDN)) { mpfr_set(r55939, r55934, MPFR_RNDN); } else { mpfr_set(r55939, r55924, MPFR_RNDN); };
        if (mpfr_get_si(r55936, MPFR_RNDN)) { mpfr_set(r55940, r55924, MPFR_RNDN); } else { mpfr_set(r55940, r55939, MPFR_RNDN); };
        if (mpfr_get_si(r55929, MPFR_RNDN)) { mpfr_set(r55941, r55934, MPFR_RNDN); } else { mpfr_set(r55941, r55940, MPFR_RNDN); };
        if (mpfr_get_si(r55926, MPFR_RNDN)) { mpfr_set(r55942, r55927, MPFR_RNDN); } else { mpfr_set(r55942, r55941, MPFR_RNDN); };
        return mpfr_get_d(r55942, MPFR_RNDN);
}

