pub struct Slide {
pub walk: Walk,
pub region: Range<usize>,
pub dims: Vec<usize>,
pub widths: Vec<usize>,
pub every: Vec<usize>,
pub tables: Vec<Steps>,
}Expand description
A fold along one or two axes of a copy whose axes walk windows of its source, run as sliding folds over the source’s rows without building the windows (crate::reduce::sliding and crate::reduce::sliding_2d). Walk classifies the copy. Each folded axis is a window’s axis that moves one position at a time along its source axis. The copy’s other axes along that source axis move by 1, where the windows slide, or by whole windows, where they tile it, as pooling’s do. basedpl folds its pending copies of windows this way, and the Python API its views of windows.
Fields§
§walk: WalkHow the copy walks its source.
region: Range<usize>The offsets of the source items that the folds read: for one fold, the rows that it reads along its source axis, or the whole source where a source axis before the fold’s holds more than one item, and for two folds the whole source.
dims: Vec<usize>The region as rows, with each fold along a middle axis: [outer, len, inner] for one folded axis, where windows that tile fold one tile to a row, and [outer, len1, mid, len2, inner] for two, in the order of their source axes.
widths: Vec<usize>Each fold’s window width, in the order of dims.
every: Vec<usize>The positions between the starts of each fold’s windows, in the order of dims: 1 where they slide, and the width where they tile.
tables: Vec<Steps>The tables through which the copy without its folded axes reads the folds’ results.
Implementations§
Source§impl Slide
impl Slide
Sourcepub fn new(
tables: &[Steps],
shape: &[usize],
source: &[usize],
axes: &[usize],
) -> Option<Self>
pub fn new( tables: &[Steps], shape: &[usize], source: &[usize], axes: &[usize], ) -> Option<Self>
The sliding folds along axes, one axis or two, of the copy of shape that tables read from a source of shape source. Two folds need windows along two source axes, each covering its whole axis, and a last source axis after both of at least two items, as crate::reduce::sliding_2d takes them. None for any other copy: one that reads fills, one with an axis of more than one item that walks no source axis, one that reads a source axis that none of its axes walks at a position other than 0, one whose folded axis doesn’t move by 1 along its source axis or is the only axis along it, and one whose other axes along a folded axis’s source axis neither move by 1 nor tile it. None also for a window narrower than two items.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Slide
impl !UnwindSafe for Slide
impl Forget for Slide
impl Freeze for Slide
impl Send for Slide
impl Sync for Slide
impl Unpin for Slide
impl UnsafeUnpin for Slide
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more