use std::any::Any;
pub trait ClusterSummary {
fn summary_size(&self) -> usize;
fn distance(&self, other: &dyn ClusterSummary) -> f32;
fn extend(&mut self, other: &dyn ClusterSummary);
fn clear(&mut self);
fn as_any(&self) -> &dyn Any;
}
pub trait IndexableData {
fn get_value(&self, row_index: usize, column_index: usize) -> f32;
fn get_num_columns(&self) -> usize;
fn get_num_rows(&self) -> usize;
fn create_cluster_summary(&self, row_index: usize) -> Box<dyn ClusterSummary>;
}