Struct nalgebra::linalg::LU [−][src]
LU decomposition with partial (row) pivoting.
Implementations
impl<N: ComplexField, R: DimMin<C>, C: Dim> LU<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>, [src]
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
pub fn new(matrix: MatrixMN<N, R, C>) -> Self[src]
Computes the LU decomposition with partial (row) pivoting of matrix.
pub fn l(&self) -> MatrixMN<N, R, DimMinimum<R, C>> where
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>>, [src]
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>>,
The lower triangular matrix of this decomposition.
pub fn l_unpack(self) -> MatrixMN<N, R, DimMinimum<R, C>> where
DefaultAllocator: Reallocator<N, R, C, R, DimMinimum<R, C>>, [src]
DefaultAllocator: Reallocator<N, R, C, R, DimMinimum<R, C>>,
The lower triangular matrix of this decomposition.
pub fn u(&self) -> MatrixMN<N, DimMinimum<R, C>, C> where
DefaultAllocator: Allocator<N, DimMinimum<R, C>, C>, [src]
DefaultAllocator: Allocator<N, DimMinimum<R, C>, C>,
The upper triangular matrix of this decomposition.
pub fn p(&self) -> &PermutationSequence<DimMinimum<R, C>>[src]
The row permutations of this decomposition.
pub fn unpack(
self
) -> (PermutationSequence<DimMinimum<R, C>>, MatrixMN<N, R, DimMinimum<R, C>>, MatrixMN<N, DimMinimum<R, C>, C>) where
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>> + Allocator<N, DimMinimum<R, C>, C> + Reallocator<N, R, C, R, DimMinimum<R, C>>, [src]
self
) -> (PermutationSequence<DimMinimum<R, C>>, MatrixMN<N, R, DimMinimum<R, C>>, MatrixMN<N, DimMinimum<R, C>, C>) where
DefaultAllocator: Allocator<N, R, DimMinimum<R, C>> + Allocator<N, DimMinimum<R, C>, C> + Reallocator<N, R, C, R, DimMinimum<R, C>>,
The row permutations and two triangular matrices of this decomposition: (P, L, U).
impl<N: ComplexField, D: DimMin<D, Output = D>> LU<N, D, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<(usize, usize), D>, [src]
DefaultAllocator: Allocator<N, D, D> + Allocator<(usize, usize), D>,
pub fn solve<R2: Dim, C2: Dim, S2>(
&self,
b: &Matrix<N, R2, C2, S2>
) -> Option<MatrixMN<N, R2, C2>> where
S2: Storage<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
DefaultAllocator: Allocator<N, R2, C2>, [src]
&self,
b: &Matrix<N, R2, C2, S2>
) -> Option<MatrixMN<N, R2, C2>> where
S2: Storage<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>, [src]
&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 may
be overwritten with garbage.
pub fn try_inverse(&self) -> Option<MatrixN<N, D>>[src]
Computes the inverse of the decomposed matrix.
Returns None if the matrix is not invertible.
pub fn try_inverse_to<S2: StorageMut<N, D, D>>(
&self,
out: &mut Matrix<N, D, D, S2>
) -> bool[src]
&self,
out: &mut Matrix<N, 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.
pub fn determinant(&self) -> N[src]
Computes the determinant of the decomposed matrix.
pub fn is_invertible(&self) -> bool[src]
Indicates if the decomposed matrix is invertible.
Trait Implementations
impl<N: Clone + ComplexField, R: Clone + DimMin<C>, C: Clone + Dim> Clone for LU<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>, [src]
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
impl<N: ComplexField, R: DimMin<C>, C: Dim> Copy for LU<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
MatrixMN<N, R, C>: Copy,
PermutationSequence<DimMinimum<R, C>>: Copy, [src]
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
MatrixMN<N, R, C>: Copy,
PermutationSequence<DimMinimum<R, C>>: Copy,
impl<N: Debug + ComplexField, R: Debug + DimMin<C>, C: Debug + Dim> Debug for LU<N, R, C> where
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>, [src]
DefaultAllocator: Allocator<N, R, C> + Allocator<(usize, usize), DimMinimum<R, C>>,
Auto Trait Implementations
impl<N, R, C> !RefUnwindSafe for LU<N, R, C>
impl<N, R, C> !Send for LU<N, R, C>
impl<N, R, C> !Sync for LU<N, R, C>
impl<N, R, C> !Unpin for LU<N, R, C>
impl<N, R, C> !UnwindSafe for LU<N, R, C>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T[src]
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>, [src]
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>[src]
pub fn is_in_subset(&self) -> bool[src]
pub unsafe fn to_subset_unchecked(&self) -> SS[src]
pub fn from_subset(element: &SS) -> SP[src]
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,