fuzzy-logic_rs 0.5.0

An implementation of fuzzy logic in rust!
Documentation
#[derive(Debug)]
pub enum Implications {
    Min,
    Product,
    Custom(fn(f64, &Vec<f64>) -> Vec<f64>),
}

impl Implications {
    pub fn implication(&self, mu: f64, vec: &Vec<f64>) -> Vec<f64> {
        match self {
            Self::Min => min_implication(mu, &vec),
            Self::Product => product_implication(mu, &vec),
            Self::Custom(func) => func(mu, &vec),
        }
    }
}

pub fn min_implication(mu: f64, vec: &Vec<f64>) -> Vec<f64> {
    vec.iter().map(|e| e.min(mu)).collect()
}

pub fn product_implication(mu: f64, vec: &Vec<f64>) -> Vec<f64> {
    vec.iter().map(|e| e * mu).collect()
}