Struct nalgebra::core::MatrixVec
[−]
[src]
#[repr(C)]pub struct MatrixVec<N, R: Dim, C: Dim> { /* fields omitted */ }
A Vec-based matrix data storage. It may be dynamically-sized.
Methods
impl<N, R: Dim, C: Dim> MatrixVec<N, R, C>
[src]
fn new(nrows: R, ncols: C, data: Vec<N>) -> MatrixVec<N, R, C>
Creates a new dynamic matrix data storage from the given vector and shape.
fn data(&self) -> &Vec<N>
The underlying data storage.
unsafe fn data_mut(&mut self) -> &mut Vec<N>
The underlying mutable data storage.
This is unsafe because this may cause UB if the vector is modified by the user.
Methods from Deref<Target = Vec<N>>
fn capacity(&self) -> usize
1.0.0
Returns the number of elements the vector can hold without reallocating.
Examples
let vec: Vec<i32> = Vec::with_capacity(10); assert_eq!(vec.capacity(), 10);
fn into_boxed_slice(self) -> Box<[T]>
1.0.0
Converts the vector into Box<[T]>
.
Note that this will drop any excess capacity. Calling this and
converting back to a vector with into_vec
is equivalent to calling
shrink_to_fit
.
Examples
let v = vec![1, 2, 3]; let slice = v.into_boxed_slice();
Any excess capacity is removed:
let mut vec = Vec::with_capacity(10); vec.extend([1, 2, 3].iter().cloned()); assert_eq!(vec.capacity(), 10); let slice = vec.into_boxed_slice(); assert_eq!(slice.into_vec().capacity(), 3);
fn as_slice(&self) -> &[T]
1.7.0
Extracts a slice containing the entire vector.
Equivalent to &s[..]
.
Examples
use std::io::{self, Write}; let buffer = vec![1, 2, 3, 5, 8]; io::sink().write(buffer.as_slice()).unwrap();
fn len(&self) -> usize
1.0.0
Returns the number of elements in the vector, also referred to as its 'length'.
Examples
let a = vec![1, 2, 3]; assert_eq!(a.len(), 3);
fn is_empty(&self) -> bool
1.0.0
Returns true
if the vector contains no elements.
Examples
let mut v = Vec::new(); assert!(v.is_empty()); v.push(1); assert!(!v.is_empty());
Trait Implementations
impl<N: Eq, R: Eq + Dim, C: Eq + Dim> Eq for MatrixVec<N, R, C>
[src]
impl<N: Debug, R: Debug + Dim, C: Debug + Dim> Debug for MatrixVec<N, R, C>
[src]
impl<N: Clone, R: Clone + Dim, C: Clone + Dim> Clone for MatrixVec<N, R, C>
[src]
fn clone(&self) -> MatrixVec<N, R, C>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<N: PartialEq, R: PartialEq + Dim, C: PartialEq + Dim> PartialEq for MatrixVec<N, R, C>
[src]
fn eq(&self, __arg_0: &MatrixVec<N, R, C>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &MatrixVec<N, R, C>) -> bool
This method tests for !=
.
impl<N, R: Dim, C: Dim> Deref for MatrixVec<N, R, C>
[src]
type Target = Vec<N>
The resulting type after dereferencing
fn deref(&self) -> &Self::Target
The method called to dereference a value
impl<N: Scalar, C: Dim> Storage<N, Dynamic, C> for MatrixVec<N, Dynamic, C>
[src]
type RStride = U1
The static stride of this storage's rows.
type CStride = Dynamic
The static stride of this storage's columns.
type Alloc = DefaultAllocator
The allocator for this family of storage.
fn into_owned(self) -> Owned<N, Dynamic, C, Self::Alloc>
Builds a matrix data storage that does not contain any reference.
fn clone_owned(&self) -> Owned<N, Dynamic, C, Self::Alloc>
Clones this data storage into one that does not contain any reference.
fn ptr(&self) -> *const N
The matrix data pointer.
fn shape(&self) -> (Dynamic, C)
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
fn strides(&self) -> (Self::RStride, Self::CStride)
The spacing between concecutive row elements and consecutive column elements. Read more
fn linear_index(&self, irow: usize, icol: usize) -> usize
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
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
Gets the address of the i-th matrix component without performing bound-checking.
unsafe fn get_unchecked_linear(&self, i: usize) -> &N
Retrieves a reference to the i-th element without bound-checking.
unsafe fn get_unchecked(&self, irow: usize, icol: usize) -> &N
Retrieves a reference to the i-th element without bound-checking.
impl<N: Scalar, R: DimName> Storage<N, R, Dynamic> for MatrixVec<N, R, Dynamic>
[src]
type RStride = U1
The static stride of this storage's rows.
type CStride = R
The static stride of this storage's columns.
type Alloc = DefaultAllocator
The allocator for this family of storage.
fn into_owned(self) -> Owned<N, R, Dynamic, Self::Alloc>
Builds a matrix data storage that does not contain any reference.
fn clone_owned(&self) -> Owned<N, R, Dynamic, Self::Alloc>
Clones this data storage into one that does not contain any reference.
fn ptr(&self) -> *const N
The matrix data pointer.
fn shape(&self) -> (R, Dynamic)
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
fn strides(&self) -> (Self::RStride, Self::CStride)
The spacing between concecutive row elements and consecutive column elements. Read more
fn linear_index(&self, irow: usize, icol: usize) -> usize
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
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
Gets the address of the i-th matrix component without performing bound-checking.
unsafe fn get_unchecked_linear(&self, i: usize) -> &N
Retrieves a reference to the i-th element without bound-checking.
unsafe fn get_unchecked(&self, irow: usize, icol: usize) -> &N
Retrieves a reference to the i-th element without bound-checking.
impl<N: Scalar, C: Dim> StorageMut<N, Dynamic, C> for MatrixVec<N, Dynamic, C>
[src]
fn ptr_mut(&mut self) -> *mut N
The matrix mutable data pointer.
unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut N
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
&mut self,
irow: usize,
icol: usize
) -> *mut N
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
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
Retrieves a mutable reference to the element at (irow, icol)
without bound-checking.
unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
Swaps two elements using their linear index without bound-checking.
unsafe fn swap_unchecked(
&mut self,
row_col1: (usize, usize),
row_col2: (usize, usize)
)
&mut self,
row_col1: (usize, usize),
row_col2: (usize, usize)
)
Swaps two elements without bound-checking.
impl<N: Scalar, C: Dim> OwnedStorage<N, Dynamic, C> for MatrixVec<N, Dynamic, C>
[src]
fn as_slice(&self) -> &[N]
Converts this data storage to a slice.
fn as_mut_slice(&mut self) -> &mut [N]
Converts this data storage to a mutable slice.
impl<N: Scalar, R: DimName> StorageMut<N, R, Dynamic> for MatrixVec<N, R, Dynamic>
[src]
fn ptr_mut(&mut self) -> *mut N
The matrix mutable data pointer.
unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut N
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
&mut self,
irow: usize,
icol: usize
) -> *mut N
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
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
Retrieves a mutable reference to the element at (irow, icol)
without bound-checking.
unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
Swaps two elements using their linear index without bound-checking.
unsafe fn swap_unchecked(
&mut self,
row_col1: (usize, usize),
row_col2: (usize, usize)
)
&mut self,
row_col1: (usize, usize),
row_col2: (usize, usize)
)
Swaps two elements without bound-checking.