fux_kdtree 0.2.0

K-dimensional tree implemented in Rust for fast NN querying.
Documentation
pub fn squared_euclidean(a: &[f64], b: &[f64]) -> f64 {
    debug_assert!(a.len() == b.len());

    a.iter().zip(b.iter())
        .map(|(x, y)| (x - y) * (x - y))
        .sum()
}


#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn squared_euclidean_test_1d() {
        let a = [2.];
        let b = [4.];
        let c = [-2.];

        assert_eq!(0., squared_euclidean(&a, &a));

        assert_eq!(4., squared_euclidean(&a, &b));

        assert_eq!(16., squared_euclidean(&a, &c));
    }

    #[test]
    fn squared_euclidean_test_2d() {
        let a = [2., 2.];
        let b = [4., 2.];
        let c = [4., 4.];

        assert_eq!(0., squared_euclidean(&a, &a));

        assert_eq!(4., squared_euclidean(&a, &b));

        assert_eq!(8., squared_euclidean(&a, &c));
    }
}