runn 0.1.1

Runn is a feature-rich, easy-to-use library for building, training, and evaluating feed-forward neural networks in Rust
Documentation
use crate::matrix::DMat;

pub mod min_max;
pub mod zscore;

#[typetag::serde]
pub trait Normalization: NormalizationClone + Send + Sync {
    fn normalize(&mut self, matrix: &mut DMat) -> Result<(), String>;
    fn denormalize(&self, matrix: &mut DMat) -> Result<(), String>;
}

pub trait NormalizationClone {
    fn clone_box(&self) -> Box<dyn Normalization>;
}
impl<T> NormalizationClone for T
where
    T: 'static + Normalization + Clone,
{
    fn clone_box(&self) -> Box<dyn Normalization> {
        Box::new(self.clone())
    }
}

impl Clone for Box<dyn Normalization> {
    fn clone(&self) -> Box<dyn Normalization> {
        self.clone_box()
    }
}