Struct nalgebra::linalg::ColPivQR [−][src]
pub struct ColPivQR<N: ComplexField, R: DimMin<C>, C: Dim> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>, { /* fields omitted */ }
Expand description
The QR decomposition (with column pivoting) of a general matrix.
Implementations
impl<N: ComplexField, R: DimMin<C>, C: Dim> ColPivQR<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, R> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<N: ComplexField, R: DimMin<C>, C: Dim> ColPivQR<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, R> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
Computes the ColPivQR decomposition using householder reflections.
pub fn r(&self) -> MatrixMN<N, DimMinimum<R, C>, C> where
DefaultAllocator: Allocator<N, DimMinimum<R, C>, C>,
pub fn r(&self) -> MatrixMN<N, DimMinimum<R, C>, C> where
DefaultAllocator: Allocator<N, DimMinimum<R, C>, C>,
Retrieves the upper trapezoidal submatrix R
of this decomposition.
pub fn unpack_r(self) -> MatrixMN<N, DimMinimum<R, C>, C> where
DefaultAllocator: Reallocator<N, R, C, DimMinimum<R, C>, C>,
pub fn unpack_r(self) -> MatrixMN<N, DimMinimum<R, C>, C> where
DefaultAllocator: Reallocator<N, R, C, DimMinimum<R, C>, C>,
Retrieves the upper trapezoidal submatrix R
of this decomposition.
This is usually faster than r
but consumes self
.
pub fn q(&self) -> MatrixMN<N, R, DimMinimum<R, C>> where
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>>,
pub fn q(&self) -> MatrixMN<N, R, DimMinimum<R, C>> where
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>>,
Computes the orthogonal matrix Q
of this decomposition.
Retrieves the column permutation of this decomposition.
pub fn unpack(
self
) -> (MatrixMN<N, R, DimMinimum<R, C>>, MatrixMN<N, DimMinimum<R, C>, C>, PermutationSequence<DimMinimum<R, C>>) where
DimMinimum<R, C>: DimMin<C, Output = DimMinimum<R, C>>,
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>> + Reallocator<N, R, C, DimMinimum<R, C>, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
pub fn unpack(
self
) -> (MatrixMN<N, R, DimMinimum<R, C>>, MatrixMN<N, DimMinimum<R, C>, C>, PermutationSequence<DimMinimum<R, C>>) where
DimMinimum<R, C>: DimMin<C, Output = DimMinimum<R, C>>,
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>> + Reallocator<N, R, C, DimMinimum<R, C>, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
Unpacks this decomposition into its two matrix factors.
impl<N: ComplexField, D: DimMin<D, Output = D>> ColPivQR<N, D, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D> + Allocator<(usize, usize), DimMinimum<D, D>>,
impl<N: ComplexField, D: DimMin<D, Output = D>> ColPivQR<N, D, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D> + Allocator<(usize, usize), DimMinimum<D, D>>,
pub fn solve<R2: Dim, C2: Dim, S2>(
&self,
b: &Matrix<N, R2, C2, S2>
) -> Option<MatrixMN<N, R2, C2>> where
S2: StorageMut<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
DefaultAllocator: Allocator<N, R2, C2>,
pub fn solve<R2: Dim, C2: Dim, S2>(
&self,
b: &Matrix<N, R2, C2, S2>
) -> Option<MatrixMN<N, R2, C2>> where
S2: StorageMut<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
DefaultAllocator: Allocator<N, R2, C2>,
Solves the linear system self * x = b
, where x
is the unknown to be determined.
Returns None
if self
is not invertible.
pub fn solve_mut<R2: Dim, C2: Dim, S2>(
&self,
b: &mut Matrix<N, R2, C2, S2>
) -> bool where
S2: StorageMut<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
pub fn solve_mut<R2: Dim, C2: Dim, S2>(
&self,
b: &mut Matrix<N, R2, C2, S2>
) -> bool where
S2: StorageMut<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
Solves the linear system self * x = b
, where x
is the unknown to be determined.
If the decomposed matrix is not invertible, this returns false
and its input b
is
overwritten with garbage.
Computes the inverse of the decomposed matrix.
Returns None
if the decomposed matrix is not invertible.
Indicates if the decomposed matrix is invertible.
Computes the determinant of the decomposed matrix.
Trait Implementations
impl<N: Clone + ComplexField, R: Clone + DimMin<C>, C: Clone + Dim> Clone for ColPivQR<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<N: Clone + ComplexField, R: Clone + DimMin<C>, C: Clone + Dim> Clone for ColPivQR<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<N: Debug + ComplexField, R: Debug + DimMin<C>, C: Debug + Dim> Debug for ColPivQR<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<N: Debug + ComplexField, R: Debug + DimMin<C>, C: Debug + Dim> Debug for ColPivQR<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<N: ComplexField, R: DimMin<C>, C: Dim> Copy for ColPivQR<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<N, DimMinimum<R, C>> + Allocator<(usize, usize), DimMinimum<R, C>>,
MatrixMN<N, R, C>: Copy,
PermutationSequence<DimMinimum<R, C>>: Copy,
VectorN<N, DimMinimum<R, C>>: Copy,
Auto Trait Implementations
impl<N, R, C> !RefUnwindSafe for ColPivQR<N, R, C>
impl<N, R, C> !UnwindSafe for ColPivQR<N, R, C>
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.