pub struct ProductPlan {
pub layout: Layout,
pub iteration: Layout,
pub mappings: [Mapping; 2],
pub contracted: usize,
}Expand description
Layout and reads of an inner product. Contracted axes follow output axes in iteration.
Fields§
§layout: Layout§iteration: Layout§mappings: [Mapping; 2]§contracted: usizeImplementations§
Source§impl ProductPlan
impl ProductPlan
Sourcepub fn contracted_len(&self) -> usize
pub fn contracted_len(&self) -> usize
The number of pairings each result folds: the product of the contracted axes’ lengths.
pub fn folded( iteration: Layout, mappings: [Mapping; 2], contracted: usize, ) -> Result<ProductPlan, Error>
Sourcepub fn matrix_for(&self, inputs: [Read<'_>; 2]) -> Option<MatrixProduct>
pub fn matrix_for(&self, inputs: [Read<'_>; 2]) -> Option<MatrixProduct>
The matrix product that runs this plan, from the iteration axes each operand steps along: its read’s steps where the read reaches its items positionally, and otherwise its mappings entry’s, which says which items it reads. An axis that no read steps along, as a broadcast gives, takes the class of the operands whose free axis mappings makes it, and an axis of one item takes the class of the axis before it. None where the axes don’t fall into frames, rows and columns, in that order.
pub fn dot(_: [&Layout; 2]) -> Result<ProductPlan, Error>
pub fn matrices( inputs: [&Layout; 2], frame: usize, ) -> Result<ProductPlan, Error>
Trait Implementations§
Source§impl Clone for ProductPlan
impl Clone for ProductPlan
Source§fn clone(&self) -> ProductPlan
fn clone(&self) -> ProductPlan
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ProductPlan
impl !UnwindSafe for ProductPlan
impl Forget for ProductPlan
impl Freeze for ProductPlan
impl Send for ProductPlan
impl Sync for ProductPlan
impl Unpin for ProductPlan
impl UnsafeUnpin for ProductPlan
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
Mutably borrows from an owned value. Read more
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> ⓘ
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 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> ⓘ
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