You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ndarray::ArrayViewMut::windows should produce mutable windows #1357
Calling .windows() on an ndarray::ArrayViewMut should return mutable windows. That's very useful when, for example, you iterate over a partition of an interval and the quantities you compute affect values living on both ends of the interval.
That's not possible by lifetime rules in Rust - the iterator's elements are simultaneously valid, and since they are windows, they partially overlap, which is not allowed for mutable references.
We'll need to update the issue with a plan for a way to get the intended effect in a way we can implement.
There is a pattern known as "lending iterators" which allow things like windows_mut. See this article by Niko Matsakis for the general concept, and thesecrates for implementations of that pattern. We could then support a windows_mut function that returns this kind of iterator.
Activity
bluss commentedon Feb 5, 2024
That's not possible by lifetime rules in Rust - the iterator's elements are simultaneously valid, and since they are windows, they partially overlap, which is not allowed for mutable references.
We'll need to update the issue with a plan for a way to get the intended effect in a way we can implement.
akern40 commentedon Oct 24, 2024
There is a pattern known as "lending iterators" which allow things like
windows_mut. See this article by Niko Matsakis for the general concept, and these crates for implementations of that pattern. We could then support awindows_mutfunction that returns this kind of iterator.