Struct sprs_ldl::LdlNumeric
[−]
[src]
pub struct LdlNumeric<N> { /* fields omitted */ }
Structure to hold a numeric LDLT decomposition
Methods
impl<N> LdlNumeric<N>
[src]
fn new<IpS, IS, DS>(mat: &CsMat<N, IpS, IS, DS>) -> Self where N: Copy + Num + PartialOrd, IpS: Deref<Target=[usize]>, IS: Deref<Target=[usize]>, DS: Deref<Target=[N]>
fn new_perm<IpS, IS, DS>(mat: &CsMat<N, IpS, IS, DS>, perm: PermOwned) -> Self where N: Copy + Num + PartialOrd, IpS: Deref<Target=[usize]>, IS: Deref<Target=[usize]>, DS: Deref<Target=[N]>
Compute the numeric decomposition L D LT = PT A P where P is a permutation matrix.
Using a good permutation matrix can reduce the non-zero count in L, thus making the decomposition and the solves faster.
Panics
- if mat is not symmetric
fn update<IpS, IS, DS>(&mut self, mat: &CsMat<N, IpS, IS, DS>) where N: Copy + Num + PartialOrd, IpS: Deref<Target=[usize]>, IS: Deref<Target=[usize]>, DS: Deref<Target=[N]>
Update the decomposition with the given matrix. The matrix must have the same non-zero pattern as the original matrix, otherwise the result is unspecified.
fn solve<'a, V>(&self, rhs: &V) -> Vec<N> where N: 'a + Copy + Num, V: Deref<Target=[N]>
Solve the system A x = rhs
fn problem_size(&self) -> usize
The size of the linear system associated with this decomposition
fn nnz(&self) -> usize
The number of non-zero entries in L