pub struct LU<T: ComplexField, R: DimMin<C>, C: Dim>{ /* private fields */ }Expand description
LU decomposition with partial (row) pivoting.
Implementations§
Source§impl<T: ComplexField, R: DimMin<C>, C: Dim> LU<T, R, C>
impl<T: ComplexField, R: DimMin<C>, C: Dim> LU<T, R, C>
Sourcepub fn new(matrix: OMatrix<T, R, C>) -> Self
pub fn new(matrix: OMatrix<T, R, C>) -> Self
Computes the LU decomposition with partial (row) pivoting of matrix.
Sourcepub fn l(&self) -> OMatrix<T, R, DimMinimum<R, C>>
pub fn l(&self) -> OMatrix<T, R, DimMinimum<R, C>>
The lower triangular matrix of this decomposition.
Sourcepub fn l_unpack(self) -> OMatrix<T, R, DimMinimum<R, C>>
pub fn l_unpack(self) -> OMatrix<T, R, DimMinimum<R, C>>
The lower triangular matrix of this decomposition.
Sourcepub fn u(&self) -> OMatrix<T, DimMinimum<R, C>, C>
pub fn u(&self) -> OMatrix<T, DimMinimum<R, C>, C>
The upper triangular matrix of this decomposition.
Sourcepub fn p(&self) -> &PermutationSequence<DimMinimum<R, C>>
pub fn p(&self) -> &PermutationSequence<DimMinimum<R, C>>
The row permutations of this decomposition.
Sourcepub fn unpack(
self,
) -> (PermutationSequence<DimMinimum<R, C>>, OMatrix<T, R, DimMinimum<R, C>>, OMatrix<T, DimMinimum<R, C>, C>)where
DefaultAllocator: Allocator<R, DimMinimum<R, C>> + Allocator<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<R, DimMinimum<R, C>> + Allocator<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).
Source§impl<T: ComplexField, D: DimMin<D, Output = D>> LU<T, D, D>
impl<T: ComplexField, D: DimMin<D, Output = D>> LU<T, D, D>
Sourcepub 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<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<R2, C2>,
Solves the linear system self * x = b, where x is the unknown to be determined.
Returns None if self is not invertible.
Sourcepub fn solve_mut<R2: Dim, C2: Dim, S2>(
&self,
b: &mut Matrix<T, R2, C2, S2>,
) -> bool
pub fn solve_mut<R2: Dim, C2: Dim, S2>( &self, b: &mut Matrix<T, R2, C2, S2>, ) -> bool
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.
Sourcepub fn try_inverse(&self) -> Option<OMatrix<T, D, D>>
pub fn try_inverse(&self) -> Option<OMatrix<T, D, D>>
Computes the inverse of the decomposed matrix.
Returns None if the matrix is not invertible.
Sourcepub fn try_inverse_to<S2: StorageMut<T, D, D>>(
&self,
out: &mut Matrix<T, D, D, S2>,
) -> bool
pub fn try_inverse_to<S2: StorageMut<T, D, D>>( &self, out: &mut Matrix<T, D, D, S2>, ) -> bool
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.
Sourcepub fn determinant(&self) -> T
pub fn determinant(&self) -> T
Computes the determinant of the decomposed matrix.
Sourcepub fn is_invertible(&self) -> bool
pub fn is_invertible(&self) -> bool
Indicates if the decomposed matrix is invertible.
Trait Implementations§
Source§impl<'de, T: ComplexField, R: DimMin<C>, C: Dim> Deserialize<'de> for LU<T, R, C>where
DefaultAllocator: Allocator<R, C> + Allocator<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<R, C> + Allocator<DimMinimum<R, C>>,
OMatrix<T, R, C>: Deserialize<'de>,
PermutationSequence<DimMinimum<R, C>>: Deserialize<'de>,
Source§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>,
Source§impl<T: ComplexField, R: DimMin<C>, C: Dim> Serialize for LU<T, R, C>where
DefaultAllocator: Allocator<R, C> + Allocator<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<R, C> + Allocator<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<R, C> + Allocator<DimMinimum<R, C>>,
OMatrix<T, R, C>: Copy,
PermutationSequence<DimMinimum<R, C>>: Copy,
Auto Trait Implementations§
impl<T, R, C> !Freeze for LU<T, R, C>
impl<T, R, C> !RefUnwindSafe for LU<T, R, C>
impl<T, R, C> !Send for LU<T, R, C>
impl<T, R, C> !Sync for LU<T, R, C>
impl<T, R, C> !Unpin for LU<T, R, C>
impl<T, R, C> !UnwindSafe for LU<T, R, C>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn 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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.