pub fn diagonal<T, const N: usize, const H: usize, const W: usize>( array: [T; N] ) -> [[T; W]; H]where T: Default,