Skip to main content

Slide

Struct Slide 

Source
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: Walk

How 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

Source

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§

Source§

impl Clone for Slide

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Slide

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.