module T: Knn.Make(Params)
type a = M.a
type 'a node =
| |
Node of a * 'a * 'a node list |
type 'a t = 'a node list
val distance : M.a -> M.a -> float
val max_degree : int
val empty : 'a list
val float_list_sum : float list -> float
Some list-of-float utilities.
val float_list_min : float list -> float
val distant_roots : int ->
(M.a * 'a) list -> (M.a * 'a) list -> (M.a * 'a) list * (M.a * 'a) list
Finds distant points to use as top-level roots.
val create_balanced : (a * 'a) list -> 'a node list
val create_subtrees : (a * 'a) list -> (a * 'a) list -> 'a node list
val add : a -> 'a -> 'a node list -> 'a node list
Add a point to a tree.
val find_k_nearest_1 : 'a node list -> int -> float -> M.a -> 'a node list
Find the k nearest neighbors.
val find_k_nearest : 'a node list -> int -> float -> M.a -> (float * M.a * 'a) list
val contents : 'a node list -> (a * 'a) list
The contents of the tree, as a list.
val contents1 : 'a node -> (a * 'a) list
val rebalance : 'a node list -> 'a node list
Rebalance the whole tree. Slow!