Struct nalgebra::linalg::FullPivLU [−][src]
pub struct FullPivLU<T: ComplexField, R: DimMin<C>, C: Dim> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>, { /* fields omitted */ }
Expand description
LU decomposition with full row and column pivoting.
Implementations
impl<T: ComplexField, R: DimMin<C>, C: Dim> FullPivLU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<T: ComplexField, R: DimMin<C>, C: Dim> FullPivLU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
Computes the LU decomposition with full pivoting of matrix
.
This effectively computes P, L, U, Q
such that P * matrix * Q = LU
.
pub fn l(&self) -> OMatrix<T, R, DimMinimum<R, C>> where
DefaultAllocator: Allocator<T, R, DimMinimum<R, C>>,
pub fn l(&self) -> OMatrix<T, R, DimMinimum<R, C>> where
DefaultAllocator: Allocator<T, R, DimMinimum<R, C>>,
The lower triangular matrix of this decomposition.
pub fn u(&self) -> OMatrix<T, DimMinimum<R, C>, C> where
DefaultAllocator: Allocator<T, DimMinimum<R, C>, C>,
pub fn u(&self) -> OMatrix<T, DimMinimum<R, C>, C> where
DefaultAllocator: Allocator<T, DimMinimum<R, C>, C>,
The upper triangular matrix of this decomposition.
The row permutations of this decomposition.
The column permutations of this decomposition.
pub fn unpack(
self
) -> (PermutationSequence<DimMinimum<R, C>>, OMatrix<T, R, DimMinimum<R, C>>, OMatrix<T, DimMinimum<R, C>, C>, PermutationSequence<DimMinimum<R, C>>) where
DefaultAllocator: Allocator<T, R, DimMinimum<R, C>> + Allocator<T, DimMinimum<R, C>, C>,
pub fn unpack(
self
) -> (PermutationSequence<DimMinimum<R, C>>, OMatrix<T, R, DimMinimum<R, C>>, OMatrix<T, DimMinimum<R, C>, C>, PermutationSequence<DimMinimum<R, C>>) where
DefaultAllocator: Allocator<T, R, DimMinimum<R, C>> + Allocator<T, DimMinimum<R, C>, C>,
The two matrices of this decomposition and the row and column permutations: (P, L, U, Q)
.
pub fn solve<R2: Dim, C2: Dim, S2>(
&self,
b: &Matrix<T, R2, C2, S2>
) -> Option<OMatrix<T, R2, C2>> where
S2: Storage<T, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
DefaultAllocator: Allocator<T, R2, C2>,
pub fn solve<R2: Dim, C2: Dim, S2>(
&self,
b: &Matrix<T, R2, C2, S2>
) -> Option<OMatrix<T, R2, C2>> where
S2: Storage<T, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
DefaultAllocator: Allocator<T, R2, C2>,
Solves the linear system self * x = b
, where x
is the unknown to be determined.
Returns None
if the decomposed matrix is not invertible.
pub fn solve_mut<R2: Dim, C2: Dim, S2>(
&self,
b: &mut Matrix<T, R2, C2, S2>
) -> bool where
S2: StorageMut<T, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
pub fn solve_mut<R2: Dim, C2: Dim, S2>(
&self,
b: &mut Matrix<T, R2, C2, S2>
) -> bool where
S2: StorageMut<T, 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
may
be 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<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for FullPivLU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
OMatrix<T, R, C>: Deserialize<'de>,
PermutationSequence<DimMinimum<R, C>>: Deserialize<'de>,
impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for FullPivLU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
OMatrix<T, R, C>: Deserialize<'de>,
PermutationSequence<DimMinimum<R, C>>: Deserialize<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl<T: ComplexField, R: DimMin<C>, C: Dim> Serialize for FullPivLU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
OMatrix<T, R, C>: Serialize,
PermutationSequence<DimMinimum<R, C>>: Serialize,
impl<T: ComplexField, R: DimMin<C>, C: Dim> Serialize for FullPivLU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
OMatrix<T, R, C>: Serialize,
PermutationSequence<DimMinimum<R, C>>: Serialize,
impl<T: ComplexField, R: DimMin<C>, C: Dim> Copy for FullPivLU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
OMatrix<T, R, C>: Copy,
PermutationSequence<DimMinimum<R, C>>: Copy,
Auto Trait Implementations
impl<T, R, C> !RefUnwindSafe for FullPivLU<T, R, C>
impl<T, R, C> !UnwindSafe for FullPivLU<T, 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.