Randomized Linear Solver
Abstract Types
RLinearAlgebra.RLSSolver
— TypeRLSSolver{S<:LinSysSampler, R<:LinSysSolveRoutine,
L<:LinSysSolverLog, C<:LinSysStopCriterion}
An encapsulation for a (R)andomized (L)inear (S)ysterm Solver as a mutable structure.
Fields
sampler::S
, a procedure for sampling, sketching or selecting with respect to a linear system.routine::R
, a routine for randomly generating the subproblem generated by the sampling, sketching or selecting operationlog::L
, a logger for the progress and behavior of the randomized linear system solver.stop::C
, a stopping criterion for the randomized linear system solver.x::Union{Vector{Float64},Nothing}
, the result produced by the randomized linear system solver.
Constructions
RLSSolver(iter::Int64)
specifies a solver with: random cyclic row sampling; partially orthogonalized row projections (memory of five) subproblem solver; a full residual logger; and a maximum iteration stopping criterion specified byiter
.
Solver Functions
RLinearAlgebra.rsolve
— Functionrsolve([solver::RLSSolver,] A, b)
Deploys an iterative randomized solver for the linear system whose coefficient matrix is encapsulated in A
and whose constant vector is encapsulated in b
. If the solver
is not specified, then the default RLSSolver
is constructed and used with a maximum number of iterations of 10 * length(b)
. See RLSSolver
for more details on the default solver.
The function returns the solution.
RLinearAlgebra.rsolve!
— Functionrsolve!([solver::RLSSolver,] A, b, x::AbstractVector)
Identical to rsolve
except an initial iterate is supplied by the argument x
. The function overwrites the solution into the vector x
.