Jump to content

K-d tree: Difference between revisions

m
(→‎{{header|Common Lisp}}: make code organization more idiomatic, remove redefinition spamming)
Line 601:
&aux (dims (length target)))
"process one set of data & optionally display tree"
(let* ((*hits* 0))
(let* ( (kdt (make-kdtree 0 data dims))
(nn (nn-kdtree kdt (list) target)))
(when render
(visit-kdtree kdt
:node-function
(lambda (n)
(format t
"~A node: axis:~A point: ~A target:~A semi-distance-sqd:~A euclidean-distance-sqd:~A~%"
(if (not (next-node n target))
"TERMINAL"
"BRANCH")
(first n)
(second n)
target
(distance n target :semi t)
(distance n target)))))
(format t "~%NN to ~A is ~A, distance ~A [tree has ~A nodes, ~A were visited.]~%"
target
(second nn)
(sqrt (distance nn target))
(count-nodes kdt)
*hits*))))
 
(defun main ()
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.