1 2 3 4 5 6 7 8 9 10 11 12 13
pub(crate) fn new_strides_from_dim(dims: &[usize]) -> Vec<usize> { let mut rev_strides: Vec<_> = dims .iter() .rev() .scan(1, |state, &dim| { let tmp = Some(*state); *state *= dim; tmp }) .collect(); rev_strides.reverse(); rev_strides }