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.
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)|