use na::{self, Scalar, Real, DefaultAllocator}; use traits::{Number, Alloc, Dimension}; use aliases::Mat; pub fn comp_add(m: &Mat) -> N where DefaultAllocator: Alloc { m.iter().fold(N::zero(), |x, y| x + *y) } pub fn comp_max(m: &Mat) -> N where DefaultAllocator: Alloc { m.iter().fold(N::min_value(), |x, y| na::sup(&x, y)) } pub fn comp_min(m: &Mat) -> N where DefaultAllocator: Alloc { m.iter().fold(N::max_value(), |x, y| na::inf(&x, y)) } pub fn comp_mul(m: &Mat) -> N where DefaultAllocator: Alloc { m.iter().fold(N::one(), |x, y| x * *y) } //pub fn vec< L, floatType, Q > compNormalize (vec< L, T, Q > const &v) //pub fn vec< L, T, Q > compScale (vec< L, floatType, Q > const &v)