[][src]Module broccoli::analyze

Contains code to help analyze the Tree structure. Only used to measure the performance of the structure.

Modules

assert

Functions that panic if a disconnect between query results is detected between broccoli::Tree and the naive equivalent.

Structs

SplitterEmpty

For cases where you don't care about any of the callbacks that Splitter provides, this implements them all to do nothing.

TreeBuilder

Builder pattern for Tree. For most usecases, the user is suggested to use the built in new() functions to create the tree. This is provided in cases the user wants more control on the behavior of the tree for benching and debuging purposes.

Enums

BinStrat

Passed to the binning algorithm to determine if the binning algorithm should check for index out of bounds.

Constants

DEFAULT_NUMBER_ELEM_PER_NODE

Returns the height of a dyn tree for a given number of bots. The height is chosen such that the nodes will each have a small amount of bots. If we had a node per bot, the tree would have too many levels. Too much time would be spent recursing. If we had too many bots per node, you would lose the properties of a tree, and end up with plain sweep and prune. Theory would tell you to just make a node per bot, but there is a sweet spot inbetween determined by the real-word properties of your computer.

Traits

Splitter

A trait that gives the user callbacks at events in a recursive algorithm on the tree. The main motivation behind this trait was to track the time spent taken at each level of the tree during construction.

Functions

compute_tree_height_heuristic

Outputs the height given an desirned number of bots per node.

nodes_left