Struct nalgebra::linalg::Cholesky [−][src]
The Cholesky decomposition of a symmetric-definite-positive matrix.
Implementations
impl<N: SimdComplexField, D: Dim> Cholesky<N, D> where
DefaultAllocator: Allocator<N, D, D>, [src]
DefaultAllocator: Allocator<N, D, D>,
pub fn new_unchecked(matrix: MatrixN<N, D>) -> Self[src]
Computes the Cholesky decomposition of matrix without checking that the matrix is definite-positive.
If the input matrix is not definite-positive, the decomposition may contain trash values (Inf, NaN, etc.)
pub fn unpack(self) -> MatrixN<N, D>[src]
Retrieves the lower-triangular factor of the Cholesky decomposition with its strictly upper-triangular part filled with zeros.
pub fn unpack_dirty(self) -> MatrixN<N, D>[src]
Retrieves the lower-triangular factor of the Cholesky decomposition, without zeroing-out its strict upper-triangular part.
The values of the strict upper-triangular part are garbage and should be ignored by further computations.
pub fn l(&self) -> MatrixN<N, D>[src]
Retrieves the lower-triangular factor of the Cholesky decomposition with its strictly uppen-triangular part filled with zeros.
pub fn l_dirty(&self) -> &MatrixN<N, D>[src]
Retrieves the lower-triangular factor of the Cholesky decomposition, without zeroing-out its strict upper-triangular part.
This is an allocation-less version of self.l(). The values of the strict upper-triangular
part are garbage and should be ignored by further computations.
pub fn solve_mut<R2: Dim, C2: Dim, S2>(&self, b: &mut Matrix<N, R2, C2, S2>) where
S2: StorageMut<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>, [src]
S2: StorageMut<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
Solves the system self * x = b where self is the decomposed matrix and x the unknown.
The result is stored on b.
pub fn solve<R2: Dim, C2: Dim, S2>(
&self,
b: &Matrix<N, R2, C2, S2>
) -> MatrixMN<N, R2, C2> where
S2: Storage<N, R2, C2>,
DefaultAllocator: Allocator<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>, [src]
&self,
b: &Matrix<N, R2, C2, S2>
) -> MatrixMN<N, R2, C2> where
S2: Storage<N, R2, C2>,
DefaultAllocator: Allocator<N, R2, C2>,
ShapeConstraint: SameNumberOfRows<R2, D>,
Returns the solution of the system self * x = b where self is the decomposed matrix and
x the unknown.
pub fn inverse(&self) -> MatrixN<N, D>[src]
Computes the inverse of the decomposed matrix.
impl<N: ComplexField, D: Dim> Cholesky<N, D> where
DefaultAllocator: Allocator<N, D, D>, [src]
DefaultAllocator: Allocator<N, D, D>,
pub fn new(matrix: MatrixN<N, D>) -> Option<Self>[src]
Attempts to compute the Cholesky decomposition of matrix.
Returns None if the input matrix is not definite-positive. The input matrix is assumed
to be symmetric and only the lower-triangular part is read.
pub fn rank_one_update<R2: Dim, S2>(
&mut self,
x: &Vector<N, R2, S2>,
sigma: N::RealField
) where
S2: Storage<N, R2, U1>,
DefaultAllocator: Allocator<N, R2, U1>,
ShapeConstraint: SameNumberOfRows<R2, D>, [src]
&mut self,
x: &Vector<N, R2, S2>,
sigma: N::RealField
) where
S2: Storage<N, R2, U1>,
DefaultAllocator: Allocator<N, R2, U1>,
ShapeConstraint: SameNumberOfRows<R2, D>,
Given the Cholesky decomposition of a matrix M, a scalar sigma and a vector v,
performs a rank one update such that we end up with the decomposition of M + sigma * (v * v.adjoint()).
pub fn insert_column<R2, S2>(
&self,
j: usize,
col: Vector<N, R2, S2>
) -> Cholesky<N, DimSum<D, U1>> where
D: DimAdd<U1>,
R2: Dim,
S2: Storage<N, R2, U1>,
DefaultAllocator: Allocator<N, DimSum<D, U1>, DimSum<D, U1>> + Allocator<N, R2>,
ShapeConstraint: SameNumberOfRows<R2, DimSum<D, U1>>, [src]
&self,
j: usize,
col: Vector<N, R2, S2>
) -> Cholesky<N, DimSum<D, U1>> where
D: DimAdd<U1>,
R2: Dim,
S2: Storage<N, R2, U1>,
DefaultAllocator: Allocator<N, DimSum<D, U1>, DimSum<D, U1>> + Allocator<N, R2>,
ShapeConstraint: SameNumberOfRows<R2, DimSum<D, U1>>,
Updates the decomposition such that we get the decomposition of a matrix with the given column col in the jth position.
Since the matrix is square, an identical row will be added in the jth row.
pub fn remove_column(&self, j: usize) -> Cholesky<N, DimDiff<D, U1>> where
D: DimSub<U1>,
DefaultAllocator: Allocator<N, DimDiff<D, U1>, DimDiff<D, U1>> + Allocator<N, D>, [src]
D: DimSub<U1>,
DefaultAllocator: Allocator<N, DimDiff<D, U1>, DimDiff<D, U1>> + Allocator<N, D>,
Updates the decomposition such that we get the decomposition of the factored matrix with its jth column removed.
Since the matrix is square, the jth row will also be removed.
Trait Implementations
impl<N: Clone + SimdComplexField, D: Clone + Dim> Clone for Cholesky<N, D> where
DefaultAllocator: Allocator<N, D, D>, [src]
DefaultAllocator: Allocator<N, D, D>,
impl<N: SimdComplexField, D: Dim> Copy for Cholesky<N, D> where
DefaultAllocator: Allocator<N, D, D>,
MatrixN<N, D>: Copy, [src]
DefaultAllocator: Allocator<N, D, D>,
MatrixN<N, D>: Copy,
impl<N: Debug + SimdComplexField, D: Debug + Dim> Debug for Cholesky<N, D> where
DefaultAllocator: Allocator<N, D, D>, [src]
DefaultAllocator: Allocator<N, D, D>,
Auto Trait Implementations
impl<N, D> !RefUnwindSafe for Cholesky<N, D>
impl<N, D> !Send for Cholesky<N, D>
impl<N, D> !Sync for Cholesky<N, D>
impl<N, D> !Unpin for Cholesky<N, D>
impl<N, D> !UnwindSafe for Cholesky<N, D>
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 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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>, [src]
V: MultiLane<T>,