in Rust/src/nodestore.rs [56:104]
fn get_mass(&self, index: usize) -> usize;
fn get_box(&self, index: usize, point_store: &dyn PointStore) -> BoundingBox;
fn get_probability_of_cut(
&self,
index: usize,
point: &[f32],
point_store: &dyn PointStore,
) -> f64;
fn grow_node_box_pair(
&self,
first: &mut BoundingBox,
second: &mut BoundingBox,
point_store: &dyn PointStore,
node: usize,
sibling: usize,
);
fn grow_node_box(
&self,
bounding_box: &mut BoundingBox,
point_store: &dyn PointStore,
node: usize,
sibling: usize,
);
fn get_sibling(&self, node: usize, parent: usize) -> usize;
fn get_leaf_point_index(&self, index: usize) -> usize;
fn get_cut_dimension(&self, index: usize) -> usize;
fn get_left_index(&self, index: usize) -> usize;
fn get_right_index(&self, index: usize) -> usize;
fn get_cut_value(&self, index: usize) -> f32;
fn is_leaf(&self, index: usize) -> bool;
fn is_left_of(&self, index: usize, point: &[f32]) -> bool;
fn use_path_for_box(&self) -> bool;
fn get_distribution(&self, index: usize) -> (usize, f32, usize, usize);
fn get_cut_and_children(&self, index: usize) -> (usize, f32, usize, usize);
fn get_path(&self, root: usize, point: &[f32]) -> Vec<(usize, usize)>;
}
impl<C, P, N> VectorNodeStore<C, P, N>
where
C: Location,
usize: From<C>,
P: Location,
usize: From<P>,
N: Location,
usize: From<N>,
<C as TryFrom<usize>>::Error: Debug,
<P as TryFrom<usize>>::Error: Debug,
<N as TryFrom<usize>>::Error: Debug,
{