trait Preconditioner
Preconditioner trait
Source: precond.joule:11
trait PreconditionerPreconditioner trait
Source: precond.joule:11
fn apply(&self, r: &[f64]) -> Vec<f64>;Apply preconditioner: z = M^(-1) * r
Source: precond.joule:13
struct IdentityPreconditioner;Identity preconditioner (no preconditioning)
Source: precond.joule:21
fn new() -> SelfSource: precond.joule:24
fn apply(&self, r: &[f64]) -> Vec<f64>Source: precond.joule:30
struct JacobiPreconditionerJacobi (diagonal) preconditioner: M = diag(A)
Source: precond.joule:40
fn new(a: &CsrMatrix) -> SelfSource: precond.joule:47
fn apply(&self, r: &[f64]) -> Vec<f64>Source: precond.joule:59
struct SsorPreconditionerSSOR (Symmetric Successive Over-Relaxation) preconditioner
Source: precond.joule:71
fn new(a: &CsrMatrix, omega: f64) -> SelfSource: precond.joule:81
fn apply(&self, r: &[f64]) -> Vec<f64>Source: precond.joule:112
struct Ilu0PreconditionerILU(0) preconditioner (no fill-in)
Source: precond.joule:155
fn new(a: &CsrMatrix) -> SelfSource: precond.joule:168
fn solve_l(&self, b: &[f64]) -> Vec<f64>Source: precond.joule:226
fn solve_u(&self, b: &[f64]) -> Vec<f64>Source: precond.joule:244
fn apply(&self, r: &[f64]) -> Vec<f64>Source: precond.joule:270
struct Ic0PreconditionerIC(0) preconditioner for SPD matrices
Source: precond.joule:281
fn new(a: &CsrMatrix) -> SelfSource: precond.joule:291
fn solve_l(&self, b: &[f64]) -> Vec<f64>Source: precond.joule:351
fn solve_lt(&self, b: &[f64]) -> Vec<f64>Source: precond.joule:376
fn apply(&self, r: &[f64]) -> Vec<f64>Source: precond.joule:414
struct PolynomialPreconditionerPolynomial preconditioner based on Chebyshev or Neumann series
Source: precond.joule:425
fn neumann(a: &CsrMatrix, degree: usize) -> SelfSource: precond.joule:434
fn chebyshev(a: &CsrMatrix, degree: usize, lambda_min: f64, lambda_max: f64) -> SelfCreate polynomial preconditioner with Chebyshev coefficients
Source: precond.joule:446
fn apply(&self, r: &[f64]) -> Vec<f64>Source: precond.joule:466
struct BlockJacobiPreconditionerBlock Jacobi preconditioner
Source: precond.joule:493
fn new(a: &CsrMatrix, block_size: usize) -> SelfSource: precond.joule:500
fn apply(&self, r: &[f64]) -> Vec<f64>Source: precond.joule:533
fn invert_dense(a: &[Vec<f64>]) -> Vec<Vec<f64>>Invert dense matrix using Gauss-Jordan elimination
Source: precond.joule:561
fn make_test_matrix() -> CsrMatrixSource: precond.joule:620
fn test_jacobi_precond()Source: precond.joule:630
fn test_identity_precond()Source: precond.joule:644