numshooter 0.2.1

High-performance mathematical library written in Rust
Documentation
#[inline(always)]
pub fn add(values: &[f64]) -> f64 {
    if values.is_empty() {
        return 0.0;
    }

    values.iter().sum()
}

#[inline(always)]
pub fn sub(values: &[f64]) -> f64 {
    if values.is_empty() {
        panic!("`sub` function needs at least one argument");
    }

    let first = values[0];
    first - values[1..].iter().sum::<f64>()
}

#[inline(always)]
pub fn mul(values: &[f64]) -> f64 {
    if values.is_empty() {
        return 1.0;
    }

    values.iter().product()
}

#[inline(always)]
pub fn div(values: &[f64]) -> f64 {
    if values.is_empty() {
        panic!("`div` function needs at least one argument");
    }

    let mut result = values[0];

    for &v in &values[1..] {
        result /= v;
    }

    result
}