#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 r55841 = x;
        float r55842 = r55841 * r55841;
        float r55843 = y;
        float r55844 = r55843 * r55843;
        float r55845 = r55842 + r55844;
        float r55846 = sqrt(r55845);
        return r55846;
}

double f_id(double x, double y) {
        double r55847 = x;
        double r55848 = r55847 * r55847;
        double r55849 = y;
        double r55850 = r55849 * r55849;
        double r55851 = r55848 + r55850;
        double r55852 = sqrt(r55851);
        return r55852;
}


double f_of(float x, float y) {
        float r55853 = x;
        float r55854 = -3.993615069801488e+125;
        bool r55855 = r55853 <= r55854;
        float r55856 = -r55853;
        float r55857 = 2.447855958190132e-195;
        bool r55858 = r55853 <= r55857;
        float r55859 = r55853 * r55853;
        float r55860 = y;
        float r55861 = r55860 * r55860;
        float r55862 = r55859 + r55861;
        float r55863 = sqrt(r55862);
        float r55864 = 2.240485188259365e-180;
        bool r55865 = r55853 <= r55864;
        float r55866 = 5.62501088847094e+147;
        bool r55867 = r55853 <= r55866;
        float r55868 = r55867 ? r55863 : r55853;
        float r55869 = r55865 ? r55853 : r55868;
        float r55870 = r55858 ? r55863 : r55869;
        float r55871 = r55855 ? r55856 : r55870;
        return r55871;
}

double f_od(double x, double y) {
        double r55872 = x;
        double r55873 = -3.993615069801488e+125;
        bool r55874 = r55872 <= r55873;
        double r55875 = -r55872;
        double r55876 = 2.447855958190132e-195;
        bool r55877 = r55872 <= r55876;
        double r55878 = r55872 * r55872;
        double r55879 = y;
        double r55880 = r55879 * r55879;
        double r55881 = r55878 + r55880;
        double r55882 = sqrt(r55881);
        double r55883 = 2.240485188259365e-180;
        bool r55884 = r55872 <= r55883;
        double r55885 = 5.62501088847094e+147;
        bool r55886 = r55872 <= r55885;
        double r55887 = r55886 ? r55882 : r55872;
        double r55888 = r55884 ? r55872 : r55887;
        double r55889 = r55877 ? r55882 : r55888;
        double r55890 = r55874 ? r55875 : r55889;
        return r55890;
}

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 r55891, r55892, r55893, r55894, r55895, r55896;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55891);
        mpfr_init(r55892);
        mpfr_init(r55893);
        mpfr_init(r55894);
        mpfr_init(r55895);
        mpfr_init(r55896);
}

double f_im(double x, double y) {
        mpfr_set_d(r55891, x, MPFR_RNDN);
        mpfr_mul(r55892, r55891, r55891, MPFR_RNDN);
        mpfr_set_d(r55893, y, MPFR_RNDN);
        mpfr_mul(r55894, r55893, r55893, MPFR_RNDN);
        mpfr_add(r55895, r55892, r55894, MPFR_RNDN);
        mpfr_sqrt(r55896, r55895, MPFR_RNDN);
        return mpfr_get_d(r55896, MPFR_RNDN);
}

static mpfr_t r55897, r55898, r55899, r55900, r55901, r55902, r55903, r55904, r55905, r55906, r55907, r55908, r55909, r55910, r55911, r55912, r55913, r55914, r55915;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55897);
        mpfr_init_set_str(r55898, "-3.993615069801488e+125", 10, MPFR_RNDN);
        mpfr_init(r55899);
        mpfr_init(r55900);
        mpfr_init_set_str(r55901, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r55902);
        mpfr_init(r55903);
        mpfr_init(r55904);
        mpfr_init(r55905);
        mpfr_init(r55906);
        mpfr_init(r55907);
        mpfr_init_set_str(r55908, "2.240485188259365e-180", 10, MPFR_RNDN);
        mpfr_init(r55909);
        mpfr_init_set_str(r55910, "5.62501088847094e+147", 10, MPFR_RNDN);
        mpfr_init(r55911);
        mpfr_init(r55912);
        mpfr_init(r55913);
        mpfr_init(r55914);
        mpfr_init(r55915);
}

