Struct nalgebra::base::ArrayStorage [−][src]
#[repr(C)]pub struct ArrayStorage<N, R, C> where
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>, { /* fields omitted */ }
Expand description
A array-based statically sized matrix data storage.
Methods from Deref<Target = GenericArray<N, Prod<R::Value, C::Value>>>
Extracts a mutable slice containing the entire array.
Trait Implementations
impl<N, R, C> PartialEq<ArrayStorage<N, R, C>> for ArrayStorage<N, R, C> where
N: PartialEq,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
impl<N, R, C> PartialEq<ArrayStorage<N, R, C>> for ArrayStorage<N, R, C> where
N: PartialEq,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
impl<N, R1, C1, R2, C2> ReshapableStorage<N, R1, C1, R2, C2> for ArrayStorage<N, R1, C1> where
N: Scalar,
R1: DimName,
C1: DimName,
R1::Value: Mul<C1::Value>,
Prod<R1::Value, C1::Value>: ArrayLength<N>,
R2: DimName,
C2: DimName,
R2::Value: Mul<C2::Value, Output = Prod<R1::Value, C1::Value>>,
Prod<R2::Value, C2::Value>: ArrayLength<N>,
impl<N, R1, C1, R2, C2> ReshapableStorage<N, R1, C1, R2, C2> for ArrayStorage<N, R1, C1> where
N: Scalar,
R1: DimName,
C1: DimName,
R1::Value: Mul<C1::Value>,
Prod<R1::Value, C1::Value>: ArrayLength<N>,
R2: DimName,
C2: DimName,
R2::Value: Mul<C2::Value, Output = Prod<R1::Value, C1::Value>>,
Prod<R2::Value, C2::Value>: ArrayLength<N>,
type Output = ArrayStorage<N, R2, C2>
type Output = ArrayStorage<N, R2, C2>
The reshaped storage type.
Reshapes the storage into the output storage type.
impl<N, R, C> Storage<N, R, C> for ArrayStorage<N, R, C> where
N: Scalar,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
DefaultAllocator: Allocator<N, R, C, Buffer = Self>,
impl<N, R, C> Storage<N, R, C> for ArrayStorage<N, R, C> where
N: Scalar,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
DefaultAllocator: Allocator<N, R, C, Buffer = Self>,
type CStride = R
type CStride = R
The static stride of this storage’s columns.
The dimension of the matrix at run-time. Arr length of zero indicates the additive identity
element of any dimension. Must be equal to Self::dimension()
if it is not None
. Read more
The spacing between consecutive row elements and consecutive column elements. Read more
Indicates whether this data buffer stores its elements contiguously.
Builds a matrix data storage that does not contain any reference.
Clones this data storage to one that does not contain any reference.
Compute the index corresponding to the irow-th row and icol-th column of this matrix. The index must be such that the following holds: Read more
Gets the address of the i-th matrix component without performing bound-checking.
Gets the address of the i-th matrix component without performing bound-checking.
Retrieves a reference to the i-th element without bound-checking.
Retrieves a reference to the i-th element without bound-checking.
impl<N, R, C> StorageMut<N, R, C> for ArrayStorage<N, R, C> where
N: Scalar,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
DefaultAllocator: Allocator<N, R, C, Buffer = Self>,
impl<N, R, C> StorageMut<N, R, C> for ArrayStorage<N, R, C> where
N: Scalar,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
DefaultAllocator: Allocator<N, R, C, Buffer = Self>,
Retrieves the mutable data buffer as a contiguous slice. Read more
Gets the mutable address of the i-th matrix component without performing bound-checking.
Gets the mutable address of the i-th matrix component without performing bound-checking.
Retrieves a mutable reference to the i-th element without bound-checking.
Retrieves a mutable reference to the element at (irow, icol)
without bound-checking.
Swaps two elements using their linear index without bound-checking.
impl<N, R, C> ContiguousStorage<N, R, C> for ArrayStorage<N, R, C> where
N: Scalar,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
DefaultAllocator: Allocator<N, R, C, Buffer = Self>,
impl<N, R, C> ContiguousStorageMut<N, R, C> for ArrayStorage<N, R, C> where
N: Scalar,
R: DimName,
C: DimName,
R::Value: Mul<C::Value>,
Prod<R::Value, C::Value>: ArrayLength<N>,
DefaultAllocator: Allocator<N, R, C, Buffer = Self>,
Auto Trait Implementations
impl<N, R, C> RefUnwindSafe for ArrayStorage<N, R, C> where
<<<R as DimName>::Value as Mul<<C as DimName>::Value>>::Output as ArrayLength<N>>::ArrayType: RefUnwindSafe,
impl<N, R, C> Send for ArrayStorage<N, R, C> where
N: Send,
impl<N, R, C> Sync for ArrayStorage<N, R, C> where
N: Sync,
impl<N, R, C> Unpin for ArrayStorage<N, R, C> where
<<<R as DimName>::Value as Mul<<C as DimName>::Value>>::Output as ArrayLength<N>>::ArrayType: Unpin,
impl<N, R, C> UnwindSafe for ArrayStorage<N, R, C> where
<<<R as DimName>::Value as Mul<<C as DimName>::Value>>::Output as ArrayLength<N>>::ArrayType: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
Checks if self
is actually part of its subset T
(and can be converted to it).
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
The inclusion map: converts self
to the equivalent element of its superset.