K-d tree: Difference between revisions

32 bytes added ,  10 years ago
use __slots__ for KdTree
(pass tuple to namedtuple)
(use __slots__ for KdTree)
Line 995:
 
class KdTree(object):
__slots__ = ("n", "bounds")
def __init__(self, pts, bounds_):
 
def __init__(self, pts, bounds_bounds):
def nk2(split, exset):
if not exset:
Line 1,002 ⟶ 1,004:
m = len(exset) // 2
d = exset[m]
while m + 1 < len(exset) and exset[m + 1][split] == d[split]:
m += 1
 
s2 = (split + 1) % len(d) # cycle coordinates
return KdNode(d, split, nk2(s2, exset[:m]),
nk2(s2, exset[m + 1:]))
self.n = nk2(0, pts)
self.bounds = bounds_bounds
 
T3 = namedtuple("T3", ("nearest", "dist_sqd", "nodes_visited"))