s2gpp 1.0.2

Algorithm for Highly Efficient Detection of Correlation Anomalies in Multivariate Time Series
Documentation
mod messages;
mod minmax;
mod std;

use ndarray::Array1;

pub use crate::data_manager::stats_collector::messages::*;
pub use crate::data_manager::stats_collector::minmax::{MinMaxCalculation, MinMaxCalculator};
pub use crate::data_manager::stats_collector::std::{StdCalculation, StdCalculator};

#[derive(Default, Clone, Debug)]
pub struct DatasetStats {
    pub min_col: Option<Array1<f32>>,
    pub max_col: Option<Array1<f32>>,
    pub std_col: Option<Array1<f32>>,
    pub n: Option<usize>,
}

impl DatasetStats {
    #[allow(dead_code)]
    pub fn new(std_col: Array1<f32>, min_col: Array1<f32>, max_col: Array1<f32>, n: usize) -> Self {
        Self {
            min_col: Some(min_col),
            max_col: Some(max_col),
            std_col: Some(std_col),
            n: Some(n),
        }
    }

    pub fn is_done(&self) -> bool {
        matches!(
            (&self.std_col, &self.min_col, &self.max_col),
            (Some(_), Some(_), Some(_))
        )
    }
}