Struct nalgebra::base::VecStorage
source · [−]Expand description
A Vec-based matrix data storage. It may be dynamically-sized.
Implementations
sourceimpl<T, R: Dim, C: Dim> VecStorage<T, R, C>
impl<T, R: Dim, C: Dim> VecStorage<T, R, C>
sourcepub fn new(nrows: R, ncols: C, data: Vec<T>) -> Self
pub fn new(nrows: R, ncols: C, data: Vec<T>) -> Self
Creates a new dynamic matrix data storage from the given vector and shape.
sourcepub fn as_vec(&self) -> &Vec<T>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
pub fn as_vec(&self) -> &Vec<T>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
The underlying data storage.
sourcepub unsafe fn as_vec_mut(&mut self) -> &mut Vec<T>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
pub unsafe fn as_vec_mut(&mut self) -> &mut Vec<T>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
The underlying mutable data storage.
Safety
This is unsafe because this may cause UB if the size of the vector is changed by the user.
sourcepub unsafe fn resize(self, sz: usize) -> Vec<MaybeUninit<T>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
pub unsafe fn resize(self, sz: usize) -> Vec<MaybeUninit<T>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
Resizes the underlying mutable data storage and unwraps it.
Safety
- If
sz
is larger than the current size, additional elements are uninitialized. - If
sz
is smaller than the current size, additional elements are truncated but not dropped. It is the responsibility of the caller of this method to drop these elements.
Trait Implementations
sourceimpl<T: Clone, R: Clone + Dim, C: Clone + Dim> Clone for VecStorage<T, R, C>
impl<T: Clone, R: Clone + Dim, C: Clone + Dim> Clone for VecStorage<T, R, C>
sourcefn clone(&self) -> VecStorage<T, R, C>
fn clone(&self) -> VecStorage<T, R, C>
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl<'a, T, R: Dim, C: Dim> Deserialize<'a> for VecStorage<T, R, C>where
T: Deserialize<'a>,
R: Deserialize<'a>,
C: Deserialize<'a>,
impl<'a, T, R: Dim, C: Dim> Deserialize<'a> for VecStorage<T, R, C>where
T: Deserialize<'a>,
R: Deserialize<'a>,
C: Deserialize<'a>,
sourcefn deserialize<Des>(deserializer: Des) -> Result<Self, Des::Error>where
Des: Deserializer<'a>,
fn deserialize<Des>(deserializer: Des) -> Result<Self, Des::Error>where
Des: Deserializer<'a>,
sourceimpl<'a, T: 'a + Copy, R: Dim> Extend<&'a T> for VecStorage<T, R, Dynamic>
impl<'a, T: 'a + Copy, R: Dim> Extend<&'a T> for VecStorage<T, R, Dynamic>
sourcefn extend<I: IntoIterator<Item = &'a T>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = &'a T>>(&mut self, iter: I)
Extends the number of columns of the VecStorage
with elements
from the given iterator.
Panics
This function panics if the number of elements yielded by the
given iterator is not a multiple of the number of rows of the
VecStorage
.
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)sourceimpl<T, R, RV, SV> Extend<Matrix<T, RV, Const<1>, SV>> for VecStorage<T, R, Dynamic>where
T: Scalar,
R: Dim,
RV: Dim,
SV: RawStorage<T, RV>,
ShapeConstraint: SameNumberOfRows<R, RV>,
impl<T, R, RV, SV> Extend<Matrix<T, RV, Const<1>, SV>> for VecStorage<T, R, Dynamic>where
T: Scalar,
R: Dim,
RV: Dim,
SV: RawStorage<T, RV>,
ShapeConstraint: SameNumberOfRows<R, RV>,
sourcefn extend<I: IntoIterator<Item = Vector<T, RV, SV>>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = Vector<T, RV, SV>>>(&mut self, iter: I)
Extends the number of columns of the VecStorage
with vectors
from the given iterator.
Panics
This function panics if the number of rows of each Vector
yielded by the iterator is not equal to the number of rows
of this VecStorage
.
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)sourceimpl<T> Extend<T> for VecStorage<T, Dynamic, U1>
impl<T> Extend<T> for VecStorage<T, Dynamic, U1>
sourcefn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
Extends the number of rows of the VecStorage
with elements
from the given iterator.
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)sourceimpl<T, R: Dim> Extend<T> for VecStorage<T, R, Dynamic>
impl<T, R: Dim> Extend<T> for VecStorage<T, R, Dynamic>
sourcefn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
Extends the number of columns of the VecStorage
with elements
from the given iterator.
Panics
This function panics if the number of elements yielded by the
given iterator is not a multiple of the number of rows of the
VecStorage
.
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)sourceimpl<T, R: Dim, C: Dim> From<VecStorage<T, R, C>> for Vec<T>
impl<T, R: Dim, C: Dim> From<VecStorage<T, R, C>> for Vec<T>
sourcefn from(vec: VecStorage<T, R, C>) -> Self
fn from(vec: VecStorage<T, R, C>) -> Self
sourceimpl<T: PartialEq, R: PartialEq + Dim, C: PartialEq + Dim> PartialEq<VecStorage<T, R, C>> for VecStorage<T, R, C>
impl<T: PartialEq, R: PartialEq + Dim, C: PartialEq + Dim> PartialEq<VecStorage<T, R, C>> for VecStorage<T, R, C>
sourcefn eq(&self, other: &VecStorage<T, R, C>) -> bool
fn eq(&self, other: &VecStorage<T, R, C>) -> bool
sourceimpl<T, C: Dim> RawStorage<T, Dynamic, C> for VecStorage<T, Dynamic, C>
impl<T, C: Dim> RawStorage<T, Dynamic, C> for VecStorage<T, Dynamic, C>
sourcefn shape(&self) -> (Dynamic, C)
fn shape(&self) -> (Dynamic, C)
Self::dimension()
if it is not None
. Read moresourcefn strides(&self) -> (Self::RStride, Self::CStride)
fn strides(&self) -> (Self::RStride, Self::CStride)
sourcefn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
sourceunsafe fn as_slice_unchecked(&self) -> &[T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
unsafe fn as_slice_unchecked(&self) -> &[T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourcefn linear_index(&self, irow: usize, icol: usize) -> usize
fn linear_index(&self, irow: usize, icol: usize) -> usize
sourcefn get_address_unchecked_linear(&self, i: usize) -> *const T
fn get_address_unchecked_linear(&self, i: usize) -> *const T
sourcefn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
sourceunsafe fn get_unchecked_linear(&self, i: usize) -> &T
unsafe fn get_unchecked_linear(&self, i: usize) -> &T
sourceimpl<T, R: DimName> RawStorage<T, R, Dynamic> for VecStorage<T, R, Dynamic>
impl<T, R: DimName> RawStorage<T, R, Dynamic> for VecStorage<T, R, Dynamic>
type CStride = R
type CStride = R
sourcefn shape(&self) -> (R, Dynamic)
fn shape(&self) -> (R, Dynamic)
Self::dimension()
if it is not None
. Read moresourcefn strides(&self) -> (Self::RStride, Self::CStride)
fn strides(&self) -> (Self::RStride, Self::CStride)
sourcefn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
sourceunsafe fn as_slice_unchecked(&self) -> &[T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
unsafe fn as_slice_unchecked(&self) -> &[T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourcefn linear_index(&self, irow: usize, icol: usize) -> usize
fn linear_index(&self, irow: usize, icol: usize) -> usize
sourcefn get_address_unchecked_linear(&self, i: usize) -> *const T
fn get_address_unchecked_linear(&self, i: usize) -> *const T
sourcefn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
sourceunsafe fn get_unchecked_linear(&self, i: usize) -> &T
unsafe fn get_unchecked_linear(&self, i: usize) -> &T
sourceimpl<T, C: Dim> RawStorageMut<T, Dynamic, C> for VecStorage<T, Dynamic, C>
impl<T, C: Dim> RawStorageMut<T, Dynamic, C> for VecStorage<T, Dynamic, C>
sourceunsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourcefn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
sourcefn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
sourceunsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
sourceunsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
(irow, icol)
without bound-checking. Read moresourceunsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
sourceimpl<T, R: DimName> RawStorageMut<T, R, Dynamic> for VecStorage<T, R, Dynamic>
impl<T, R: DimName> RawStorageMut<T, R, Dynamic> for VecStorage<T, R, Dynamic>
sourceunsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourcefn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
sourcefn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
sourceunsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
sourceunsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
(irow, icol)
without bound-checking. Read moresourceunsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
sourceimpl<T, C1, C2> ReshapableStorage<T, Dynamic, C1, Dynamic, C2> for VecStorage<T, Dynamic, C1>where
T: Scalar,
C1: Dim,
C2: Dim,
impl<T, C1, C2> ReshapableStorage<T, Dynamic, C1, Dynamic, C2> for VecStorage<T, Dynamic, C1>where
T: Scalar,
C1: Dim,
C2: Dim,
type Output = VecStorage<T, Dynamic, C2>
type Output = VecStorage<T, Dynamic, C2>
sourcefn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
fn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
sourceimpl<T, C1, R2> ReshapableStorage<T, Dynamic, C1, R2, Dynamic> for VecStorage<T, Dynamic, C1>where
T: Scalar,
C1: Dim,
R2: DimName,
impl<T, C1, R2> ReshapableStorage<T, Dynamic, C1, R2, Dynamic> for VecStorage<T, Dynamic, C1>where
T: Scalar,
C1: Dim,
R2: DimName,
type Output = VecStorage<T, R2, Dynamic>
type Output = VecStorage<T, R2, Dynamic>
sourcefn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
fn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
sourceimpl<T, R1, C2> ReshapableStorage<T, R1, Dynamic, Dynamic, C2> for VecStorage<T, R1, Dynamic>where
T: Scalar,
R1: DimName,
C2: Dim,
impl<T, R1, C2> ReshapableStorage<T, R1, Dynamic, Dynamic, C2> for VecStorage<T, R1, Dynamic>where
T: Scalar,
R1: DimName,
C2: Dim,
type Output = VecStorage<T, Dynamic, C2>
type Output = VecStorage<T, Dynamic, C2>
sourcefn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
fn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
sourceimpl<T, R1, R2> ReshapableStorage<T, R1, Dynamic, R2, Dynamic> for VecStorage<T, R1, Dynamic>where
T: Scalar,
R1: DimName,
R2: DimName,
impl<T, R1, R2> ReshapableStorage<T, R1, Dynamic, R2, Dynamic> for VecStorage<T, R1, Dynamic>where
T: Scalar,
R1: DimName,
R2: DimName,
type Output = VecStorage<T, R2, Dynamic>
type Output = VecStorage<T, R2, Dynamic>
sourcefn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
fn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
sourceimpl<T, R: Dim, C: Dim> Serialize for VecStorage<T, R, C>where
T: Serialize,
R: Serialize,
C: Serialize,
impl<T, R: Dim, C: Dim> Serialize for VecStorage<T, R, C>where
T: Serialize,
R: Serialize,
C: Serialize,
sourceimpl<T: Scalar, C: Dim> Storage<T, Dynamic, C> for VecStorage<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
impl<T: Scalar, C: Dim> Storage<T, Dynamic, C> for VecStorage<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
sourcefn into_owned(self) -> Owned<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C>,
fn into_owned(self) -> Owned<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C>,
sourcefn clone_owned(&self) -> Owned<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C>,
fn clone_owned(&self) -> Owned<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C>,
sourceimpl<T: Scalar, R: DimName> Storage<T, R, Dynamic> for VecStorage<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
impl<T: Scalar, R: DimName> Storage<T, R, Dynamic> for VecStorage<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
sourcefn into_owned(self) -> Owned<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic>,
fn into_owned(self) -> Owned<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic>,
sourcefn clone_owned(&self) -> Owned<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic>,
fn clone_owned(&self) -> Owned<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic>,
impl<T: Eq, R: Eq + Dim, C: Eq + Dim> Eq for VecStorage<T, R, C>
impl<T, R: Dim, C: Dim> IsContiguous for VecStorage<T, R, C>
impl<T, R: Dim, C: Dim> StructuralEq for VecStorage<T, R, C>
impl<T, R: Dim, C: Dim> StructuralPartialEq for VecStorage<T, R, C>
Auto Trait Implementations
impl<T, R, C> RefUnwindSafe for VecStorage<T, R, C>where
C: RefUnwindSafe,
R: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, R, C> Send for VecStorage<T, R, C>where
T: Send,
impl<T, R, C> Sync for VecStorage<T, R, C>where
T: Sync,
impl<T, R, C> Unpin for VecStorage<T, R, C>where
C: Unpin,
R: Unpin,
T: Unpin,
impl<T, R, C> UnwindSafe for VecStorage<T, R, C>where
C: UnwindSafe,
R: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
sourcefn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
sourceimpl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
sourcefn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresourcefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).sourcefn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.sourcefn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.sourceimpl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
sourcefn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresourcefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).sourceunsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.sourcefn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.