forked from M-Labs/nalgebra
Move the col_piv_qr method to the decomposition module.
This commit is contained in:
parent
693e6d0035
commit
598c217d75
@ -331,16 +331,3 @@ where
|
||||
res * self.p.determinant()
|
||||
}
|
||||
}
|
||||
|
||||
impl<N: ComplexField, R: DimMin<C>, C: Dim, S: Storage<N, R, C>> Matrix<N, R, C, S>
|
||||
where
|
||||
DefaultAllocator: Allocator<N, R, C>
|
||||
+ Allocator<N, R>
|
||||
+ Allocator<N, DimMinimum<R, C>>
|
||||
+ Allocator<(usize, usize), DimMinimum<R, C>>,
|
||||
{
|
||||
/// Computes the QR decomposition (with column pivoting) of this matrix.
|
||||
pub fn col_piv_qr(self) -> ColPivQR<N, R, C> {
|
||||
ColPivQR::new(self.into_owned())
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
use crate::storage::Storage;
|
||||
use crate::{
|
||||
Allocator, Bidiagonal, Cholesky, ComplexField, DefaultAllocator, Dim, DimDiff, DimMin,
|
||||
DimMinimum, DimSub, FullPivLU, Hessenberg, Matrix, Schur, SymmetricEigen, SymmetricTridiagonal,
|
||||
LU, QR, SVD, U1,
|
||||
Allocator, Bidiagonal, Cholesky, ColPivQR, ComplexField, DefaultAllocator, Dim, DimDiff,
|
||||
DimMin, DimMinimum, DimSub, FullPivLU, Hessenberg, Matrix, Schur, SymmetricEigen,
|
||||
SymmetricTridiagonal, LU, QR, SVD, U1,
|
||||
};
|
||||
|
||||
/// # Rectangular matrix decomposition
|
||||
@ -13,8 +13,9 @@ use crate::{
|
||||
/// | Decomposition | Factors | Details |
|
||||
/// | -------------------------|---------------------|--------------|
|
||||
/// | QR | `Q * R` | `Q` is an unitary matrix, and `R` is upper-triangular. |
|
||||
/// | QR with column pivoting | `Q * R * P⁻¹` | `Q` is an unitary matrix, and `R` is upper-triangular. `P` is a permutation matrix. |
|
||||
/// | LU with partial pivoting | `P⁻¹ * L * U` | `L` is lower-triangular with a diagonal filled with `1` and `U` is upper-triangular. `P` is a permutation matrix. |
|
||||
/// | LU with full pivoting | `P⁻¹ * L * U ~ Q⁻¹` | `L` is lower-triangular with a diagonal filled with `1` and `U` is upper-triangular. `P` and `Q` are permutation matrices. |
|
||||
/// | LU with full pivoting | `P⁻¹ * L * U * Q⁻¹` | `L` is lower-triangular with a diagonal filled with `1` and `U` is upper-triangular. `P` and `Q` are permutation matrices. |
|
||||
/// | SVD | `U * Σ * Vᵀ` | `U` and `V` are two orthogonal matrices and `Σ` is a diagonal matrix containing the singular values. |
|
||||
impl<N: ComplexField, R: Dim, C: Dim, S: Storage<N, R, C>> Matrix<N, R, C, S> {
|
||||
/// Computes the bidiagonalization using householder reflections.
|
||||
@ -60,6 +61,18 @@ impl<N: ComplexField, R: Dim, C: Dim, S: Storage<N, R, C>> Matrix<N, R, C, S> {
|
||||
QR::new(self.into_owned())
|
||||
}
|
||||
|
||||
/// Computes the QR decomposition (with column pivoting) of this matrix.
|
||||
pub fn col_piv_qr(self) -> ColPivQR<N, R, C>
|
||||
where
|
||||
R: DimMin<C>,
|
||||
DefaultAllocator: Allocator<N, R, C>
|
||||
+ Allocator<N, R>
|
||||
+ Allocator<N, DimMinimum<R, C>>
|
||||
+ Allocator<(usize, usize), DimMinimum<R, C>>,
|
||||
{
|
||||
ColPivQR::new(self.into_owned())
|
||||
}
|
||||
|
||||
/// Computes the Singular Value Decomposition using implicit shift.
|
||||
pub fn svd(self, compute_u: bool, compute_v: bool) -> SVD<N, R, C>
|
||||
where
|
||||
|
Loading…
Reference in New Issue
Block a user