82         Scalar* points, 
int first_index, 
int last_index, 
char** next_node_data);
    88         int* counts, 
int* assignment) 
const;
    91         int test_index) 
const;
    96         const Node* node, 
int new_cluster, 
Scalar* centers,
 
KmTree(int n, int d, Scalar *points)
 
bool ShouldBePruned(Scalar *box_median, Scalar *box_radius, Scalar *centers, int best_index, int test_index) const
 
Scalar GetNodeCost(const Node *node, Scalar *center) const
 
Scalar DoKMeansStep(int k, Scalar *centers, int *assignment) const
 
Scalar SeedKmppUpdateAssignment(const Node *node, int new_cluster, Scalar *centers, Scalar *dist_sq) const
 
Scalar DoKMeansStepAtNode(const Node *node, int k, int *candidates, Scalar *centers, Scalar *sums, int *counts, int *assignment) const
 
Scalar SeedKMeansPlusPlus(int k, Scalar *centers) const
 
Node * BuildNodes(Scalar *points, int first_index, int last_index, char **next_node_data)
 
void SeedKmppSetClusterIndex(const Node *node, int index) const