1 /* 2 # This file is part of libkd. 3 # Licensed under a 3-clause BSD style license - see LICENSE 4 */ 5 6 #include "kdtree.h" 7 #include "kdtree_internal_common.h" 8 9 #include "kdint_etype_d.h" 10 #include "kdint_dtype_s.h" 11 #include "kdint_ttype_s.h" 12 13 #define POINT_ED(kd, d, r, func) (func(POINT_SCALE(kd, d, r))) 14 #define POINT_DT(kd, d, r, func) (r) 15 #define POINT_ET(kd, d, r, func) (func(POINT_SCALE(kd, d, r))) 16 17 #define POINT_TD(kd, d, r) (r) 18 #define POINT_DE(kd, d, r) POINT_INVSCALE(kd, d, r) 19 #define POINT_TE(kd, d, r) POINT_INVSCALE(kd, d, r) 20 21 #define DIST_ED(kd, dist, func) (func(DIST_SCALE(kd, dist))) 22 #define DIST_DT(kd, dist, func) (dist) 23 #define DIST_ET(kd, dist, func) (func(DIST_SCALE(kd, dist))) 24 25 #define DIST_TD(kd, dist) (dist) 26 #define DIST_DE(kd, dist) DIST_INVSCALE(kd, dist) 27 #define DIST_TE(kd, dist) DIST_INVSCALE(kd, dist) 28 29 #define DIST2_ED(kd, dist2, func) (func(DIST2_SCALE(kd, dist2))) 30 #define DIST2_DT(kd, dist2, func) (dist2) 31 #define DIST2_ET(kd, dist2, func) (func(DIST2_SCALE(kd, dist2))) 32 33 #define DIST2_TD(kd, dist2) (dist2) 34 #define DIST2_DE(kd, dist2) DIST2_INVSCALE(kd, dist2) 35 #define DIST2_TE(kd, dist2) DIST2_INVSCALE(kd, dist2) 36 37 #define EQUAL_ED 0 38 #define EQUAL_DT 1 39 #define EQUAL_ET 0 40 41 #include "kdtree_internal.c" 42 #include "kdtree_internal_fits.c" 43 44