Preconditioners
GaussianMarkovRandomFields.AbstractPreconditioner Type
AbstractPreconditioner
Abstract type for preconditioners. Should implement the following methods:
ldiv!(y, P::AbstractPreconditioner, x::AbstractVector)
ldiv!(P::AbstractPreconditioner, x::AbstractVector)
(P::AbstractPreconditioner, x::AbstractVector)
size(P::AbstractPreconditioner)
GaussianMarkovRandomFields.BlockJacobiPreconditioner Type
BlockJacobiPreconditioner
A preconditioner that uses a block Jacobi preconditioner, i.e. P = diag(A₁, A₂, ...), where each Aᵢ is a preconditioner for a block of the matrix.
sourceGaussianMarkovRandomFields.FullCholeskyPreconditioner Type
FullCholeskyPreconditioner
A preconditioner that uses a full Cholesky factorization of the matrix, i.e. P = A, so P⁻¹ = A⁻¹. Does not make sense to use on its own, but can be used as a building block for more complex preconditioners.
sourceGaussianMarkovRandomFields.temporal_block_gauss_seidel Function
temporal_block_gauss_seidel(A, block_size)
Construct a temporal block Gauss-Seidel preconditioner for a spatiotemporal matrix with constant spatial mesh size (and thus constant spatial block size).
sourceGaussianMarkovRandomFields.TridiagonalBlockGaussSeidelPreconditioner Type
TridiagonalBlockGaussSeidelPreconditioner{T}(D_blocks, L_blocks)
TridiagonalBlockGaussSeidelPreconditioner{T}(D⁻¹_blocks, L_blocks)
Block Gauss-Seidel preconditioner for block tridiagonal matrices. For a matrix given by
this preconditioner is given by
Solving linear systems with the preconditioner is made efficient through block forward / backward substitution. The diagonal blocks must be inverted. As such, they may be specified
directly as matrices: in this case they will be transformed into
FullCholeskyPreconditioner
s.in terms of their invertible preconditioners
GaussianMarkovRandomFields.TridiagSymmetricBlockGaussSeidelPreconditioner Type
TridiagSymmetricBlockGaussSeidelPreconditioner{T}(D_blocks, L_blocks)
TridiagSymmetricBlockGaussSeidelPreconditioner{T}(D⁻¹_blocks, L_blocks)
Symmetric Block Gauss-Seidel preconditioner for symmetric block tridiagonal matrices. For a symmetric matrix given by the block decomposition A = L + D + Lᵀ, where L is strictly lower triangular and D is diagonal, this preconditioner is given by P = (L + D) D⁻¹ (L + D)ᵀ ≈ A.
Solving linear systems with the preconditioner is made efficient through block forward / backward substitution. The diagonal blocks must be inverted. As such, they may be specified
directly as matrices: in this case they will be transformed into
FullCholeskyPreconditioner
s.in terms of their invertible preconditioners