[][src]Struct nalgebra::base::ArrayStorage

#[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 */ }

A array-based statically sized matrix data storage.

Methods from Deref<Target = GenericArray<N, Prod<R::Value, C::Value>>>

pub fn as_slice(&self) -> &[T][src]

Extracts a slice containing the entire array.

pub fn as_mut_slice(&mut self) -> &mut [T][src]

Extracts a mutable slice containing the entire array.

Trait Implementations

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>, 
[src]

type RStride = U1

The static stride of this storage's rows.

type CStride = R

The static stride of this storage's columns.

fn linear_index(&self, irow: usize, icol: usize) -> usize[src]

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

unsafe fn get_address_unchecked_linear(&self, i: usize) -> *const N[src]

Gets the address of the i-th matrix component without performing bound-checking.

unsafe fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const N[src]

Gets the address of the i-th matrix component without performing bound-checking.

unsafe fn get_unchecked_linear(&self, i: usize) -> &N[src]

Retrieves a reference to the i-th element without bound-checking.

unsafe fn get_unchecked(&self, irow: usize, icol: usize) -> &N[src]

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>, 
[src]

unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut N[src]

Gets the mutable address of the i-th matrix component without performing bound-checking.

unsafe fn get_address_unchecked_mut(
    &mut self,
    irow: usize,
    icol: usize
) -> *mut N
[src]

Gets the mutable address of the i-th matrix component without performing bound-checking.

unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut N[src]

Retrieves a mutable reference to the i-th element without bound-checking.

unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut N[src]

Retrieves a mutable reference to the element at (irow, icol) without bound-checking.

unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)[src]

Swaps two elements using their linear index without bound-checking.

unsafe fn swap_unchecked(
    &mut self,
    row_col1: (usize, usize),
    row_col2: (usize, usize)
)
[src]

Swaps two elements 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>, 
[src]

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>, 
[src]

impl<N, R, C> Clone for ArrayStorage<N, R, C> where
    N: Clone,
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>, 
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

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>, 
[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<N, R, C> Eq for ArrayStorage<N, R, C> where
    N: Eq,
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>, 
[src]

impl<N, R, C> Copy for ArrayStorage<N, R, C> where
    N: Copy,
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>,
    GenericArray<N, Prod<R::Value, C::Value>>: Copy
[src]

impl<N, R, C> Deref for ArrayStorage<N, R, C> where
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>, 
[src]

type Target = GenericArray<N, Prod<R::Value, C::Value>>

The resulting type after dereferencing.

impl<N, R, C> DerefMut for ArrayStorage<N, R, C> where
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>, 
[src]

impl<N, R, C> Hash for ArrayStorage<N, R, C> where
    N: Hash,
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>, 
[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl<N, R, C> Debug for ArrayStorage<N, R, C> where
    N: Debug,
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>, 
[src]

Auto Trait Implementations

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

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Same for T[src]

type Output = T

Should always be Self

impl<SS, SP> SupersetOf for SP where
    SS: SubsetOf<SP>, 
[src]