Struct nalgebra::linalg::LU [−][src]
pub struct LU<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 partial (row) pivoting.
Implementations
impl<T: ComplexField, R: DimMin<C>, C: Dim> LU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<T: ComplexField, R: DimMin<C>, C: Dim> LU<T, R, C> where
DefaultAllocator: Allocator<T, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
Computes the LU decomposition with partial (row) pivoting of matrix
.
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 l_unpack(self) -> OMatrix<T, R, DimMinimum<R, C>> where
DefaultAllocator: Reallocator<T, R, C, R, DimMinimum<R, C>>,
pub fn l_unpack(self) -> OMatrix<T, R, DimMinimum<R, C>> where
DefaultAllocator: Reallocator<T, R, C, 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.
pub fn unpack(
self
) -> (PermutationSequence<DimMinimum<R, C>>, OMatrix<T, R, DimMinimum<R, C>>, OMatrix<T, DimMinimum<R, C>, C>) where
DefaultAllocator: Allocator<T, R, DimMinimum<R, C>> + Allocator<T, DimMinimum<R, C>, C> + Reallocator<T, R, C, R, DimMinimum<R, C>>,
pub fn unpack(
self
) -> (PermutationSequence<DimMinimum<R, C>>, OMatrix<T, R, DimMinimum<R, C>>, OMatrix<T, DimMinimum<R, C>, C>) where
DefaultAllocator: Allocator<T, R, DimMinimum<R, C>> + Allocator<T, DimMinimum<R, C>, C> + Reallocator<T, R, C, R, DimMinimum<R, C>>,
The row permutations and two triangular matrices of this decomposition: (P, L, U)
.
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 self
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 matrix is not invertible.
Computes the inverse of the decomposed matrix and outputs the result to out
.
If the decomposed matrix is not invertible, this returns false
and out
may be
overwritten with garbage.
Computes the determinant of the decomposed matrix.
Indicates if the decomposed matrix is invertible.
Trait Implementations
impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for LU<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 LU<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 LU<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 LU<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 LU<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 LU<T, R, C>
impl<T, R, C> !UnwindSafe for LU<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.