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]
pub fn new(nrows: R, ncols: C, data: Vec<N>) -> MatrixVec<N, R, C>
[src]
Creates a new dynamic matrix data storage from the given vector and shape.
pub fn data(&self) -> &Vec<N>
[src]
The underlying data storage.
pub unsafe fn data_mut(&mut self) -> &mut Vec<N>
[src]
The underlying mutable data storage.
This is unsafe because this may cause UB if the vector is modified by the user.
pub unsafe fn resize(self, sz: usize) -> Vec<N>
[src]
Resizes the undelying mutable data storage and unrwaps it.
If sz
is larger than the current size, additional elements are uninitialized.
If sz
is smaller than the current size, additional elements are trucated.
Methods from Deref<Target = Vec<N>>
pub fn capacity(&self) -> usize
1.0.0[src]
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);
pub fn as_slice(&self) -> &[T]
1.7.0[src]
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();
pub fn len(&self) -> usize
1.0.0[src]
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);
pub fn is_empty(&self) -> bool
1.0.0[src]
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]
fn fmt(&self, __arg_0: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl<N: Clone, R: Clone + Dim, C: Clone + Dim> Clone for MatrixVec<N, R, C>
[src]
fn clone(&self) -> MatrixVec<N, R, C>
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
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
[src]
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
[src]
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
[src]
Dereferences the value.
impl<N: Scalar, C: Dim> Storage<N, Dynamic, C> for MatrixVec<N, Dynamic, C> where
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
type RStride = U1
The static stride of this storage's rows.
type CStride = Dynamic
The static stride of this storage's columns.
fn ptr(&self) -> *const N
[src]
The matrix data pointer.
fn shape(&self) -> (Dynamic, C)
[src]
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)
[src]
The spacing between concecutive row elements and consecutive column elements. Read more
fn is_contiguous(&self) -> bool
[src]
Indicates whether this data buffer stores its elements contiguously.
fn into_owned(self) -> Owned<N, Dynamic, C> where
DefaultAllocator: Allocator<N, Dynamic, C>,
[src]
DefaultAllocator: Allocator<N, Dynamic, C>,
Builds a matrix data storage that does not contain any reference.
fn clone_owned(&self) -> Owned<N, Dynamic, C> where
DefaultAllocator: Allocator<N, Dynamic, C>,
[src]
DefaultAllocator: Allocator<N, Dynamic, C>,
Clones this data storage to one that does not contain any reference.
fn as_slice(&self) -> &[N]
[src]
Retrieves the data buffer as a contiguous slice. Read more
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.
ⓘImportant traits for &'a mut Iunsafe fn get_unchecked_linear(&self, i: usize) -> &N
[src]
Retrieves a reference to the i-th element without bound-checking.
ⓘImportant traits for &'a mut Iunsafe fn get_unchecked(&self, irow: usize, icol: usize) -> &N
[src]
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> where
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,
type RStride = U1
The static stride of this storage's rows.
type CStride = R
The static stride of this storage's columns.
fn ptr(&self) -> *const N
[src]
The matrix data pointer.
fn shape(&self) -> (R, Dynamic)
[src]
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)
[src]
The spacing between concecutive row elements and consecutive column elements. Read more
fn is_contiguous(&self) -> bool
[src]
Indicates whether this data buffer stores its elements contiguously.
fn into_owned(self) -> Owned<N, R, Dynamic> where
DefaultAllocator: Allocator<N, R, Dynamic>,
[src]
DefaultAllocator: Allocator<N, R, Dynamic>,
Builds a matrix data storage that does not contain any reference.
fn clone_owned(&self) -> Owned<N, R, Dynamic> where
DefaultAllocator: Allocator<N, R, Dynamic>,
[src]
DefaultAllocator: Allocator<N, R, Dynamic>,
Clones this data storage to one that does not contain any reference.
fn as_slice(&self) -> &[N]
[src]
Retrieves the data buffer as a contiguous slice. Read more
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.
ⓘImportant traits for &'a mut Iunsafe fn get_unchecked_linear(&self, i: usize) -> &N
[src]
Retrieves a reference to the i-th element without bound-checking.
ⓘImportant traits for &'a mut Iunsafe fn get_unchecked(&self, irow: usize, icol: usize) -> &N
[src]
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> where
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
fn ptr_mut(&mut self) -> *mut N
[src]
The matrix mutable data pointer.
fn as_mut_slice(&mut self) -> &mut [N]
[src]
Retrieves the mutable data buffer as a contiguous slice. Read more
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]
&mut self,
irow: usize,
icol: usize
) -> *mut N
Gets the mutable address of the i-th matrix component without performing bound-checking.
ⓘImportant traits for &'a mut Iunsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut N
[src]
Retrieves a mutable reference to the i-th element without bound-checking.
ⓘImportant traits for &'a mut Iunsafe 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]
&mut self,
row_col1: (usize, usize),
row_col2: (usize, usize)
)
Swaps two elements without bound-checking.
impl<N: Scalar, C: Dim> ContiguousStorage<N, Dynamic, C> for MatrixVec<N, Dynamic, C> where
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
impl<N: Scalar, C: Dim> ContiguousStorageMut<N, Dynamic, C> for MatrixVec<N, Dynamic, C> where
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, Dynamic, C, Buffer = Self>,
impl<N: Scalar, R: DimName> StorageMut<N, R, Dynamic> for MatrixVec<N, R, Dynamic> where
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,
fn ptr_mut(&mut self) -> *mut N
[src]
The matrix mutable data pointer.
fn as_mut_slice(&mut self) -> &mut [N]
[src]
Retrieves the mutable data buffer as a contiguous slice. Read more
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]
&mut self,
irow: usize,
icol: usize
) -> *mut N
Gets the mutable address of the i-th matrix component without performing bound-checking.
ⓘImportant traits for &'a mut Iunsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut N
[src]
Retrieves a mutable reference to the i-th element without bound-checking.
ⓘImportant traits for &'a mut Iunsafe 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]
&mut self,
row_col1: (usize, usize),
row_col2: (usize, usize)
)
Swaps two elements without bound-checking.
impl<N: Scalar, R: DimName> ContiguousStorage<N, R, Dynamic> for MatrixVec<N, R, Dynamic> where
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,
impl<N: Scalar, R: DimName> ContiguousStorageMut<N, R, Dynamic> for MatrixVec<N, R, Dynamic> where
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,
[src]
DefaultAllocator: Allocator<N, R, Dynamic, Buffer = Self>,