diff --git a/sbp/src/operators/algos.rs b/sbp/src/operators/algos.rs index 659ce42..ad13240 100644 --- a/sbp/src/operators/algos.rs +++ b/sbp/src/operators/algos.rs @@ -316,10 +316,14 @@ pub(crate) fn diff_op_1d_slice_matrix::map_to_col(prev.array_windows::().next().unwrap()); - let fut = ColVector::<_, M>::map_to_col_mut((&mut fut[0..M]).try_into().unwrap()); + let fut = ColVector::<_, M>::map_to_col_mut(futb1.try_into().unwrap()); block.matmul_into(prev, fut); *fut *= idx; @@ -332,8 +336,7 @@ pub(crate) fn diff_op_1d_slice_matrix() .skip(window_elems_to_skip) - .zip(fut.array_chunks_mut::<1>().skip(M)) - .take(nx - 2 * M) + .zip(fut.array_chunks_mut::<1>()) { let fut = ColVector::<_, 1>::map_to_col_mut(f); let prev = ColVector::<_, D>::map_to_col(window); @@ -345,7 +348,7 @@ pub(crate) fn diff_op_1d_slice_matrix().next_back().unwrap(); let prev = ColVector::<_, N>::map_to_col(prev); - let fut = ColVector::<_, M>::map_to_col_mut((&mut fut[nx - M..]).try_into().unwrap()); + let fut = ColVector::<_, M>::map_to_col_mut(futb2.try_into().unwrap()); endblock.matmul_into(prev, fut); *fut *= idx;