template<typename ValueType, typename MemorySpace>
class cusp::precond::scaled_bridson_ainv< ValueType, MemorySpace >
scaled_bridson_ainv
: Approximate Inverse preconditoner (from Bridson's "outer product" formulation) The diagonal matrix is folded into the factorization to reduce operation count during preconditioner application. Not sure if this is a good idea or not, yet. This preconditioner allows for a novel dropping strategy, where rather than a fixed drop tolerance, you can specify now many non-zeroes are allowed per row. The non-zeroes will be chosen based on largest magnitude. This idea has been applied to IC factorization, but not AINV as far as I'm aware. See: Lin, C. and More, J. J. 1999. Incomplete Cholesky Factorizations with Limited Memory. SIAM J. Sci. Comput. 21, 1 (Aug. 1999), 24-45. This preconditioner will only work for SPD matrices.
- Examples:
- ainv.cu.
Definition at line 52 of file ainv.h.
|
template<typename MatrixTypeA > |
| scaled_bridson_ainv (const MatrixTypeA &A, ValueType drop_tolerance=0.1, int nonzero_per_row=-1, bool lin_dropping=false, int lin_param=1) |
|
template<typename VectorType1 , typename VectorType2 > |
void | operator() (const VectorType1 &x, VectorType2 &y) |
|
| linear_operator (void) |
|
| linear_operator (intnum_rows, intnum_cols) |
|
| linear_operator (intnum_rows, intnum_cols, intnum_entries) |
|