Struct cubecl_core::frontend::Array

source ·
pub struct Array<E> { /* private fields */ }
Expand description

A contiguous array of elements.

Implementations§

source§

impl<T: CubePrimitive + Clone> Array<T>

source

pub fn new<S: Index>(_size: S) -> Self

source

pub fn vectorized<S: Index>(_size: S, _vectorization_factor: UInt) -> Self

source

pub fn __expand_new<S: Index>( context: &mut CubeContext, size: S, ) -> <Self as CubeType>::ExpandType

source

pub fn __expand_vectorized<S: Index>( context: &mut CubeContext, size: S, vectorization_factor: UInt, ) -> <Self as CubeType>::ExpandType

source

pub fn to_vectorized(self, _vectorization_factor: Comptime<UInt>) -> T

source§

impl<E: CubeType> Array<E>

source

pub fn len(&self) -> UInt

Obtain the array length

Trait Implementations§

source§

impl<C: CubeType> CubeType for &Array<C>

§

type ExpandType = ExpandElementTyped<Array<C>>

source§

fn init(context: &mut CubeContext, expand: Self::ExpandType) -> Self::ExpandType

Wrapper around the init method, necessary to type inference.
source§

impl<C: CubeType> CubeType for Array<C>

§

type ExpandType = ExpandElementTyped<Array<C>>

source§

fn init(context: &mut CubeContext, expand: Self::ExpandType) -> Self::ExpandType

Wrapper around the init method, necessary to type inference.
source§

impl<C: CubeType> ExpandElementBaseInit for Array<C>

source§

impl<E: CubeType, I: Into<UInt>> Index<I> for Array<E>

§

type Output = E

The returned type after indexing.
source§

fn index(&self, _index: I) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<E: CubeType, I: Into<UInt>> IndexMut<I> for Array<E>

source§

fn index_mut(&mut self, _index: I) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C: CubePrimitive> LaunchArg for Array<C>

§

type RuntimeArg<'a, R: Runtime> = ArrayArg<'a, R>

The runtime argument for the kernel.
source§

impl<C: CubePrimitive> LaunchArgExpand for Array<C>

source§

fn expand( builder: &mut KernelBuilder, vectorization: Vectorization, ) -> ExpandElementTyped<Array<C>>

Register an input variable during compilation that fill the KernelBuilder.
source§

fn expand_output( builder: &mut KernelBuilder, vectorization: Vectorization, ) -> ExpandElementTyped<Array<C>>

Register an output variable during compilation that fill the KernelBuilder.
source§

impl<E: CubePrimitive> SliceOperator<E> for Array<E>

§

type Expand = ExpandElementTyped<Array<E>>

source§

fn slice<Start: Index, End: Index>( &self, start: Start, end: End, ) -> &Slice<'_, E>

Return a read-only view of all elements comprise between the start and end index.
source§

fn __expand_slice<Start: Index, End: Index>( context: &mut CubeContext, expand: Self::Expand, start: Start, end: End, ) -> ExpandElementTyped<Slice<'static, E>>

Expand function of SliceOperator::slice.
source§

fn slice_mut<Start: Index, End: Index>( &mut self, start: Start, end: End, ) -> &mut SliceMut<'_, E>

Return a read-write view of all elements comprise between the start and end index.
source§

fn __expand_slice_mut<Start: Index, End: Index>( context: &mut CubeContext, expand: Self::Expand, start: Start, end: End, ) -> ExpandElementTyped<SliceMut<'static, E>>

Expand function of SliceOperator::slice_mut.
source§

fn slice_mut_unsafe<Start: Index, End: Index>( &self, start: Start, end: End, ) -> &mut SliceMut<'_, E>

Return a read-write view of all elements comprise between the start and end index. Read more
source§

fn __expand_slice_mut_unsafe<Start: Index, End: Index>( context: &mut CubeContext, expand: Self::Expand, start: Start, end: End, ) -> ExpandElementTyped<SliceMut<'static, E>>

source§

fn as_slice(&self) -> &Slice<'_, E>

Reinterprete the current type as a read-only slice.
source§

fn __expand_as_slice( context: &mut CubeContext, expand: Self::Expand, ) -> ExpandElementTyped<Slice<'static, E>>

Expand function of SliceOperator::as_slice.
source§

fn as_slice_mut(&mut self) -> &mut SliceMut<'_, E>

Reinterprete the current type as a read-write slice.
source§

fn __expand_as_slice_mut( context: &mut CubeContext, expand: Self::Expand, ) -> ExpandElementTyped<SliceMut<'static, E>>

Expand function of SliceOperator::as_slice_mut.
source§

fn as_slice_mut_unsafe(&self) -> &mut SliceMut<'_, E>

Reinterprete the current type as a read-write slice. Read more
source§

fn __expand_as_slice_mut_unsafe( context: &mut CubeContext, expand: Self::Expand, ) -> ExpandElementTyped<SliceMut<'static, E>>

Auto Trait Implementations§

§

impl<E> Freeze for Array<E>

§

impl<E> RefUnwindSafe for Array<E>
where E: RefUnwindSafe,

§

impl<E> Send for Array<E>
where E: Send,

§

impl<E> Sync for Array<E>
where E: Sync,

§

impl<E> Unpin for Array<E>
where E: Unpin,

§

impl<E> UnwindSafe for Array<E>
where E: UnwindSafe,

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<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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V