This abstract class defines preconditioned iterative solvers. When A is ill-conditioned, instead of solving system A · x = b directly, it is preferable to solve either
(M · A) · x = M · b (left preconditioning), or
(A · M) · y = b, followed by M · y = x (right preconditioning), where M approximates in some way A
-1, while matrix-vector products of the type M · y remain comparatively easy to compute. In this library, M (not M
-1!) is called the
preconditionner.
Concrete implementations of this abstract class must be provided with the preconditioner M, as a {@link RealLinearOperator}.
@since 3.0