pub struct ErasedTensorExpand<E: Numeric, IO> { /* private fields */ }Expand description
Expand type for ErasedTensor.
Implementations§
Source§impl<E: Numeric, IO> ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> ErasedTensorExpand<E, IO>
Sourcepub fn new<S: ErasedBacking<E, IO> + 'static>(backing: S) -> Self
pub fn new<S: ErasedBacking<E, IO> + 'static>(backing: S) -> Self
Erase backing’s width.
Takes the expand, because that is where a width is known: the caller
has the N-typed backing in hand and gives up naming it here.
Source§impl<E: Numeric, IO: ErasedIoRead> ErasedTensorExpand<E, IO>
impl<E: Numeric, IO: ErasedIoRead> ErasedTensorExpand<E, IO>
Sourcepub fn __expand_read_method<N: Size>(
&self,
scope: &Scope,
index: <usize as CubeType>::ExpandType,
) -> <Vector<E, N> as CubeType>::ExpandType
pub fn __expand_read_method<N: Size>( &self, scope: &Scope, index: <usize as CubeType>::ExpandType, ) -> <Vector<E, N> as CubeType>::ExpandType
Read one N-wide line at index, counted in lines.
§Panics
At expansion, when N is not the width the tensor was built for.
Sourcepub fn __expand_read<N: Size>(
scope: &Scope,
this: &Self,
index: <usize as CubeType>::ExpandType,
) -> <Vector<E, N> as CubeType>::ExpandType
pub fn __expand_read<N: Size>( scope: &Scope, this: &Self, index: <usize as CubeType>::ExpandType, ) -> <Vector<E, N> as CubeType>::ExpandType
Read one N-wide line at index, counted in lines.
§Panics
At expansion, when N is not the width the tensor was built for.
Source§impl<E: Numeric, IO: ErasedIoWrite> ErasedTensorExpand<E, IO>
impl<E: Numeric, IO: ErasedIoWrite> ErasedTensorExpand<E, IO>
Sourcepub fn __expand_write_method<N: Size>(
&mut self,
scope: &Scope,
index: <usize as CubeType>::ExpandType,
value: <Vector<E, N> as CubeType>::ExpandType,
)
pub fn __expand_write_method<N: Size>( &mut self, scope: &Scope, index: <usize as CubeType>::ExpandType, value: <Vector<E, N> as CubeType>::ExpandType, )
Write one N-wide line at index, counted in lines.
§Panics
At expansion, when N is not the width the tensor was built for.
Sourcepub fn __expand_write<N: Size>(
scope: &Scope,
this: &mut Self,
index: <usize as CubeType>::ExpandType,
value: <Vector<E, N> as CubeType>::ExpandType,
)
pub fn __expand_write<N: Size>( scope: &Scope, this: &mut Self, index: <usize as CubeType>::ExpandType, value: <Vector<E, N> as CubeType>::ExpandType, )
Write one N-wide line at index, counted in lines.
§Panics
At expansion, when N is not the width the tensor was built for.
Source§impl<E: Numeric, IO: ErasedIo> ErasedTensorExpand<E, IO>
impl<E: Numeric, IO: ErasedIo> ErasedTensorExpand<E, IO>
Sourcepub fn __expand_len_method(
&self,
scope: &Scope,
) -> <usize as CubeType>::ExpandType
pub fn __expand_len_method( &self, scope: &Scope, ) -> <usize as CubeType>::ExpandType
How many lines the tensor holds.
Sourcepub fn __expand_len(
scope: &Scope,
this: &Self,
) -> <usize as CubeType>::ExpandType
pub fn __expand_len( scope: &Scope, this: &Self, ) -> <usize as CubeType>::ExpandType
How many lines the tensor holds.
Trait Implementations§
Source§impl<E: Numeric, IO> AsMutExpand for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> AsMutExpand for ErasedTensorExpand<E, IO>
fn __expand_ref_mut_method(&mut self, _: &Scope) -> &mut Self
fn __expand_as_mut_method(&mut self, scope: &Scope) -> &mut T
Source§impl<E: Numeric, IO> AsRefExpand for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> AsRefExpand for ErasedTensorExpand<E, IO>
fn __expand_ref_method(&self, _: &Scope) -> &Self
fn __expand_as_ref_method(&self, scope: &Scope) -> &T
Source§impl<E: Numeric, IO> Clone for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> Clone for ErasedTensorExpand<E, IO>
Source§impl<E: Numeric, IO> CubeDebug for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> CubeDebug for ErasedTensorExpand<E, IO>
Source§fn set_debug_name(&self, scope: &Scope, name: &'static str)
fn set_debug_name(&self, scope: &Scope, name: &'static str)
Set the debug name of this type’s expansion. Should do nothing for types that don’t appear
at runtime
Source§impl<E: Numeric, IO> ExpandTypeClone for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> ExpandTypeClone for ErasedTensorExpand<E, IO>
Source§fn clone_unchecked(&self) -> Self
fn clone_unchecked(&self) -> Self
Unchecked clone that only clones the conceptual runtime value. Should only be used in cases
where each copy is used in a mutually exclusive branch (i.e. match, runtime enums). This is
intentionally separated from Rust’s
Clone semantics and should only be used for the
conceptual expand values, never real data. Using two values in the same branch is undefined
behaviour.Source§impl<E: Numeric, N: Size> From<VirtualTensorExpand<E, N, ReadOnly>> for ErasedTensorExpand<E, ReadOnly>
impl<E: Numeric, N: Size> From<VirtualTensorExpand<E, N, ReadOnly>> for ErasedTensorExpand<E, ReadOnly>
Source§fn from(tensor: VirtualTensorExpand<E, N, ReadOnly>) -> Self
fn from(tensor: VirtualTensorExpand<E, N, ReadOnly>) -> Self
Converts to this type from the input type.
Source§impl<E: Numeric, N: Size> From<VirtualTensorExpand<E, N, ReadWrite>> for ErasedTensorExpand<E, ReadWrite>
impl<E: Numeric, N: Size> From<VirtualTensorExpand<E, N, ReadWrite>> for ErasedTensorExpand<E, ReadWrite>
Source§fn from(tensor: VirtualTensorExpand<E, N, ReadWrite>) -> Self
fn from(tensor: VirtualTensorExpand<E, N, ReadWrite>) -> Self
Converts to this type from the input type.
Source§impl<E: Numeric, IO> IntoExpand for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> IntoExpand for ErasedTensorExpand<E, IO>
type Expand = ErasedTensorExpand<E, IO>
fn into_expand(self, _: &Scope) -> Self::Expand
Source§impl<E: Numeric, IO> IntoMut for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO> IntoMut for ErasedTensorExpand<E, IO>
Source§impl<E: Numeric, IO: ErasedIo> VectorizedExpand for ErasedTensorExpand<E, IO>
impl<E: Numeric, IO: ErasedIo> VectorizedExpand for ErasedTensorExpand<E, IO>
fn __expand_vector_size_method(&self, scope: &Scope) -> VectorSize
Source§impl<E: Numeric, N: Size, IO: ErasedIo> ViewOperationsExpand<Vector<E, N>, usize> for ErasedTensorExpand<E, IO>
impl<E: Numeric, N: Size, IO: ErasedIo> ViewOperationsExpand<Vector<E, N>, usize> for ErasedTensorExpand<E, IO>
fn __expand_read_method( &self, scope: &Scope, pos: NativeExpand<usize>, ) -> <Vector<E, N> as CubeType>::ExpandType
fn __expand_read_checked_method( &self, scope: &Scope, pos: NativeExpand<usize>, ) -> <Vector<E, N> as CubeType>::ExpandType
fn __expand_read_masked_method( &self, scope: &Scope, pos: NativeExpand<usize>, mask_value: <Vector<E, N> as CubeType>::ExpandType, ) -> <Vector<E, N> as CubeType>::ExpandType
fn __expand_read_unchecked_method( &self, scope: &Scope, pos: NativeExpand<usize>, ) -> <Vector<E, N> as CubeType>::ExpandType
fn __expand_as_linear_slice_method( &self, _scope: &Scope, _pos: NativeExpand<usize>, _end: NativeExpand<usize>, ) -> &SliceExpand<Vector<E, N>>
fn __expand_shape_method(&self, scope: &Scope) -> NativeExpand<usize>
fn __expand_is_in_bounds_method( &self, scope: &Scope, pos: NativeExpand<usize>, ) -> NativeExpand<bool>
fn __expand_tensor_map_load_method( &self, _scope: &Scope, _barrier: &NativeExpand<Barrier>, _shared_memory: &mut SliceExpand<Vector<E, N>>, _pos: NativeExpand<usize>, )
Source§impl<E: Numeric, N: Size, IO: ErasedIoWrite> ViewOperationsMutExpand<Vector<E, N>, usize> for ErasedTensorExpand<E, IO>
impl<E: Numeric, N: Size, IO: ErasedIoWrite> ViewOperationsMutExpand<Vector<E, N>, usize> for ErasedTensorExpand<E, IO>
fn __expand_write_method( &self, scope: &Scope, pos: NativeExpand<usize>, value: <Vector<E, N> as CubeType>::ExpandType, )
fn __expand_write_checked_method( &self, scope: &Scope, pos: NativeExpand<usize>, value: <Vector<E, N> as CubeType>::ExpandType, )
fn __expand_as_linear_slice_mut_method( &self, _scope: &Scope, _pos: NativeExpand<usize>, _end: NativeExpand<usize>, ) -> &mut SliceExpand<Vector<E, N>>
fn __expand_tensor_map_store_method( &self, _scope: &Scope, _shared_memory: &SliceExpand<Vector<E, N>>, _pos: NativeExpand<usize>, )
Auto Trait Implementations§
impl<E, IO> !RefUnwindSafe for ErasedTensorExpand<E, IO>
impl<E, IO> !Send for ErasedTensorExpand<E, IO>
impl<E, IO> !Sync for ErasedTensorExpand<E, IO>
impl<E, IO> !UnwindSafe for ErasedTensorExpand<E, IO>
impl<E, IO> Freeze for ErasedTensorExpand<E, IO>
impl<E, IO> Unpin for ErasedTensorExpand<E, IO>
impl<E, IO> UnsafeUnpin for ErasedTensorExpand<E, IO>where
Arc<UnsafeCell<dyn ErasedTensorOperationsExpand<E>>>: UnsafeUnpin,
PhantomData<IO>: UnsafeUnpin,
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> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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