double f_fm(double x, double y) {
        mpfr_set_d(r55897, x, MPFR_RNDN);
        ;
        mpfr_set_si(r55899, mpfr_cmp(r55897, r55898) <= 0, MPFR_RNDN);
        mpfr_neg(r55900, r55897, MPFR_RNDN);
        ;
        mpfr_set_si(r55902, mpfr_cmp(r55897, r55901) <= 0, MPFR_RNDN);
        mpfr_mul(r55903, r55897, r55897, MPFR_RNDN);
        mpfr_set_d(r55904, y, MPFR_RNDN);
        mpfr_mul(r55905, r55904, r55904, MPFR_RNDN);
        mpfr_add(r55906, r55903, r55905, MPFR_RNDN);
        mpfr_sqrt(r55907, r55906, MPFR_RNDN);
        ;
        mpfr_set_si(r55909, mpfr_cmp(r55897, r55908) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r55911, mpfr_cmp(r55897, r55910) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r55911, MPFR_RNDN)) { mpfr_set(r55912, r55907, MPFR_RNDN); } else { mpfr_set(r55912, r55897, MPFR_RNDN); };
        if (mpfr_get_si(r55909, MPFR_RNDN)) { mpfr_set(r55913, r55897, MPFR_RNDN); } else { mpfr_set(r55913, r55912, MPFR_RNDN); };
        if (mpfr_get_si(r55902, MPFR_RNDN)) { mpfr_set(r55914, r55907, MPFR_RNDN); } else { mpfr_set(r55914, r55913, MPFR_RNDN); };
        if (mpfr_get_si(r55899, MPFR_RNDN)) { mpfr_set(r55915, r55900, MPFR_RNDN); } else { mpfr_set(r55915, r55914, MPFR_RNDN); };
        return mpfr_get_d(r55915, MPFR_RNDN);
}

static mpfr_t r55916, r55917, r55918, r55919, r55920, r55921, r55922, r55923, r55924, r55925, r55926, r55927, r55928, r55929, r55930, r55931, r55932, r55933, r55934;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55916);
        mpfr_init_set_str(r55917, "-3.993615069801488e+125", 10, MPFR_RNDN);
        mpfr_init(r55918);
        mpfr_init(r55919);
        mpfr_init_set_str(r55920, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r55921);
        mpfr_init(r55922);
        mpfr_init(r55923);
        mpfr_init(r55924);
        mpfr_init(r55925);
        mpfr_init(r55926);
        mpfr_init_set_str(r55927, "2.240485188259365e-180", 10, MPFR_RNDN);
        mpfr_init(r55928);
        mpfr_init_set_str(r55929, "5.62501088847094e+147", 10, MPFR_RNDN);
        mpfr_init(r55930);
        mpfr_init(r55931);
        mpfr_init(r55932);
        mpfr_init(r55933);
        mpfr_init(r55934);
}

double f_dm(double x, double y) {
        mpfr_set_d(r55916, x, MPFR_RNDN);
        ;
        mpfr_set_si(r55918, mpfr_cmp(r55916, r55917) <= 0, MPFR_RNDN);
        mpfr_neg(r55919, r55916, MPFR_RNDN);
        ;
        mpfr_set_si(r55921, mpfr_cmp(r55916, r55920) <= 0, MPFR_RNDN);
        mpfr_mul(r55922, r55916, r55916, MPFR_RNDN);
        mpfr_set_d(r55923, y, MPFR_RNDN);
        mpfr_mul(r55924, r55923, r55923, MPFR_RNDN);
        mpfr_add(r55925, r55922, r55924, MPFR_RNDN);
        mpfr_sqrt(r55926, r55925, MPFR_RNDN);
        ;
        mpfr_set_si(r55928, mpfr_cmp(r55916, r55927) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r55930, mpfr_cmp(r55916, r55929) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r55930, MPFR_RNDN)) { mpfr_set(r55931, r55926, MPFR_RNDN); } else { mpfr_set(r55931, r55916, MPFR_RNDN); };
        if (mpfr_get_si(r55928, MPFR_RNDN)) { mpfr_set(r55932, r55916, MPFR_RNDN); } else { mpfr_set(r55932, r55931, MPFR_RNDN); };
        if (mpfr_get_si(r55921, MPFR_RNDN)) { mpfr_set(r55933, r55926, MPFR_RNDN); } else { mpfr_set(r55933, r55932, MPFR_RNDN); };
        if (mpfr_get_si(r55918, MPFR_RNDN)) { mpfr_set(r55934, r55919, MPFR_RNDN); } else { mpfr_set(r55934, r55933, MPFR_RNDN); };
        return mpfr_get_d(r55934, MPFR_RNDN);
}

