\newsiamremark

remarkRemark \newsiamremarkhypothesisHypothesis \newsiamthmclaimClaim \headersStructured SketchingJohannes J. Brust and Michael A. Saunders

Structured Sketching for Linear Systemsthanks: Version of June 30, 2024. Submitted to the editors Summer 2024. \fundingThis work was partially funded by the startup fund at Arizona State University.

Johannes J. Brust School of Mathematical and Statistical Sciences, Arizona State University, Tempe, AZ (). [email protected]    Michael A. Saunders Department of Management Science and Engineering, Stanford University, Stanford, CA (). [email protected]
Abstract

For linear systems Ax=b𝐴𝑥𝑏Ax=bitalic_A italic_x = italic_b we develop iterative algorithms based on a sketch-and-project approach. By using judicious choices for the sketch, such as the history of residuals, we develop weighting strategies that enable short recursive formulas. The proposed algorithms have a low memory footprint and iteration complexity compared to regular sketch-and-project methods. In a set of numerical experiments the new methods compare well to GMRES, SYMMLQ and state-of-the-art randomized solvers.

keywords:
randomized sketching, CG, GMRES, SYMMLQ, sketch-and-project, Kaczmarz method, data science
{MSCcodes}

15A06, 15B52, 65F10, 68W20, 65Y20, 90C20

1 Introduction

For data science and scientific computing, consider the solution of large, possibly sparse, general linear systems

(1) Ax=b,𝐴𝑥𝑏Ax=b,italic_A italic_x = italic_b ,

where A𝐴Aitalic_A is a real m×n𝑚𝑛m\times nitalic_m × italic_n matrix, the unknowns are xn𝑥superscript𝑛x\in\mathbb{R}^{n}italic_x ∈ blackboard_R start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, and bm𝑏superscript𝑚b\in\mathbb{R}^{m}italic_b ∈ blackboard_R start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT is the right-hand side. We develop methods for general systems with a focus on square and overdetermined problems. Direct algorithms use a factorization of A𝐴Aitalic_A (Golub and Van Loan [10]). With appropriate pivoting strategies, these methods are very accurate and reliable. Sparse factorizations exist for almost all direct algorithms (Davis [7]). Nevertheless, sparse pivoting strategies are sometimes too costly. When A𝐴Aitalic_A is only available as a linear operator, or the system is too large or otherwise not suitable for a direct method, then iterative methods are most effective (Saad [17], Barrett et al. [2]). In particular, for modern data-driven applications, system Eq. 1 may constitute a random subset of a larger dataset, or it may be contaminated by noise, so that highly accurate solutions are not needed or even desired. In this context, sketching methods have become popular (Woodruff et al. [20]), especially in the artificial intelligence and machine learning community (Liberty [13]). For some sketching matrix Sm×r𝑆superscript𝑚𝑟S\in\mathbb{R}^{m\times r}italic_S ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_r end_POSTSUPERSCRIPT with rmmuch-less-than𝑟𝑚r\ll mitalic_r ≪ italic_m, a solution of

(2) STAx=STbsuperscript𝑆T𝐴𝑥superscript𝑆T𝑏S^{\mathrm{\scriptstyle T}}Ax=S^{\mathrm{\scriptstyle T}}bitalic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_x = italic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_b

approximates x𝑥xitalic_x in the original system (1). If n𝑛nitalic_n is not too large, Blendenpik [1] and LSRN [14] use (2) to construct a preconditioner for LSQR to solve (1). The value of r>0𝑟0r>0italic_r > 0 needs to be set in advance. Higher values of r𝑟ritalic_r usually result in higher computational cost, but also improved numerical performance.

The methods of Gower and Richtárik [11] and Richtárik and Takác [16] solve a sequence of sketched problems

minpB subject to STAp=ST(bAx),xx+pformulae-sequencesubscriptnorm𝑝𝐵 subject to superscript𝑆𝑇𝐴𝑝superscript𝑆𝑇𝑏𝐴𝑥𝑥𝑥𝑝\min\|p\|_{B}\text{\ \ subject to\ \ }S^{T}Ap=S^{T}(b-Ax),\qquad x\leftarrow x+proman_min ∥ italic_p ∥ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT subject to italic_S start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_A italic_p = italic_S start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_b - italic_A italic_x ) , italic_x ← italic_x + italic_p

with a different random S𝑆Sitalic_S each time, a symmetric positive definite Bn×n𝐵superscript𝑛𝑛B\in\mathbb{R}^{n\times n}italic_B ∈ blackboard_R start_POSTSUPERSCRIPT italic_n × italic_n end_POSTSUPERSCRIPT, and pB=(pTBp)12subscriptnorm𝑝𝐵superscriptsuperscript𝑝T𝐵𝑝12\|p\|_{B}=(p^{\mathrm{\scriptstyle T}}Bp)^{\frac{1}{2}}∥ italic_p ∥ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT = ( italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_B italic_p ) start_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT. This process is referred to as a Sketch-and-Project approach.

In Gower and Richtárik’s analysis [11], the convergence rate ρ𝜌\rhoitalic_ρ for solving (1) (0<ρ<10𝜌10<\rho<10 < italic_ρ < 1) depends on the smallest eigenvalue of a certain matrix. Because the convergence depends on a rate that can be arbitrarily close to one, the observed numerical performance may be slow.

1.1 Notation

The integer k1𝑘1k\geq 1italic_k ≥ 1 represents the iteration index. Vector ejsubscript𝑒𝑗e_{j}italic_e start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT denotes the jthsuperscript𝑗thj^{\text{th}}italic_j start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT column of the identity matrix I𝐼Iitalic_I, with dimension depending on the context. The ithsuperscript𝑖thi^{\textnormal{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT row of A𝐴{A}italic_A is ai=eiTAsubscript𝑎𝑖superscriptsubscript𝑒𝑖T𝐴a_{i*}={e_{i}}^{\mathrm{\scriptstyle T}}{A}italic_a start_POSTSUBSCRIPT italic_i ∗ end_POSTSUBSCRIPT = italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A, while the jthsuperscript𝑗thj^{\textnormal{th}}italic_j start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT column is aj=Aejsubscript𝑎𝑗𝐴subscript𝑒𝑗a_{j}=Ae_{j}italic_a start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = italic_A italic_e start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT. For the kthsuperscript𝑘thk^{\text{th}}italic_k start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT solution estimate xksubscript𝑥𝑘{x}_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, the residual vector is rk:=bAxkassignsubscript𝑟𝑘𝑏𝐴subscript𝑥𝑘{r}_{k}:=b-A{x}_{k}italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT := italic_b - italic_A italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, with associated vector yk:=ATrkassignsubscript𝑦𝑘superscript𝐴Tsubscript𝑟𝑘{y}_{k}:=A^{\mathrm{\scriptstyle T}}{r}_{k}italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT := italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. We abbreviate “symmetric positive definite” to spd and “symmetric indefinite” to sid. Lower-case Greek letters represent scalars. For an spd matrix Bn×n𝐵superscript𝑛𝑛B\in\mathbb{R}^{n\times n}italic_B ∈ blackboard_R start_POSTSUPERSCRIPT italic_n × italic_n end_POSTSUPERSCRIPT, the scaled 2-norm of an n𝑛nitalic_n-vector p𝑝pitalic_p is pB=(pTBp)12subscriptnorm𝑝𝐵superscriptsuperscript𝑝T𝐵𝑝12\|p\|_{B}=(p^{\mathrm{\scriptstyle T}}Bp)^{\frac{1}{2}}∥ italic_p ∥ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT = ( italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_B italic_p ) start_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT. The standard 2-norm is p2=p=(pTp)12subscriptnorm𝑝2norm𝑝superscriptsuperscript𝑝T𝑝12\|p\|_{2}=\|p\|=(p^{\mathrm{\scriptstyle T}}p)^{\frac{1}{2}}∥ italic_p ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = ∥ italic_p ∥ = ( italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_p ) start_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT.

1.2 Sketching methods

Based on the idea that the next iterate xksubscript𝑥𝑘{x}_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT solves a sketched system, a class of methods can be derived in the form

(3) SkTA(xk1+pk)superscriptsubscript𝑆𝑘T𝐴subscript𝑥𝑘1subscript𝑝𝑘\displaystyle{S}_{k}^{\mathrm{\scriptstyle T}}A({x}_{k-1}+{p}_{k})italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A ( italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) =SkTbabsentsuperscriptsubscript𝑆𝑘T𝑏\displaystyle={S}_{k}^{\mathrm{\scriptstyle T}}b= italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_b
(4) xksubscript𝑥𝑘\displaystyle{x}_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT =xk1+pkabsentsubscript𝑥𝑘1subscript𝑝𝑘\displaystyle={x}_{k-1}+{p}_{k}= italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT

for k=1,2,,𝑘12k=1,2,\dots,italic_k = 1 , 2 , … , where Sksubscript𝑆𝑘S_{k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is m×r𝑚𝑟m\times ritalic_m × italic_r with rmmuch-less-than𝑟𝑚r\ll mitalic_r ≪ italic_m, and pknsubscript𝑝𝑘superscript𝑛{p}_{k}\in\mathbb{R}^{n}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT is the update. Note that Sksubscript𝑆𝑘{S}_{k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT in Eq. 3 has index k𝑘kitalic_k and depends on the iteration. To compute pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, we can solve the sketched system Eq. 3 in the equivalent form

(5) SkTApk=SkTrk1.superscriptsubscript𝑆𝑘T𝐴subscript𝑝𝑘superscriptsubscript𝑆𝑘Tsubscript𝑟𝑘1{S}_{k}^{\mathrm{\scriptstyle T}}A{p}_{k}={S}_{k}^{\mathrm{\scriptstyle T}}{r}% _{k-1}.italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

When the sketch is Sk=eiksubscript𝑆𝑘subscript𝑒subscript𝑖𝑘{S}_{k}={e}_{i_{k}}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_e start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT (one random column of the identity), the minimum-norm solution of Eq. 3 and hence (5) is

pk=bikaikTxk1aik22aikT.subscript𝑝𝑘subscript𝑏subscript𝑖𝑘superscriptsubscript𝑎subscript𝑖𝑘Tsubscript𝑥𝑘1subscriptsuperscriptnormsubscript𝑎subscript𝑖𝑘22superscriptsubscript𝑎subscript𝑖𝑘T{p}_{k}=\frac{{b}_{i_{k}}-{a}_{i_{k}*}^{\mathrm{\scriptstyle T}}{x}_{k-1}}{\|{% a}_{i_{k}*}\|^{2}_{2}}{a}_{i_{k}*}^{\mathrm{\scriptstyle T}}.italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = divide start_ARG italic_b start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG ∥ italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT .

This update and the corresponding iterate xk=xk1+pksubscript𝑥𝑘subscript𝑥𝑘1subscript𝑝𝑘{x}_{k}={x}_{k-1}+{p}_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is the popular randomized Kaczmarz method (Strohmer and Vershynin [19]). Note that for a symmetric full-rank square matrix B𝐵Bitalic_B and sketch Sk=eiksubscript𝑆𝑘subscript𝑒subscript𝑖𝑘{S}_{k}={e}_{i_{k}}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_e start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT, the update

(6) pk=bikaikTxk1aikB12B1aikTsubscript𝑝𝑘subscript𝑏subscript𝑖𝑘superscriptsubscript𝑎subscript𝑖𝑘Tsubscript𝑥𝑘1subscriptsuperscriptnormsubscript𝑎subscript𝑖𝑘2superscript𝐵1superscript𝐵1superscriptsubscript𝑎subscript𝑖𝑘T{p}_{k}=\frac{{b}_{i_{k}}-{a}_{i_{k}*}^{\mathrm{\scriptstyle T}}{x}_{k-1}}{\|{% a}_{i_{k}*}\|^{2}_{B^{-1}}}B^{-1}{a}_{i_{k}*}^{\mathrm{\scriptstyle T}}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = divide start_ARG italic_b start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG ∥ italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_B start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT end_ARG italic_B start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT

is also a valid solution of Eq. 5. Nevertheless, to the best of our knowledge, an update like Eq. 6 remains largely unexplored. Importantly, there exist infinitely many updates like Eq. 6 because there exist arbitrarily many B𝐵Bitalic_B’s.

1.3 Contributions

In the context of sketch-and-project methods, this article develops judicious weights B𝐵Bitalic_B, which we view as implicit preconditioning strategies. Instead of using a uniform weight across all problems Ax=b𝐴𝑥𝑏Ax=bitalic_A italic_x = italic_b (e.g., B=I𝐵𝐼B=Iitalic_B = italic_I for all problems) we consider weights for different types of linear system. For instance, if A𝐴Aitalic_A is symmetric we consider weighting by the matrix itself (i.e., B=A𝐵𝐴B=Aitalic_B = italic_A). Each specific choice of B𝐵Bitalic_B results in a different method. When A𝐴Aitalic_A is symmetric indefinite, we develop a new method that performs well compared to state-of-the-art random or deterministic methods. For general A𝐴Aitalic_A, we develop a B𝐵Bitalic_B that results in a nested algorithm. Numerical experiments on relatively large sparse systems demonstrate that the proposed method is effective compared to GMRES and alternative weightings.

2 PLSS

The Projected Linear Systems Solver (Brust and Saunders [6]) is a family of methods that allows the use of deterministic or random sketches. The main assumptions about the sketch are its size and rank at iteration k𝑘kitalic_k:

(7) Sk=[s1s2sk]m×k,rank(Sk)=k.formulae-sequencesubscript𝑆𝑘matrixsubscript𝑠1subscript𝑠2subscript𝑠𝑘superscript𝑚𝑘ranksubscript𝑆𝑘𝑘{S}_{k}=\begin{bmatrix}{s}_{1}&{s}_{2}&\cdots&{s}_{k}\end{bmatrix}\in\mathbb{R% }^{m\times k},\quad\textnormal{rank}({S}_{k})=k.italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL italic_s start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_k end_POSTSUPERSCRIPT , rank ( italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) = italic_k .

Arbitrary sketches (7) with updates computed from (17) (see below) lead to an iteration xk=xk1+pksubscript𝑥𝑘subscript𝑥𝑘1subscript𝑝𝑘{x}_{k}={x}_{k-1}+{p}_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT that enjoys a finite termination property: convergence to a solution of Ax=b𝐴𝑥𝑏Ax=bitalic_A italic_x = italic_b in at most min(m,n)min𝑚𝑛\textnormal{min}(m,n)min ( italic_m , italic_n ) iterations in exact arithmetic. This result differs from convergence for the expected difference 𝔼xk+1xBρ𝔼xkxB𝔼subscriptnormsubscript𝑥𝑘1superscript𝑥𝐵𝜌𝔼subscriptnormsubscript𝑥𝑘superscript𝑥𝐵\mathbb{E}\|{x}_{k+1}-x^{*}\|_{B}\leq\rho\mathbb{E}\|{x}_{k}-x^{*}\|_{B}blackboard_E ∥ italic_x start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT - italic_x start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ≤ italic_ρ blackboard_E ∥ italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - italic_x start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT with a rate 0ρ<10𝜌10\leq\rho<10 ≤ italic_ρ < 1 in [11], because it guarantees a solution in finitely many steps in exact arithmetic. We emphasize that the finite termination property also applies when the sketch is random. Note too that conditions (7) for the sketch are general. In particular, the sketch can be generated each iteration from scratch as in conventional methods [11, 16], where a random normal matrix is recomputed at each iteration. In these conventional implementations the random normal sketches do not expand as Skm×ksubscript𝑆𝑘superscript𝑚𝑘{S}_{k}\in\mathbb{R}^{m\times k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_k end_POSTSUPERSCRIPT but use a constant subspace size r>0,Skm×rformulae-sequence𝑟0subscript𝑆𝑘superscript𝑚𝑟r>0,{S}_{k}\in\mathbb{R}^{m\times r}italic_r > 0 , italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_r end_POSTSUPERSCRIPT. We believe this is the reason why the methods in [11, 16] don’t have the finite termination property.

Instead of recomputing the sketch at every iteration, we have another practical possibility of expanding the sketch recursively:

Sk=[s1s2sk1|sk]=[Sk1|sk].subscript𝑆𝑘matrixsubscript𝑠1subscript𝑠2subscript𝑠𝑘1|subscript𝑠𝑘matrixsubscript𝑆𝑘1|subscript𝑠𝑘{S}_{k}=\begin{bmatrix}{s}_{1}&{s}_{2}&\cdots&{s}_{k-1}&|&{s}_{k}\end{bmatrix}% =\begin{bmatrix}{S}_{k-1}&|&{s}_{k}\end{bmatrix}.italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL italic_s start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL italic_s start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_CELL start_CELL | end_CELL start_CELL italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL italic_S start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_CELL start_CELL | end_CELL start_CELL italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] .

Of course, a direct implementation of expanding sketches results in growing memory and computational complexity. However, for judicious sketch choices we can develop a very efficient recursion.

To use the sketch (7) in a practical method, note that the solution of a consistent linear system Ax=b𝐴𝑥𝑏Ax=bitalic_A italic_x = italic_b (square, overdetermined or underdetermined) can be computed via the iteration

(8) xk=xk1+pk,k=1,2,,formulae-sequencesubscript𝑥𝑘subscript𝑥𝑘1subscript𝑝𝑘𝑘12x_{k}={x}_{k-1}+{p}_{k},\quad k=1,2,\ldots,italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_k = 1 , 2 , … ,

where

(9) [BATSkSkTA0][pkzk]=[0SkTrk1].matrix𝐵superscript𝐴Tsubscript𝑆𝑘superscriptsubscript𝑆𝑘T𝐴0matrixsubscript𝑝𝑘subscript𝑧𝑘matrix0superscriptsubscript𝑆𝑘Tsubscript𝑟𝑘1\begin{bmatrix}B&A^{\mathrm{\scriptstyle T}}{S}_{k}\\[3.0pt] {S}_{k}^{\mathrm{\scriptstyle T}}A&0\end{bmatrix}\begin{bmatrix}{p}_{k}\\[3.0% pt] {z}_{k}\end{bmatrix}=\begin{bmatrix}0\\[3.0pt] {S}_{k}^{\mathrm{\scriptstyle T}}{r}_{k-1}\end{bmatrix}.[ start_ARG start_ROW start_CELL italic_B end_CELL start_CELL italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] [ start_ARG start_ROW start_CELL italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] .

Here, Bn×n𝐵superscript𝑛𝑛B\in\mathbb{R}^{n\times n}italic_B ∈ blackboard_R start_POSTSUPERSCRIPT italic_n × italic_n end_POSTSUPERSCRIPT is an arbitrary nonsingular symmetric matrix and zkksubscript𝑧𝑘superscript𝑘z_{k}\in\mathbb{R}^{k}italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT is an auxiliary vector that does not have to be explicitly computed. System Eq. 9 has a unique solution when ATSksuperscript𝐴Tsubscript𝑆𝑘A^{\mathrm{\scriptstyle T}}S_{k}italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT has full rank. It corresponds to the first-order optimality conditions for the optimization problem (17) below. (Linear equality constrained optimization is discussed in [5, 4].) We emphasize that iteration Eq. 8Eq. 9 applies to general linear systems Ax=b𝐴𝑥𝑏Ax=bitalic_A italic_x = italic_b. The iteration is parametrized by a symmetric parameter matrix B𝐵Bitalic_B and by the choice of sketching matrix Skm×ksubscript𝑆𝑘superscript𝑚𝑘S_{k}\in\mathbb{R}^{m\times k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_k end_POSTSUPERSCRIPT.

2.1 Update formulas

Initially assume that B𝐵Bitalic_B has full rank, so that its inverse W:=B1assign𝑊superscript𝐵1W:=B^{-1}italic_W := italic_B start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT exists. Solving Eq. 9 gives the explicit formula

(10) pk=WATSk(SkTAWATSk)1SkTrk1.subscript𝑝𝑘𝑊superscript𝐴Tsubscript𝑆𝑘superscriptsuperscriptsubscript𝑆𝑘T𝐴𝑊superscript𝐴Tsubscript𝑆𝑘1superscriptsubscript𝑆𝑘Tsubscript𝑟𝑘1{p}_{k}=WA^{\mathrm{\scriptstyle T}}{S}_{k}({S}_{k}^{\mathrm{\scriptstyle T}}% AWA^{\mathrm{\scriptstyle T}}{S}_{k})^{-1}{S}_{k}^{\mathrm{\scriptstyle T}}{r}% _{k-1}.italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_W italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_W italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

This is the basis for straightforward randomized solvers in which Sksubscript𝑆𝑘{S}_{k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is chosen as a random sketch. For instance, the approaches of Gower and Richtárik [11] use random normal sketches Skm×rsubscript𝑆𝑘superscript𝑚𝑟{S}_{k}\in\mathbb{R}^{m\times r}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_r end_POSTSUPERSCRIPT with rank parameter r>0𝑟0r>0italic_r > 0. Because these methods need to solve with the r×r𝑟𝑟r\times ritalic_r × italic_r matrix SkTAWATSksuperscriptsubscript𝑆𝑘T𝐴𝑊superscript𝐴Tsubscript𝑆𝑘{S}_{k}^{\mathrm{\scriptstyle T}}AWA^{\mathrm{\scriptstyle T}}{S}_{k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_W italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, typically r𝑟ritalic_r is a relatively small integer. However, for small r𝑟ritalic_r the method can converge only slowly.

2.2 Finite termination

In contrast to using a fixed-size sketch, with sketches Eq. 7 we can prove finite termination for iteration Eq. 8Eq. 9. We emphasize that the sketch can be a random matrix, like a random normal Gaussian, or it could come from a deterministic process. In the following we describe some of the intuition for proving finite termination. To keep matters simple we analyse the situation of a nonsingular square system. (Detailed results for square, rectangular and singular problems are in [6].) Suppose iteration Eq. 8Eq. 9 has not yet converged. This means that at iteration k=n𝑘𝑛k=nitalic_k = italic_n, the sketch is a full-rank square matrix Sk=Snsubscript𝑆𝑘subscript𝑆𝑛S_{k}=S_{n}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. Therefore, the update formula is

pn=WATSn(SnTAWATSn)1SnTrn1,k=n.formulae-sequencesubscript𝑝𝑛𝑊superscript𝐴Tsubscript𝑆𝑛superscriptsuperscriptsubscript𝑆𝑛T𝐴𝑊superscript𝐴Tsubscript𝑆𝑛1superscriptsubscript𝑆𝑛Tsubscript𝑟𝑛1𝑘𝑛p_{n}=WA^{\mathrm{\scriptstyle T}}S_{n}(S_{n}^{\mathrm{\scriptstyle T}}AWA^{% \mathrm{\scriptstyle T}}S_{n})^{-1}S_{n}^{\mathrm{\scriptstyle T}}r_{n-1},% \quad k=n.italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = italic_W italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_W italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT , italic_k = italic_n .

By the assumption that both Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and A𝐴Aitalic_A are square, the update formula implies

pn=A1rn1=A1(bAxn1)subscript𝑝𝑛superscript𝐴1subscript𝑟𝑛1superscript𝐴1𝑏𝐴subscript𝑥𝑛1p_{n}=A^{-1}r_{n-1}=A^{-1}(b-Ax_{n-1})italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_b - italic_A italic_x start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT )

and hence

xn=xn1+pn=A1b.subscript𝑥𝑛subscript𝑥𝑛1subscript𝑝𝑛superscript𝐴1𝑏x_{n}=x_{n-1}+p_{n}=A^{-1}b.italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_b .

Since A1bsuperscript𝐴1𝑏A^{-1}bitalic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_b is the solution of (1) (for square A𝐴Aitalic_A) we conclude that the iteration converges in at most n𝑛nitalic_n iterations, independent of whether the sketch is random or deterministic. The main assumption is that the sketch satisfies the rank condition Eq. 7. Finite termination is a useful and desirable property because it leads to efficient methods.

2.3 Sketch variations

To keep computational cost low, the original versions of PLSS consider mainly simple weights for B𝐵Bitalic_B and its inverse W𝑊Witalic_W, such as B=I𝐵𝐼B=Iitalic_B = italic_I or B=diag(a1,,an)𝐵diagnormsubscript𝑎1normsubscript𝑎𝑛B=\textnormal{diag}\big{(}\|a_{1}\|,\ldots,\|a_{n}\|\big{)}italic_B = diag ( ∥ italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∥ , … , ∥ italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∥ ). On the other hand, the sketch Sksubscript𝑆𝑘S_{k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT in PLSS is developed meticulously, typically by recursively expanding the previous sketch. Different choices for the columns in (7) are

(11) sk={randn(random normal)rk1(residuals)eik(generalized Kaczmarz)aik(generalized normal equations)subscript𝑠𝑘casesrandnrandom normalsubscript𝑟𝑘1residualssubscript𝑒subscript𝑖𝑘generalized Kaczmarzsubscript𝑎subscript𝑖𝑘generalized normal equations{s}_{k}=\begin{cases}\textnormal{randn}&(\textnormal{random normal})\\ {r}_{k-1}&(\textnormal{residuals})\\ e_{i_{k}}&(\textnormal{generalized Kaczmarz})\\ a_{i_{k}}&(\textnormal{generalized normal equations})\\ \end{cases}italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = { start_ROW start_CELL randn end_CELL start_CELL ( random normal ) end_CELL end_ROW start_ROW start_CELL italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_CELL start_CELL ( residuals ) end_CELL end_ROW start_ROW start_CELL italic_e start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_CELL start_CELL ( generalized Kaczmarz ) end_CELL end_ROW start_ROW start_CELL italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_CELL start_CELL ( generalized normal equations ) end_CELL end_ROW

Each of these variations results in a different method. However, the effects of the weighting matrix B𝐵Bitalic_B remain largely unexplored.

Refer to caption
Refer to caption
Figure 1: Sketched solutions to saddle systems when B=I𝐵𝐼B=Iitalic_B = italic_I (left) or B=A𝐵𝐴B=Aitalic_B = italic_A and A𝐴Aitalic_A is symmetric indefinite.

2.4 Orthogonal updates

We note that when the product SkTrk1subscriptsuperscript𝑆T𝑘subscript𝑟𝑘1{S}^{\mathrm{\scriptstyle T}}_{k}r_{k-1}italic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT is a multiple of eksubscript𝑒𝑘e_{k}italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, say SkTrk1=δkeksubscriptsuperscript𝑆T𝑘subscript𝑟𝑘1subscript𝛿𝑘subscript𝑒𝑘{S}^{\mathrm{\scriptstyle T}}_{k}r_{k-1}=\delta_{k}e_{k}italic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_δ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, for some scalar δksubscript𝛿𝑘\delta_{k}italic_δ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, then the updates pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT in (10) are orthogonal with respect to the weighting matrix W1=Bsuperscript𝑊1𝐵W^{-1}=Bitalic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT = italic_B:

(12) piTW1pj=piTBpj=0,1ijkformulae-sequencesubscriptsuperscript𝑝T𝑖superscript𝑊1subscript𝑝𝑗subscriptsuperscript𝑝T𝑖𝐵subscript𝑝𝑗01𝑖𝑗𝑘{p}^{\mathrm{\scriptstyle T}}_{i}W^{-1}{p}_{j}={p}^{\mathrm{\scriptstyle T}}_{% i}B{p}_{j}=0,\quad 1\leq i\leq j\leq kitalic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_B italic_p start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = 0 , 1 ≤ italic_i ≤ italic_j ≤ italic_k

In order to see this orthogonality, suppose Ek=[e1ek]subscript𝐸𝑘matrixsubscript𝑒1subscript𝑒𝑘E_{k}=\begin{bmatrix}e_{1}&\cdots&e_{k}\end{bmatrix}italic_E start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] is the matrix of identity columns, so that Sk1=SkEk1subscript𝑆𝑘1subscript𝑆𝑘subscript𝐸𝑘1S_{k-1}=S_{k}E_{k-1}italic_S start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT. From (10) this means that piRange(WATSkEi)subscript𝑝𝑖Range𝑊superscript𝐴𝑇subscript𝑆𝑘subscript𝐸𝑖p_{i}\in\text{Range}(WA^{T}S_{k}E_{i})italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ Range ( italic_W italic_A start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) and therefore

(EiTSkTAW)W1pk=EiTSkTrk1=δkEiTek=0,1i<k.formulae-sequencesubscriptsuperscript𝐸𝑇𝑖subscriptsuperscript𝑆T𝑘𝐴𝑊superscript𝑊1subscript𝑝𝑘subscriptsuperscript𝐸T𝑖subscriptsuperscript𝑆T𝑘subscript𝑟𝑘1subscript𝛿𝑘subscriptsuperscript𝐸T𝑖subscript𝑒𝑘01𝑖𝑘(E^{T}_{i}{S}^{\mathrm{\scriptstyle T}}_{k}AW)W^{-1}{p}_{k}={E}^{\mathrm{% \scriptstyle T}}_{i}{S}^{\mathrm{\scriptstyle T}}_{k}{r}_{k-1}=\delta_{k}{E}^{% \mathrm{\scriptstyle T}}_{i}{e}_{k}=0,\quad 1\leq i<k.( italic_E start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_A italic_W ) italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_E start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_δ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_E start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = 0 , 1 ≤ italic_i < italic_k .

In other words, the updates are orthogonal with respect to the inner product defined by W1superscript𝑊1W^{-1}italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT, so that (12) is valid.

2.5 PLSS residual

When the sketch consists of previous residuals, i.e., si=ri1subscript𝑠𝑖subscript𝑟𝑖1s_{i}={r}_{i-1}italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT for i=1,2,,k𝑖12𝑘i=1,2,\ldots,kitalic_i = 1 , 2 , … , italic_k and B𝐵Bitalic_B is spd, remarkably the update formula (10) simplifies to a short one-step recurrence (we refer to this method as PLSS residual). Further, note that all residuals (with this sketch) are orthogonal. In particular, the residuals satisfy

rk=bAxk=bA(xk1+pk)=rk1Apk,subscript𝑟𝑘𝑏𝐴subscript𝑥𝑘𝑏𝐴subscript𝑥𝑘1subscript𝑝𝑘subscript𝑟𝑘1𝐴subscript𝑝𝑘{r}_{k}=b-A{x}_{k}=b-A({x}_{k-1}+{p}_{k})={r}_{k-1}-A{p}_{k},italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_b - italic_A ( italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) = italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ,

and therefore the second block row in (9) results in

(13) 0=SkT(Apkrk1)=SkTrk.0superscriptsubscript𝑆𝑘𝑇𝐴subscript𝑝𝑘subscript𝑟𝑘1superscriptsubscript𝑆𝑘𝑇subscript𝑟𝑘0={S}_{k}^{T}(A{p}_{k}-{r}_{k-1})=-{S}_{k}^{T}{r}_{k}.0 = italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) = - italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT .

As Sk=[r0rk1]subscript𝑆𝑘matrixsubscript𝑟0subscript𝑟𝑘1{S}_{k}=\begin{bmatrix}{r}_{0}\ldots{r}_{k-1}\end{bmatrix}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT … italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] contains all previous residuals, (13) implies orthogonality of all residuals. This is an important property of PLSS with residual sketches. For instance, the product SkTrk1superscriptsubscript𝑆𝑘𝑇subscript𝑟𝑘1{S}_{k}^{T}{r}_{k-1}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT simplifies to rk122ek1subscriptsuperscriptnormsubscript𝑟𝑘122subscript𝑒𝑘1\|{r}_{k-1}\|^{2}_{2}{e}_{k-1}∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT. Using this property and further simplifications, we can reduce the explicit formula in (10) to a short recursion ([6, Theorem 1]):

(14) pk=βk1pk1+γk1Wyk,subscript𝑝𝑘subscript𝛽𝑘1subscript𝑝𝑘1subscript𝛾𝑘1𝑊subscript𝑦𝑘{p_{k}}={\beta}_{k-1}{p}_{k-1}+{\gamma}_{k-1}W{y}_{k},italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_W italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ,

where

yk1subscript𝑦𝑘1\displaystyle{y}_{k-1}italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =ATrk1absentsuperscript𝐴Tsubscript𝑟𝑘1\displaystyle=A^{\mathrm{\scriptstyle T}}{r}_{k-1}= italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
θk1subscript𝜃𝑘1\displaystyle{\theta}_{k-1}italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =pk1TW1pk1absentsubscriptsuperscript𝑝T𝑘1superscript𝑊1subscript𝑝𝑘1\displaystyle={p}^{\mathrm{\scriptstyle T}}_{k-1}W^{-1}{p}_{k-1}= italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
ωk1subscript𝜔𝑘1\displaystyle{\omega}_{k-1}italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =rk12absentsuperscriptnormsubscript𝑟𝑘12\displaystyle=\|{r}_{k-1}\|^{2}= ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT
ϕk1subscriptitalic-ϕ𝑘1\displaystyle{\phi}_{k-1}italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =ykTWykabsentsubscriptsuperscript𝑦T𝑘𝑊subscript𝑦𝑘\displaystyle={y}^{\mathrm{\scriptstyle T}}_{k}W{y}_{k}= italic_y start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_W italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
βk1subscript𝛽𝑘1\displaystyle{\beta}_{k-1}italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =1/(θk1ϕk1ωk1ωk11)absent1subscript𝜃𝑘1subscriptitalic-ϕ𝑘1subscript𝜔𝑘1subscript𝜔𝑘11\displaystyle=1\big{/}\biggl{(}\frac{{\theta}_{k-1}{\phi}_{k-1}}{{\omega}_{k-1% }{\omega}_{k-1}}-1\biggr{)}= 1 / ( divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG - 1 )
γk1subscript𝛾𝑘1\displaystyle{\gamma}_{k-1}italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =1/(1ωk1ωk1θk1ϕk1).absent11subscript𝜔𝑘1subscript𝜔𝑘1subscript𝜃𝑘1subscriptitalic-ϕ𝑘1\displaystyle=1\big{/}\biggl{(}1-\frac{{\omega}_{k-1}{\omega}_{k-1}}{{\theta}_% {k-1}{\phi}_{k-1}}\biggr{)}.= 1 / ( 1 - divide start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG ) .

Method (14) is extremely efficient compared to the full update formula (10), even though they are mathematically equivalent (modulo that Sksubscript𝑆𝑘{S}_{k}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is based on past residuals).

2.6 PLSS Kaczmarz

A generalization of the randomized Kaczmarz method can be developed from PLSS when the sketching matrix is augmented with one random identity column at each iteration: sij=eijsubscript𝑠subscript𝑖𝑗subscript𝑒subscript𝑖𝑗{s}_{i_{j}}={e}_{i_{j}}italic_s start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT end_POSTSUBSCRIPT = italic_e start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT end_POSTSUBSCRIPT for ij{1,,m}subscript𝑖𝑗1𝑚i_{j}\in\{1,\ldots,m\}italic_i start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ∈ { 1 , … , italic_m }. The sketch is then Sk=[ei1eik]subscript𝑆𝑘matrixsubscript𝑒subscript𝑖1subscript𝑒subscript𝑖𝑘{S}_{k}=\begin{bmatrix}{e}_{i_{1}}&\ldots&{e}_{i_{k}}\end{bmatrix}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_e start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL italic_e start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] and the second block row from (9) implies that SkTrk1=(rk1)ikeksubscriptsuperscript𝑆T𝑘subscript𝑟𝑘1subscriptsubscript𝑟𝑘1subscript𝑖𝑘subscript𝑒𝑘{S}^{\mathrm{\scriptstyle T}}_{k}{r}_{k-1}=({r}_{k-1})_{i_{k}}{e}_{k}italic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = ( italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. Using the definition ϕi=piTW1pisubscriptitalic-ϕ𝑖subscriptsuperscript𝑝T𝑖superscript𝑊1subscript𝑝𝑖{\phi}_{i}={p}^{\mathrm{\scriptstyle T}}_{i}W^{-1}{p}_{i}italic_ϕ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, we define a diagonal matrix

Gk=diag(ϕ1,,ϕk).subscript𝐺𝑘diagsubscriptitalic-ϕ1subscriptitalic-ϕ𝑘{G}_{k}=\textnormal{diag}(\phi_{1},\ldots,{\phi}_{k}).italic_G start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = diag ( italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_ϕ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) .

The generalized randomized Kaczmarz method is then given (after simplification of (10)) by the updates [6]

(15) pk=ηk1dk1,subscript𝑝𝑘subscript𝜂𝑘1subscript𝑑𝑘1p_{k}={\eta}_{k-1}{d}_{k-1},italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_η start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ,

where

ηk1subscript𝜂𝑘1\displaystyle{\eta}_{k-1}italic_η start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =(rk1)ikaikdk1absentsubscriptsubscript𝑟𝑘1subscript𝑖𝑘subscript𝑎subscript𝑖𝑘subscript𝑑𝑘1\displaystyle=\frac{({r}_{k-1})_{i_{k}}}{a_{i_{k}*}{d}_{k-1}}= divide start_ARG ( italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG
dk1subscript𝑑𝑘1\displaystyle{d}_{k-1}italic_d start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =Wyk1Pk1Gk11Pk1Tyk1absent𝑊subscript𝑦𝑘1subscript𝑃𝑘1subscriptsuperscript𝐺1𝑘1subscriptsuperscript𝑃𝑇𝑘1subscript𝑦𝑘1\displaystyle=W{y}_{k-1}-{P}_{k-1}G^{-1}_{k-1}P^{T}_{k-1}{y}_{k-1}= italic_W italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_P start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_G start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_P start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
yk1subscript𝑦𝑘1\displaystyle{y}_{k-1}italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT =ATrk1.absentsuperscript𝐴𝑇subscript𝑟𝑘1\displaystyle=A^{T}{r}_{k-1}.= italic_A start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

PLSS residual and PLSS Kaczmarz are different methods that result from different choices for the sketch. However, note that the iterations in Eq. 14 or Eq. 15 are still parametrized by the arbitrary symmetric matrix W𝑊Witalic_W (and hence B𝐵Bitalic_B).

3 New methods

Here we develop new weighting strategies depending on the properties of A𝐴Aitalic_A. Since B𝐵Bitalic_B is symmetric, system Eq. 9 corresponds to the first-order optimality conditions of a certain optimization problem. The left plot of Fig. 1 shows the updates generated from a minimization process with an spd B𝐵Bitalic_B, while the right plot corresponds to a symmetric indefinite B𝐵Bitalic_B. Our discussion starts with spd A𝐴Aitalic_A and least-squares problems before describing symmetric indefinite systems and then general (nonsymmetric) square systems. From now on we use the notation

(16) vksubscript𝑣𝑘\displaystyle v_{k}italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT :=Apk,uk:=A1pk,yk:=ATrk,wk:=Wyk,formulae-sequenceassignabsent𝐴subscript𝑝𝑘formulae-sequenceassignsubscript𝑢𝑘superscript𝐴1subscript𝑝𝑘formulae-sequenceassignsubscript𝑦𝑘superscript𝐴Tsubscript𝑟𝑘assignsubscript𝑤𝑘𝑊subscript𝑦𝑘\displaystyle:=Ap_{k},\quad u_{k}:=A^{-1}p_{k},\quad y_{k}:=A^{\mathrm{% \scriptstyle T}}r_{k},\quad w_{k}:=Wy_{k},:= italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT := italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT := italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_w start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT := italic_W italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ,
θksubscript𝜃𝑘\displaystyle\theta_{k}italic_θ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT =pkTW1pk,ϕk=rkTAWATrk,formulae-sequenceabsentsubscriptsuperscript𝑝T𝑘superscript𝑊1subscript𝑝𝑘subscriptitalic-ϕ𝑘superscriptsubscript𝑟𝑘T𝐴𝑊superscript𝐴Tsubscript𝑟𝑘\displaystyle={p}^{\mathrm{\scriptstyle T}}_{k}W^{-1}{p}_{k},\qquad\quad\ \phi% _{k}=r_{k}^{\mathrm{\scriptstyle T}}AWA^{\mathrm{\scriptstyle T}}r_{k},= italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_ϕ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_W italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ,
βksubscript𝛽𝑘\displaystyle\beta_{k}italic_β start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT =1/(θkϕkωkωk1),γk=θkωkβk.formulae-sequenceabsent1subscript𝜃𝑘subscriptitalic-ϕ𝑘subscript𝜔𝑘subscript𝜔𝑘1subscript𝛾𝑘subscript𝜃𝑘subscript𝜔𝑘subscript𝛽𝑘\displaystyle=1\big{/}\biggl{(}\frac{\theta_{k}\phi_{k}}{\omega_{k}\omega_{k}}% -1\biggr{)},\quad\gamma_{k}=\frac{\theta_{k}}{\omega_{k}}\beta_{k}.= 1 / ( divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_ARG - 1 ) , italic_γ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_ARG italic_β start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT .

3.1 Symmetric positive definite

When B𝐵Bitalic_B is spd, the 2×2222\times 22 × 2 block system Eq. 9 corresponds to the optimality conditions of the optimization problem

(17)  minimize pn12pTBp𝑝superscript𝑛 minimize 12superscript𝑝T𝐵𝑝\displaystyle\underset{p\in\mathbb{R}^{n}}{\textnormal{ minimize }}\quad\frac{% 1}{2}p^{\mathrm{\scriptstyle T}}Bpstart_UNDERACCENT italic_p ∈ blackboard_R start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT end_UNDERACCENT start_ARG minimize end_ARG divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_B italic_p
subject to SkTAp=SkTrk1.subject to superscriptsubscript𝑆𝑘T𝐴𝑝superscriptsubscript𝑆𝑘Tsubscript𝑟𝑘1\displaystyle\textnormal{ subject to }\>{S}_{k}^{\mathrm{\scriptstyle T}}Ap={S% }_{k}^{\mathrm{\scriptstyle T}}{r}_{k-1}.subject to italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_p = italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

B=I𝐵𝐼B=Iitalic_B = italic_I gives the minimum-norm objective 12p2212subscriptsuperscriptnorm𝑝22\frac{1}{2}\|p\|^{2}_{2}divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∥ italic_p ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. For the solution pksubscript𝑝𝑘{p}_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT to be a global minimizer of (17), B𝐵Bitalic_B must be positive semidefinite. Further, when ASk𝐴subscript𝑆𝑘AS_{k}italic_A italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and B𝐵Bitalic_B have full rank, pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is the unique minimizer. When B𝐵Bitalic_B is any spd matrix, the objective in Eq. 17 can equivalently be written as 12pB212subscriptsuperscriptnorm𝑝2𝐵\frac{1}{2}\|p\|^{2}_{B}divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∥ italic_p ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT (thus B𝐵Bitalic_B can be interpreted as a weighting). Recall that with a general sketch, the solution of Eq. 9 is given by Eq. 10. However, when previous residuals make up the sketch columns, the update reduces to a short recurrence Eq. 14. If A𝐴Aitalic_A is spd, we would like to exploit this property. Possible choices for B𝐵Bitalic_B are B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT or B=A𝐵𝐴B=Aitalic_B = italic_A, which are both spd.

3.1.1 Symmetric positive definite: Method 1

Since pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT in recurrence Eq. 14 is expressed in terms of W=B1𝑊superscript𝐵1W=B^{-1}italic_W = italic_B start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT, an immediate choice of weighting could be B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT, so that W=A𝑊𝐴W=Aitalic_W = italic_A. The only difficulty for implementing the recurrence in this case is computing the scalar

θk1=pk1TW1pk1=pk1TA1pk1,subscript𝜃𝑘1subscriptsuperscript𝑝T𝑘1superscript𝑊1subscript𝑝𝑘1subscriptsuperscript𝑝T𝑘1superscript𝐴1subscript𝑝𝑘1\theta_{k-1}={p}^{\mathrm{\scriptstyle T}}_{k-1}W^{-1}{p}_{k-1}={p}^{\mathrm{% \scriptstyle T}}_{k-1}A^{-1}{p}_{k-1},italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ,

as it depends on A1superscript𝐴1A^{-1}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT (which is not available). Nevertheless, we can exploit the short recurrence Eq. 14 to deduce a relation for A1pksuperscript𝐴1subscript𝑝𝑘A^{-1}p_{k}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. Premultiplying

pk=βk1pk1+γk1wk1subscript𝑝𝑘subscript𝛽𝑘1subscript𝑝𝑘1subscript𝛾𝑘1subscript𝑤𝑘1p_{k}={\beta}_{k-1}{p}_{k-1}+{\gamma}_{k-1}{w}_{k-1}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT

by A1superscript𝐴1A^{-1}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT and using the notation Eq. 16, we see that uk=A1pksubscript𝑢𝑘superscript𝐴1subscript𝑝𝑘u_{k}=A^{-1}p_{k}italic_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT satisfies

uk=βk1uk1+γk1yk1.subscript𝑢𝑘subscript𝛽𝑘1subscript𝑢𝑘1subscript𝛾𝑘1subscript𝑦𝑘1{u}_{k}={\beta}_{k-1}{u}_{k-1}+{\gamma}_{k-1}{y}_{k-1}.italic_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

With this relation a short recursive algorithm can be developed that does not require any computations with A1superscript𝐴1A^{-1}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT. This method is based on residuals for the sketch; hence it derives from the relations in Eq. 14. Second, we specify the arbitrary weight to ne B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT and ensure that all scalars in Eq. 16 can be computed.

Algorithm 1: PLSS (spd B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT)
Given: r0=bAx0;y0=ATr0;w0=Ay0formulae-sequencesubscript𝑟0𝑏𝐴subscript𝑥0formulae-sequencesubscript𝑦0superscript𝐴Tsubscript𝑟0subscript𝑤0𝐴subscript𝑦0r_{0}=b-Ax_{0};\quad y_{0}=A^{\mathrm{\scriptstyle T}}r_{0};\quad w_{0}=Ay_{0}italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_w start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT
ω0=r02;ϕ0=y0Tw0;u1=(ω0/ϕ0)y0;p1=(ω0/ϕ0)w0formulae-sequencesubscript𝜔0superscriptnormsubscript𝑟02formulae-sequencesubscriptitalic-ϕ0superscriptsubscript𝑦0Tsubscript𝑤0formulae-sequencesubscript𝑢1subscript𝜔0subscriptitalic-ϕ0subscript𝑦0subscript𝑝1subscript𝜔0subscriptitalic-ϕ0subscript𝑤0\omega_{0}=\|r_{0}\|^{2};\quad\phi_{0}=y_{0}^{\mathrm{\scriptstyle T}}w_{0};% \quad u_{1}=(\omega_{0}/\phi_{0})y_{0};\quad p_{1}=(\omega_{0}/\phi_{0})w_{0}italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = ∥ italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ; italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_w start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT / italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT / italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) italic_w start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT
x1=x0+p1;r1=bAx1;y1=ATr1;w1=Ay1formulae-sequencesubscript𝑥1subscript𝑥0subscript𝑝1formulae-sequencesubscript𝑟1𝑏𝐴subscript𝑥1formulae-sequencesubscript𝑦1superscript𝐴Tsubscript𝑟1subscript𝑤1𝐴subscript𝑦1x_{1}=x_{0}+p_{1};\quad r_{1}=b-Ax_{1};\quad y_{1}=A^{\mathrm{\scriptstyle T}}% r_{1};\quad w_{1}=Ay_{1}italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_w start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT
for k=2,3,,n𝑘23𝑛k=2,3,\dots,nitalic_k = 2 , 3 , … , italic_n
θk1=pk1Tuk1;ϕk1=yk1Twk1formulae-sequencesubscript𝜃𝑘1subscriptsuperscript𝑝T𝑘1subscript𝑢𝑘1subscriptitalic-ϕ𝑘1subscriptsuperscript𝑦T𝑘1subscript𝑤𝑘1{\theta}_{k-1}={p}^{\mathrm{\scriptstyle T}}_{k-1}{u}_{k-1};\quad{\phi}_{k-1}=% {y}^{\mathrm{\scriptstyle T}}_{k-1}{w}_{k-1}italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ; italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_y start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
ωk1=rk12subscript𝜔𝑘1superscriptnormsubscript𝑟𝑘12{\omega}_{k-1}=\|{r}_{k-1}\|^{2}italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT
βk1=1/(θk1ϕk1ωk1ωk11)subscript𝛽𝑘11subscript𝜃𝑘1subscriptitalic-ϕ𝑘1subscript𝜔𝑘1subscript𝜔𝑘11{\beta}_{k-1}=1\big{/}\big{(}\frac{{\theta}_{k-1}{\phi}_{k-1}}{{\omega}_{k-1}{% \omega}_{k-1}}-1\big{)}italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = 1 / ( divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG - 1 )
γk1=θk1ωk1βk1subscript𝛾𝑘1subscript𝜃𝑘1subscript𝜔𝑘1subscript𝛽𝑘1{\gamma}_{k-1}=\frac{{\theta}_{k-1}}{{\omega}_{k-1}}{\beta}_{k-1}italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
uk=βk1uk1+γk1yk1subscript𝑢𝑘subscript𝛽𝑘1subscript𝑢𝑘1subscript𝛾𝑘1subscript𝑦𝑘1u_{k}={\beta}_{k-1}{u}_{k-1}+{\gamma}_{k-1}{y}_{k-1}italic_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
pk=βk1pk1+γk1wk1subscript𝑝𝑘subscript𝛽𝑘1subscript𝑝𝑘1subscript𝛾𝑘1subscript𝑤𝑘1p_{k}={\beta}_{k-1}{p}_{k-1}+{\gamma}_{k-1}{w}_{k-1}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
xk=xk1+pksubscript𝑥𝑘subscript𝑥𝑘1subscript𝑝𝑘x_{k}={x}_{k-1}+p_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
rk=bAxksubscript𝑟𝑘𝑏𝐴subscript𝑥𝑘r_{k}=b-Ax_{k}italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
yk=ATrksubscript𝑦𝑘superscript𝐴Tsubscript𝑟𝑘y_{k}=A^{\mathrm{\scriptstyle T}}r_{k}italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
wk=Ayksubscript𝑤𝑘𝐴subscript𝑦𝑘w_{k}=Ay_{k}italic_w start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
end

A few notes about Algorithm 1. First, it is designed for symmetric A𝐴Aitalic_A and therefore any occurrences of ATsuperscript𝐴TA^{\mathrm{\scriptstyle T}}italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT can be replaced by A𝐴Aitalic_A. Second, it has low memory usage: only 6 vectors of size n𝑛nitalic_n are being updated. Third, it is computationally efficient, especially compared to randomized algorithms that compute the update via Eq. 10 (see [11, 16]). Compared to other iterative methods it is moderately efficient in using three matvec operations per iteration. Also, it possesses the finite termination property because the sketch consists of the history of residuals, by virtue of its derivation from (14).

3.1.2 Symmetric positive definite: Method 2

We can develop a second algorithm by choosing B=A𝐵𝐴B=Aitalic_B = italic_A so that W=A1𝑊superscript𝐴1W=A^{-1}italic_W = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT. At first this choice seems to make recursion Eq. 14 difficult to compute because the vector

wk1=Wyk1=A1yk1subscript𝑤𝑘1𝑊subscript𝑦𝑘1superscript𝐴1subscript𝑦𝑘1{w}_{k-1}=W{y}_{k-1}=A^{-1}{y}_{k-1}italic_w start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_W italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT

is needed in the update. However, when A𝐴Aitalic_A is symmetric we have

wk1=A1yk1=A1(ATrk1)=rk1.subscript𝑤𝑘1superscript𝐴1subscript𝑦𝑘1superscript𝐴1superscript𝐴Tsubscript𝑟𝑘1subscript𝑟𝑘1{w}_{k-1}=A^{-1}{y}_{k-1}=A^{-1}(A^{\mathrm{\scriptstyle T}}{r}_{k-1})={r}_{k-% 1}.italic_w start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) = italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

In other words, the computations with the inverse cancel out. The scalars can also be computed directly:

θk1=pk1TW1pk1=pk1Tvk1 and ϕk1=yk1TWyk1=rk1Tyk1,formulae-sequencesubscript𝜃𝑘1subscriptsuperscript𝑝T𝑘1superscript𝑊1subscript𝑝𝑘1subscriptsuperscript𝑝T𝑘1subscript𝑣𝑘1 and subscriptitalic-ϕ𝑘1subscriptsuperscript𝑦T𝑘1𝑊subscript𝑦𝑘1subscriptsuperscript𝑟T𝑘1subscript𝑦𝑘1{\theta}_{k-1}={p}^{\mathrm{\scriptstyle T}}_{k-1}W^{-1}{p}_{k-1}={p}^{\mathrm% {\scriptstyle T}}_{k-1}{v}_{k-1}\quad\text{ and }\quad{\phi}_{k-1}={y}^{% \mathrm{\scriptstyle T}}_{k-1}W{y}_{k-1}={r}^{\mathrm{\scriptstyle T}}_{k-1}{y% }_{k-1},italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_W start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT and italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_y start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_W italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_r start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ,

where vk=Apksubscript𝑣𝑘𝐴subscript𝑝𝑘v_{k}=Ap_{k}italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. Because pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT satisfies

pk=βk1pk1+γk1rk1,subscript𝑝𝑘subscript𝛽𝑘1subscript𝑝𝑘1subscript𝛾𝑘1subscript𝑟𝑘1p_{k}={\beta}_{k-1}{p}_{k-1}+{\gamma}_{k-1}{r}_{k-1},italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ,

vksubscript𝑣𝑘v_{k}italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT can be found to follow the relation

vk=βk1vk1+γk1yk1.subscript𝑣𝑘subscript𝛽𝑘1subscript𝑣𝑘1subscript𝛾𝑘1subscript𝑦𝑘1v_{k}={\beta}_{k-1}{v}_{k-1}+{\gamma}_{k-1}{y}_{k-1}.italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

The algorithm using this weighting follows.

Algorithm 2: PLSS (spd B=A𝐵𝐴B=Aitalic_B = italic_A)
Given: r0=bAx0;y0=ATr0;formulae-sequencesubscript𝑟0𝑏𝐴subscript𝑥0subscript𝑦0superscript𝐴Tsubscript𝑟0r_{0}=b-Ax_{0};\quad y_{0}=A^{\mathrm{\scriptstyle T}}r_{0};italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ;
ω0=r02;ϕ0=y0Tr0;p1=(ω0/ϕ0)r0;v1=Ap1formulae-sequencesubscript𝜔0superscriptnormsubscript𝑟02formulae-sequencesubscriptitalic-ϕ0superscriptsubscript𝑦0Tsubscript𝑟0formulae-sequencesubscript𝑝1subscript𝜔0subscriptitalic-ϕ0subscript𝑟0subscript𝑣1𝐴subscript𝑝1\omega_{0}=\|r_{0}\|^{2};\quad\phi_{0}=y_{0}^{\mathrm{\scriptstyle T}}r_{0};% \quad p_{1}=(\omega_{0}/\phi_{0})r_{0};\quad v_{1}=Ap_{1}italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = ∥ italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ; italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT / italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT
x1=x0+p1;r1=r0v1;y1=ATr1;formulae-sequencesubscript𝑥1subscript𝑥0subscript𝑝1formulae-sequencesubscript𝑟1subscript𝑟0subscript𝑣1subscript𝑦1superscript𝐴Tsubscript𝑟1x_{1}=x_{0}+p_{1};\quad r_{1}=r_{0}-v_{1};\quad y_{1}=A^{\mathrm{\scriptstyle T% }}r_{1};italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ;
for k=2,3,,n𝑘23𝑛k=2,3,\dots,nitalic_k = 2 , 3 , … , italic_n
θk1=pk1Tvk1;ϕk1=yk1Trk1formulae-sequencesubscript𝜃𝑘1subscriptsuperscript𝑝T𝑘1subscript𝑣𝑘1subscriptitalic-ϕ𝑘1subscriptsuperscript𝑦T𝑘1subscript𝑟𝑘1{\theta}_{k-1}={p}^{\mathrm{\scriptstyle T}}_{k-1}{v}_{k-1};\quad{\phi}_{k-1}=% {y}^{\mathrm{\scriptstyle T}}_{k-1}{r}_{k-1}italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ; italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_y start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
ωk1=rk12subscript𝜔𝑘1superscriptnormsubscript𝑟𝑘12{\omega}_{k-1}=\|{r}_{k-1}\|^{2}italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT
βk1=1/(θk1ϕk1ωk1ωk11)subscript𝛽𝑘11subscript𝜃𝑘1subscriptitalic-ϕ𝑘1subscript𝜔𝑘1subscript𝜔𝑘11{\beta}_{k-1}=1\big{/}\big{(}\frac{{\theta}_{k-1}{\phi}_{k-1}}{{\omega}_{k-1}{% \omega}_{k-1}}-1\big{)}italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = 1 / ( divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG - 1 )
γk1=θk1ωk1βk1subscript𝛾𝑘1subscript𝜃𝑘1subscript𝜔𝑘1subscript𝛽𝑘1{\gamma}_{k-1}=\frac{{\theta}_{k-1}}{{\omega}_{k-1}}{\beta}_{k-1}italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
vk=βk1vk1+γk1yk1subscript𝑣𝑘subscript𝛽𝑘1subscript𝑣𝑘1subscript𝛾𝑘1subscript𝑦𝑘1v_{k}={\beta}_{k-1}{v}_{k-1}+{\gamma}_{k-1}{y}_{k-1}italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
pk=βk1pk1+γk1rk1subscript𝑝𝑘subscript𝛽𝑘1subscript𝑝𝑘1subscript𝛾𝑘1subscript𝑟𝑘1p_{k}={\beta}_{k-1}{p}_{k-1}+{\gamma}_{k-1}{r}_{k-1}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
xk=xk1+pksubscript𝑥𝑘subscript𝑥𝑘1subscript𝑝𝑘x_{k}={x}_{k-1}+p_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
rk=rk1vksubscript𝑟𝑘subscript𝑟𝑘1subscript𝑣𝑘r_{k}={r}_{k-1}-v_{k}italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
yk=ATrksubscript𝑦𝑘superscript𝐴Tsubscript𝑟𝑘y_{k}=A^{\mathrm{\scriptstyle T}}r_{k}italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
end

As before, ATsuperscript𝐴TA^{\mathrm{\scriptstyle T}}italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT can be replaced by A𝐴Aitalic_A. The memory footprint is low (storing and updating only five vectors), and importantly, the algorithm is very efficient: each iteration needs only one matvec operation, yk=ATrksubscript𝑦𝑘superscript𝐴Tsubscript𝑟𝑘{y}_{k}=A^{\mathrm{\scriptstyle T}}r_{k}italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. Again the method enjoys finite termination. Finally, the residuals generated by this algorithm are equivalent to those from CG [12].

3.1.3 Comparison: Symmetric positive definite

Detailed comparisons of various methods are reported in Section 4 (Numerical Experiments). Here we provide some intuition on the efficacy of the previous algorithms. We include a regular randomized method, where the sketch Skn×rsubscript𝑆𝑘superscript𝑛𝑟S_{k}\in\mathbb{R}^{n\times r}italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n × italic_r end_POSTSUPERSCRIPT is computed as a standard normal random matrix and the update is obtained by explicitly evaluating Eq. 10 with W=I𝑊𝐼W=Iitalic_W = italic_I. The algorithms are applied on a small spd matrix with n=10𝑛10n=10italic_n = 10. The size for the random sketch is r=n/2=5𝑟𝑛25r=n/2=5italic_r = italic_n / 2 = 5, and all methods are initialized with the same zero vector x0=0subscript𝑥00x_{0}=0italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 0. The results are in Table 1. We make a few observations about the table. First note the finite termination property. PLSS with residual sketches has finite termination, because all residuals are orthogonal by construction. The methods converge to the solution in at most n𝑛nitalic_n iterations. One can see this taking effect for k=10=n𝑘10𝑛k=10=nitalic_k = 10 = italic_n, where the residual norms drop rapidly to convergence tolerances. In contrast, the iteration with random normal sketches converges based on a rate and typically converges much slower in practice. Further, the computational costs of the PLSS algorithms are very low because of the short recurrences. On the other hand, the standard Randn algorithm needs to perform updates via the costly formula Eq. 10. Finally, PLSS (B=A𝐵𝐴B=Aitalic_B = italic_A) tends to converge much more rapidly than PLSS (B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT). Since PLSS (B=A𝐵𝐴B=Aitalic_B = italic_A) uses only one matrix-vector multiply per iteration as opposed to three for PLSS (B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT), we view the former as the better of the two.

Table 1: Residual norms of three algorithms for a 10×10101010\times 1010 × 10 spd system.
k𝑘kitalic_k rk2subscriptnormsubscript𝑟𝑘2\|r_{k}\|_{2}∥ italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT
Randn. PLSS (B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT) PLSS (B=A𝐵𝐴B=Aitalic_B = italic_A)
0 4.1653e+04 4.1653e+04 4.1653e+04
1 1.5470e+04 1.3794e+04 6.6381e+03
2 1.0068e+04 1.5185e+04 1.1624e+03
3 6.9911e+03 3.9838e+03 3.2431e+02
4 2.9346e+03 2.6166e+03 7.5577e+01
5 1.8590e+03 1.4479e+03 1.6274e+01
6 1.3115e+03 9.2966e+02 1.7461e+00
7 1.0382e+03 3.0200e+02 2.3732e-01
8 1.0255e+03 9.5402e+01 2.1046e-02
9 7.0308e+02 2.2631e+01 1.5050e-03
10 6.9981e+02 2.2689e-09 3.1511e-16

3.2 Least squares

When problem Eq. 1 is overdetermined with m>n𝑚𝑛m>nitalic_m > italic_n, the system is typically inconsistent. To find the least-squares solution we have to solve ATAx=ATbsuperscript𝐴T𝐴𝑥superscript𝐴T𝑏A^{\mathrm{\scriptstyle T}}Ax=A^{\mathrm{\scriptstyle T}}bitalic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A italic_x = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_b. A simple and often effective approach is to apply Algorithm 2, i.e., PLSS (W=A^𝑊^𝐴W=\widehat{A}italic_W = over^ start_ARG italic_A end_ARG) with A^=ATA^𝐴superscript𝐴T𝐴\widehat{A}=A^{\mathrm{\scriptstyle T}}Aover^ start_ARG italic_A end_ARG = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A and b^=ATb^𝑏superscript𝐴T𝑏\widehat{b}=A^{\mathrm{\scriptstyle T}}bover^ start_ARG italic_b end_ARG = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_b. Recall that Algorithm 2 uses only one matvec with A^^𝐴\widehat{A}over^ start_ARG italic_A end_ARG per iteration, which can be implemented as two products with A𝐴Aitalic_A. In particular, the product A^r^𝐴𝑟\widehat{A}rover^ start_ARG italic_A end_ARG italic_r (for some rn𝑟superscript𝑛r\in\mathbb{R}^{n}italic_r ∈ blackboard_R start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT) is implemented as A^r=AT(Ar)^𝐴𝑟superscript𝐴T𝐴𝑟\widehat{A}r=A^{\mathrm{\scriptstyle T}}(Ar)over^ start_ARG italic_A end_ARG italic_r = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT ( italic_A italic_r ).

3.3 Symmetric indefinite

When B𝐵Bitalic_B is symmetric but indefinite, the block system Eq. 9 still characterizes the critical points of an optimization problem. However, the objective 12pTBp12superscript𝑝T𝐵𝑝\frac{1}{2}p^{\mathrm{\scriptstyle T}}Bpdivide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_B italic_p is not a norm anymore because it can assume negative values. Therefore, the solution to Eq. 9 is typically not the minimizer. (This is good because the minimizer is typically unbounded.) Broadly, pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT in this context is related to a saddle point in a quadratic programming problem. For an example, one can compare the updates generated with an indefinite weighting B𝐵Bitalic_B in Fig. 1. Independent of everything else, as long as the sketch remains full-rank, finite termination is maintained (even with indefinite B𝐵Bitalic_B). Because pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT can’t be interpreted as a minimizer in the indefinite case, we develop the update using an analogy to spd B𝐵Bitalic_B. We view B𝐵Bitalic_B as an implicit preconditioner with the main purpose of simplifying computations. Recall the short recurrence Eq. 14 for the update with residual sketches (independent of the definiteness of B𝐵Bitalic_B). Since

Wyk1=WATrk1=WArk1,𝑊subscript𝑦𝑘1𝑊superscript𝐴Tsubscript𝑟𝑘1𝑊𝐴subscript𝑟𝑘1W{y}_{k-1}=WA^{\mathrm{\scriptstyle T}}{r}_{k-1}=WA{r}_{k-1},italic_W italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_W italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_W italic_A italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ,

a significant simplification occurs when W=A1𝑊superscript𝐴1W=A^{-1}italic_W = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT so that Wyk1=rk1𝑊subscript𝑦𝑘1subscript𝑟𝑘1W{y}_{k-1}={r}_{k-1}italic_W italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT. This means we choose B=A𝐵𝐴B=Aitalic_B = italic_A, even if A𝐴Aitalic_A is indefinite. The result is an algorithm that is computationally equivalent to Algorithm 2. We summarize the method as follows.

Algorithm 3: PLSS (sid B=A𝐵𝐴B=Aitalic_B = italic_A)
Given: r0=bAx0;y0=ATr0formulae-sequencesubscript𝑟0𝑏𝐴subscript𝑥0subscript𝑦0superscript𝐴Tsubscript𝑟0r_{0}=b-Ax_{0};\quad y_{0}=A^{\mathrm{\scriptstyle T}}r_{0}italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT
Apply Algorithm 2

Note that Algorithm 2 (and hence Algorithm 3) does not require any square roots, and thus there is no concern about square roots of negative quantities in the indefinite case causing breakdown. Since ωk1=0subscript𝜔𝑘10\omega_{k-1}=0italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = 0 appears in the denominator, we potentially have to guard for this value becoming too small. However, ωk1=0subscript𝜔𝑘10\omega_{k-1}=0italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = 0 implies rk1=0subscript𝑟𝑘10{r}_{k-1}=0italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = 0 and therefore this quantity is small only when the method has converged. Further, the denominator in βk1subscript𝛽𝑘1\beta_{k-1}italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT must be guarded from becoming zero. With W=A1𝑊superscript𝐴1W=A^{-1}italic_W = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT in βk1subscript𝛽𝑘1\beta_{k-1}italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT from Algorithm 2 (and the notation Eq. 16) we see that

βk1=1θk1ϕk1ωk1ωk11=1(pk1TApk1)(rk1TArk1)rk141.subscript𝛽𝑘11subscript𝜃𝑘1subscriptitalic-ϕ𝑘1subscript𝜔𝑘1subscript𝜔𝑘111subscriptsuperscript𝑝T𝑘1𝐴subscript𝑝𝑘1subscriptsuperscript𝑟T𝑘1𝐴subscript𝑟𝑘1superscriptnormsubscript𝑟𝑘141\beta_{k-1}=\frac{1}{\frac{{\theta}_{k-1}{\phi}_{k-1}}{{\omega}_{k-1}{\omega}_% {k-1}}-1}=\frac{1}{\frac{({p}^{\mathrm{\scriptstyle T}}_{k-1}A{p}_{k-1})({r}^{% \mathrm{\scriptstyle T}}_{k-1}A{r}_{k-1})}{\|{r}_{k-1}\|^{4}}-1}.italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG - 1 end_ARG = divide start_ARG 1 end_ARG start_ARG divide start_ARG ( italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_A italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) ( italic_r start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_A italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) end_ARG start_ARG ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT end_ARG - 1 end_ARG .

The denominator is zero if (pk1TApk1)(rk1TArk1)=rk14subscriptsuperscript𝑝T𝑘1𝐴subscript𝑝𝑘1subscriptsuperscript𝑟T𝑘1𝐴subscript𝑟𝑘1superscriptnormsubscript𝑟𝑘14({p}^{\mathrm{\scriptstyle T}}_{k-1}A{p}_{k-1})({r}^{\mathrm{\scriptstyle T}}_% {k-1}A{r}_{k-1})=\|{r}_{k-1}\|^{4}( italic_p start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_A italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) ( italic_r start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_A italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) = ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT.

A possible remedy is to restart the method from xk1subscript𝑥𝑘1{x}_{k-1}italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT should this condition arise. (In the numerical experiments we don’t observe breakdowns from this condition.) Algorithm 3 is efficient because it uses only one matvec per iteration. It is equivalent to CG but applicable to symmetric indefinite systems, whereas CG is typically designed for spd matrices. In Section 4.1 (Experiment I: Indefinite Systems) we observe that PLSS (B=A𝐵𝐴B=Aitalic_B = italic_A) (Algorithm 3) is robust and fast (see Tables 2 and 3).

3.4 General square systems

When A𝐴Aitalic_A is square, we can’t directly apply the strategies for B𝐵Bitalic_B from Sections 3.1 and 3.3. Specifically, it is not possible to choose B=A𝐵𝐴B=Aitalic_B = italic_A or B=A1𝐵superscript𝐴1B=A^{-1}italic_B = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT as before because A𝐴Aitalic_A is not necessarily symmetric. It is fine to set B=I𝐵𝐼B=Iitalic_B = italic_I, which results in the original PLSS algorithm. Another approach is to consider the symmetric weighting B=ATA𝐵superscript𝐴T𝐴B=A^{\mathrm{\scriptstyle T}}Aitalic_B = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A. Substituting W=B1𝑊superscript𝐵1W=B^{-1}italic_W = italic_B start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT in the update Eq. 8 (with residual sketches), we obtain

pk=A1Sk(SkTSk)1Skrk1=A1rk1.subscript𝑝𝑘superscript𝐴1subscript𝑆𝑘superscriptsubscriptsuperscript𝑆T𝑘subscript𝑆𝑘1subscript𝑆𝑘subscript𝑟𝑘1superscript𝐴1subscript𝑟𝑘1{p}_{k}=A^{-1}{S}_{k}({S}^{\mathrm{\scriptstyle T}}_{k}{S}_{k})^{-1}{S}_{k}{r}% _{k-1}=A^{-1}{r}_{k-1}.italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_S start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_S start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT .

The main difficulty is evaluating A1rk1superscript𝐴1subscript𝑟𝑘1A^{-1}{r}_{k-1}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT. In fact, if A1r0superscript𝐴1subscript𝑟0A^{-1}r_{0}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT could be computed exactly the method based on this choice for B𝐵Bitalic_B would converge in one iteration:

p1=A1r0=A1bx0, and x1=x0+p1=A1b.formulae-sequencesubscript𝑝1superscript𝐴1subscript𝑟0superscript𝐴1𝑏subscript𝑥0 and subscript𝑥1subscript𝑥0subscript𝑝1superscript𝐴1𝑏p_{1}=A^{-1}r_{0}=A^{-1}b-x_{0},\quad\text{ and }\quad x_{1}=x_{0}+p_{1}=A^{-1% }b.italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_b - italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , and italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_b .

However, A1rk1superscript𝐴1subscript𝑟𝑘1A^{-1}{r}_{k-1}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT is typically not computed exactly. A possibility is to apply PLSS (B=I𝐵𝐼B=Iitalic_B = italic_I) as a subproblem solver inside an outer loop in order to evaluate A1rk1superscript𝐴1subscript𝑟𝑘1A^{-1}{r}_{k-1}italic_A start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT approximately. This approach has two nested loops and we don’t want the inner loop to take many iterations. Therefore, we include a second stop** tolerance ϵk=rk/ksubscriptitalic-ϵ𝑘normsubscript𝑟𝑘𝑘\epsilon_{k}=\|r_{k}\|\big{/}kitalic_ϵ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = ∥ italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∥ / italic_k to terminate the inner loop early. The resulting Algorithm 4 uses PLSS (B=I𝐵𝐼B=Iitalic_B = italic_I) represented as the function in Fig. 2 with its own stop** tolerance ϵ0subscriptitalic-ϵ0\epsilon_{0}italic_ϵ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT.

function plss(x0,b,A,ϵsubscript𝑥0𝑏𝐴italic-ϵx_{0},b,A,\epsilonitalic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_b , italic_A , italic_ϵ)
r0=bAx0;y0=ATr0;formulae-sequencesubscript𝑟0𝑏𝐴subscript𝑥0subscript𝑦0superscript𝐴Tsubscript𝑟0r_{0}=b-Ax_{0};\quad y_{0}=A^{\mathrm{\scriptstyle T}}r_{0};italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ;
ω0=r02;ϕ0=y02;p1=(ω0/ϕ0)y0;v1=Ap1formulae-sequencesubscript𝜔0superscriptnormsubscript𝑟02formulae-sequencesubscriptitalic-ϕ0superscriptnormsubscript𝑦02formulae-sequencesubscript𝑝1subscript𝜔0subscriptitalic-ϕ0subscript𝑦0subscript𝑣1𝐴subscript𝑝1\omega_{0}=\|r_{0}\|^{2};\quad\phi_{0}=\|y_{0}\|^{2};\quad p_{1}=(\omega_{0}/% \phi_{0})y_{0};\quad v_{1}=Ap_{1}italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = ∥ italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ; italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = ∥ italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ; italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT / italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT
x1=x0+p1;r1=r0v1;y1=ATr1;k=2;formulae-sequencesubscript𝑥1subscript𝑥0subscript𝑝1formulae-sequencesubscript𝑟1subscript𝑟0subscript𝑣1formulae-sequencesubscript𝑦1superscript𝐴Tsubscript𝑟1𝑘2x_{1}=x_{0}+p_{1};\quad r_{1}=r_{0}-v_{1};\quad y_{1}=A^{\mathrm{\scriptstyle T% }}r_{1};k=2;italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_k = 2 ;
while rk1>ϵnormsubscript𝑟𝑘1italic-ϵ\|{r}_{k-1}\|>\epsilon∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ > italic_ϵ
θk1=pk12;ϕk1=yk12formulae-sequencesubscript𝜃𝑘1superscriptnormsubscript𝑝𝑘12subscriptitalic-ϕ𝑘1superscriptnormsubscript𝑦𝑘12{\theta}_{k-1}=\|{p}_{k-1}\|^{2};\quad{\phi}_{k-1}=\|{y}_{k-1}\|^{2}italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = ∥ italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ; italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = ∥ italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT
ωk1=rk12subscript𝜔𝑘1superscriptnormsubscript𝑟𝑘12{\omega}_{k-1}=\|{r}_{k-1}\|^{2}italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT
βk1=1/(θk1ϕk1ωk1ωk11)subscript𝛽𝑘11subscript𝜃𝑘1subscriptitalic-ϕ𝑘1subscript𝜔𝑘1subscript𝜔𝑘11{\beta}_{k-1}=1\big{/}\big{(}\frac{{\theta}_{k-1}{\phi}_{k-1}}{{\omega}_{k-1}{% \omega}_{k-1}}-1\big{)}italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = 1 / ( divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG - 1 )
γk1=θk1ωk1βk1subscript𝛾𝑘1subscript𝜃𝑘1subscript𝜔𝑘1subscript𝛽𝑘1{\gamma}_{k-1}=\frac{{\theta}_{k-1}}{{\omega}_{k-1}}{\beta}_{k-1}italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = divide start_ARG italic_θ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
pk=βk1pk1+γk1rk1subscript𝑝𝑘subscript𝛽𝑘1subscript𝑝𝑘1subscript𝛾𝑘1subscript𝑟𝑘1p_{k}={\beta}_{k-1}{p}_{k-1}+{\gamma}_{k-1}{r}_{k-1}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_β start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
vk=Apksubscript𝑣𝑘𝐴subscript𝑝𝑘v_{k}=Ap_{k}italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
xk=xk1+pksubscript𝑥𝑘subscript𝑥𝑘1subscript𝑝𝑘x_{k}={x}_{k-1}+p_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
rk=rk1vksubscript𝑟𝑘subscript𝑟𝑘1subscript𝑣𝑘r_{k}={r}_{k-1}-v_{k}italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
yk=ATrksubscript𝑦𝑘superscript𝐴Tsubscript𝑟𝑘y_{k}=A^{\mathrm{\scriptstyle T}}r_{k}italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
k=k+1𝑘𝑘1k=k+1italic_k = italic_k + 1
end
Figure 2: Function plss.
Algorithm 4: PLSS (general B=ATA𝐵superscript𝐴T𝐴B=A^{\mathrm{\scriptstyle T}}Aitalic_B = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A)
Given: r0=bAx0;y0=ATr0;ϵ0>0formulae-sequencesubscript𝑟0𝑏𝐴subscript𝑥0formulae-sequencesubscript𝑦0superscript𝐴Tsubscript𝑟0subscriptitalic-ϵ00r_{0}=b-Ax_{0};\quad y_{0}=A^{\mathrm{\scriptstyle T}}r_{0};\quad\epsilon_{0}>0italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ; italic_ϵ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT > 0
Solve Ap1=r0𝐴subscript𝑝1subscript𝑟0Ap_{1}=r_{0}italic_A italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT using plss(0,b,A,ϵ00𝑏𝐴subscriptitalic-ϵ00,b,A,\epsilon_{0}0 , italic_b , italic_A , italic_ϵ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT)
x1=x0+p1subscript𝑥1subscript𝑥0subscript𝑝1x_{1}=x_{0}+p_{1}italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT
for k=2,3,,kmax𝑘23subscript𝑘maxk=2,3,\dots,k_{\text{max}}italic_k = 2 , 3 , … , italic_k start_POSTSUBSCRIPT max end_POSTSUBSCRIPT
rk1=bAxk1subscript𝑟𝑘1𝑏𝐴subscript𝑥𝑘1{r}_{k-1}=b-A{x}_{k-1}italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT = italic_b - italic_A italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT
Solve Apk=rk1𝐴subscript𝑝𝑘subscript𝑟𝑘1Ap_{k}={r}_{k-1}italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT using plss(810pk1,rk1,A,rk1k1810subscript𝑝𝑘1subscript𝑟𝑘1𝐴normsubscript𝑟𝑘1𝑘1\frac{8}{10}{p}_{k-1},{r}_{k-1},A,\frac{\|{r}_{k-1}\|}{k-1}divide start_ARG 8 end_ARG start_ARG 10 end_ARG italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT , italic_A , divide start_ARG ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ end_ARG start_ARG italic_k - 1 end_ARG) in Fig. 2
xk=xk1+pksubscript𝑥𝑘subscript𝑥𝑘1subscript𝑝𝑘x_{k}={x}_{k-1}+p_{k}italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
end

A few remarks about Algorithm 4. First, inside the loop, plss is called with an initial guess of 810pk1810subscript𝑝𝑘1\frac{8}{10}{p}_{k-1}divide start_ARG 8 end_ARG start_ARG 10 end_ARG italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT. This is not essential, and the zero starting point is a valid option. However, when the residuals don’t change rapidly for every iteration it can be advantageous to use information from the previous solution. The tolerances ϵk=rk1k1subscriptitalic-ϵ𝑘normsubscript𝑟𝑘1𝑘1\epsilon_{k}=\frac{\|{r}_{k-1}\|}{k-1}italic_ϵ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = divide start_ARG ∥ italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∥ end_ARG start_ARG italic_k - 1 end_ARG are only one implementation that force increasingly accurate solutions. Other sequences are possible. Further, if PLSS (B=I𝐵𝐼B=Iitalic_B = italic_I) could solve the initial system Ap1=r0𝐴subscript𝑝1subscript𝑟0Ap_{1}=r_{0}italic_A italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT to full accuracy, Algorithm 4 would only need one iteration. However, as this is unrealistic, the algorithm will typically use multiple iterations and its convergence depends on how well the subproblem solver approximates Apk=rk1𝐴subscript𝑝𝑘subscript𝑟𝑘1Ap_{k}={r}_{k-1}italic_A italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT. When matvec products with A𝐴Aitalic_A can be computed cheaply, the overall approach in Algorithm 4 can be useful. Numerical experiments for general square A𝐴Aitalic_A are in Section 4.2.

4 Numerical experiments

Our algorithms are implemented in MATLAB and PYTHON 3.9. The numerical experiments are carried out in MATLAB 2023a on a Linux machine with Intel 13th Gen Intel Core i9-13900KS (24 cores) processor and 128 GB RAM and a laptop with Apple M2 Max chip. For comparisons, we use randomized algorithms of [11], the Algorithms from [6, github.com/johannesbrust/PLSS], SYMMLQ [15] and GMRES [18]. All codes are available in the public domain [3]. The stop** criterion is either Axkb2/b2ϵsubscriptnorm𝐴subscript𝑥𝑘𝑏2subscriptnorm𝑏2italic-ϵ\|{A}{x}_{k}-b\|_{2}/\|b\|_{2}\leq\epsilon∥ italic_A italic_x start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - italic_b ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT / ∥ italic_b ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≤ italic_ϵ. Unless otherwise specified, the iteration limit is n𝑛nitalic_n. We label the PLSS Algorithm with B=I𝐵𝐼{B}={I}italic_B = italic_I and B=diag(a1,,an)𝐵diagnormsubscript𝑎1normsubscript𝑎𝑛B=\text{diag}(\|a_{1}\|,\dots,\|a_{n}\|)italic_B = diag ( ∥ italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∥ , … , ∥ italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∥ ) as PLSS (B=I)𝐵𝐼(B=I)( italic_B = italic_I ) and PLSS (B=Diag.)𝐵Diag.(B=\text{Diag.})( italic_B = Diag. ) respectively.

4.1 Experiment I

The problems in this experiment are large square consistent symmetric systems. However, the matrices may be indefinite and/or rank-deficient. For example, problem bcsstm36 is neither positive definite nor full-rank. The convergence criterion is ϵ=1×104italic-ϵ1superscript104\epsilon=1\times 10^{-4}italic_ϵ = 1 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT and the iterations limit is set to maxit=round(1110n)maxitround1110𝑛\textnormal{maxit}=\textnormal{round}(\frac{11}{10}n)maxit = round ( divide start_ARG 11 end_ARG start_ARG 10 end_ARG italic_n ). Table 2 gives a detailed comparison of the solver outcomes. We note that PLSS with weighting B=A𝐵𝐴B=Aitalic_B = italic_A and SYMMLQ solve all but one problem to the specified tolerance. In terms of computational time, PLSS with the new weighting is the fastest overall. Fig. 3 summarizes the computational times of the four methods using performance profiles [9]. These profiles allow for a direct comparison of different solver based on computational times or iterations. Specifically, the performance metric ρs(τ)subscript𝜌𝑠𝜏\rho_{s}(\tau)italic_ρ start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( italic_τ ) on npsubscript𝑛𝑝n_{p}italic_n start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT test problems is given by

ρs(τ)=card{p:πp,sτ}npandπp,s=tp,s min tp,i1iS,is,formulae-sequencesubscript𝜌𝑠𝜏cardconditional-set𝑝subscript𝜋𝑝𝑠𝜏subscript𝑛𝑝andsubscript𝜋𝑝𝑠subscript𝑡𝑝𝑠formulae-sequence1𝑖𝑆𝑖𝑠 min subscript𝑡𝑝𝑖\rho_{s}(\tau)=\frac{\text{card}\left\{p:\pi_{p,s}\leq\tau\right\}}{n_{p}}% \quad\text{and}\quad\pi_{p,s}=\frac{t_{p,s}}{\underset{1\leq i\leq S,\ i\neq s% }{\text{ min }t_{p,i}}},italic_ρ start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( italic_τ ) = divide start_ARG card { italic_p : italic_π start_POSTSUBSCRIPT italic_p , italic_s end_POSTSUBSCRIPT ≤ italic_τ } end_ARG start_ARG italic_n start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_ARG and italic_π start_POSTSUBSCRIPT italic_p , italic_s end_POSTSUBSCRIPT = divide start_ARG italic_t start_POSTSUBSCRIPT italic_p , italic_s end_POSTSUBSCRIPT end_ARG start_ARG start_UNDERACCENT 1 ≤ italic_i ≤ italic_S , italic_i ≠ italic_s end_UNDERACCENT start_ARG min italic_t start_POSTSUBSCRIPT italic_p , italic_i end_POSTSUBSCRIPT end_ARG end_ARG ,

where tp,ssubscript𝑡𝑝𝑠t_{p,s}italic_t start_POSTSUBSCRIPT italic_p , italic_s end_POSTSUBSCRIPT is the “output” (i.e., iterations or time) of “solver” s𝑠sitalic_s on problem p𝑝pitalic_p, and S𝑆Sitalic_S denotes the total number of solvers for a given comparison. This metric measures the proportion of how close a given solver is to the best result.

Table 2: Experiment I compares 4 solvers on 32 linear systems from the SuiteSparse Matrix Collection [8] with stop** tolerance ϵ=104italic-ϵsuperscript104\epsilon=10^{-4}italic_ϵ = 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT and iteration limit 1110n1110𝑛\frac{11}{10}ndivide start_ARG 11 end_ARG start_ARG 10 end_ARG italic_n. In column 3, “Dty” is the density of a particular matrix A𝐴Aitalic_A calculated as Dty=nnz(A)nnDtynnz𝐴𝑛𝑛\text{Dty}=\frac{\text{nnz}(A)}{n\cdot n}Dty = divide start_ARG nnz ( italic_A ) end_ARG start_ARG italic_n ⋅ italic_n end_ARG. Entries with superscript denote problems for which the solver did not converge to the specified tolerance. Bold entries mark the fastest times, while second fastest times are italicized.

Problem n𝑛nitalic_n Dty PLSS (B=I𝐵𝐼B=Iitalic_B = italic_I) PLSS (B=Diag.𝐵Diag.B=\text{Diag.}italic_B = Diag.) PLSS (B=A𝐵𝐴B=Aitalic_B = italic_A) SYMMLQ [15] It Sec Res It Sec Res It Sec Res It Sec Res bcspwr10 5300 0.0008 1378 0.17 0.0001 529 0.076 0.0001 1904 0.06 0.0001 1734 0.16 9e-05 bcsstk17 10974 0.004 12071superscript12071\textnormal{12071}^{\dagger}12071 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5.1superscript5.1\textnormal{5.1}^{\dagger}5.1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.03superscript0.03\textnormal{0.03}^{\dagger}0.03 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 12071superscript12071\textnormal{12071}^{\dagger}12071 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5.4superscript5.4\textnormal{5.4}^{\dagger}5.4 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.03superscript0.03\textnormal{0.03}^{\dagger}0.03 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1984 0.36 9e-05 1926 0.72 9e-05 bcsstk18 11948 0.001 13143superscript13143\textnormal{13143}^{\dagger}13143 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 4.4superscript4.4\textnormal{4.4}^{\dagger}4.4 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.003superscript0.003\textnormal{0.003}^{\dagger}0.003 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 13143superscript13143\textnormal{13143}^{\dagger}13143 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 4.5superscript4.5\textnormal{4.5}^{\dagger}4.5 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.003superscript0.003\textnormal{0.003}^{\dagger}0.003 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 603 0.096 9e-05 593 0.16 0.0001 bcsstk25 15439 0.001 16983superscript16983\textnormal{16983}^{\dagger}16983 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 7.1superscript7.1\textnormal{7.1}^{\dagger}7.1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0005superscript0.0005\textnormal{0.0005}^{\dagger}0.0005 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 16983superscript16983\textnormal{16983}^{\dagger}16983 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 7.5superscript7.5\textnormal{7.5}^{\dagger}7.5 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0005superscript0.0005\textnormal{0.0005}^{\dagger}0.0005 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 254 0.06 0.0001 247 0.1 9e-05 bcsstk29 13992 0.003 1372 0.82 0.0001 193 0.12 0.0001 1358 0.37 0.0001 1245 0.65 0.0001 bcsstk30 28924 0.002 1934 3.6 0.0001 194 0.36 9e-05 1859 1 0.0001 1524 2.2 0.0001 bcsstk31 35588 0.0009 2408 2.7 0.0001 236 0.28 0.0001 2370 0.94 0.0001 2007 2 0.0001 bcsstk32 44609 0.001 2102 3.8 0.0001 231 0.43 9e-05 2206 1.2 0.0001 1818 2.7 0.0001 bcsstk33 8738 0.008 1127 0.55 0.0001 456 0.22 9e-05 1199 0.19 9e-05 1097 0.44 0.0001 bcsstm25 15439 6e-05 9844 2.1 9e-05 1161 0.29 6e-05 162 0.029 6e-05 157 0.04 7e-05 bcsstk35 30237 0.002 33261superscript33261\textnormal{33261}^{\dagger}33261 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 45superscript45\textnormal{45}^{\dagger}45 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.005superscript0.005\textnormal{0.005}^{\dagger}0.005 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 33261superscript33261\textnormal{33261}^{\dagger}33261 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 49superscript49\textnormal{49}^{\dagger}49 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.003superscript0.003\textnormal{0.003}^{\dagger}0.003 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 674 0.36 0.0001 660 0.83 0.0001 bcsstk36 23052 0.002 25357superscript25357\textnormal{25357}^{\dagger}25357 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 27superscript27\textnormal{27}^{\dagger}27 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.02superscript0.02\textnormal{0.02}^{\dagger}0.02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 25357superscript25357\textnormal{25357}^{\dagger}25357 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 28superscript28\textnormal{28}^{\dagger}28 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.02superscript0.02\textnormal{0.02}^{\dagger}0.02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1800 0.8 0.0001 1735 1.7 0.0001 bcsstk37 25503 0.002 28053superscript28053\textnormal{28053}^{\dagger}28053 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 31superscript31\textnormal{31}^{\dagger}31 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.04superscript0.04\textnormal{0.04}^{\dagger}0.04 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 28053superscript28053\textnormal{28053}^{\dagger}28053 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 32superscript32\textnormal{32}^{\dagger}32 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.03superscript0.03\textnormal{0.03}^{\dagger}0.03 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1639 0.78 0.0001 1623 1.6 0.0001 bcsstk38 8032 0.006 8835superscript8835\textnormal{8835}^{\dagger}8835 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 3.1superscript3.1\textnormal{3.1}^{\dagger}3.1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 8835superscript8835\textnormal{8835}^{\dagger}8835 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 3.1superscript3.1\textnormal{3.1}^{\dagger}3.1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 58 0.0085 9e-05 55 0.015 0.0001 bcsstm35 30237 2e-05 5783 2.7 9e-05 5703 3.2 0.0001 89 0.033 9e-05 223 0.11 6e-06 bcsstm36 23052 0.0006 25357superscript25357\textnormal{25357}^{\dagger}25357 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 15superscript15\textnormal{15}^{\dagger}15 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 25357superscript25357\textnormal{25357}^{\dagger}25357 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 17superscript17\textnormal{17}^{\dagger}17 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 138 0.06 9e-05 137 0.094 9e-05 bcsstm37 25503 2e-05 81 0.034 0.0001 81 0.039 0.0001 9 0.0036 8e-05 74 0.036 5e-07 bcsstm38 8032 0.0002 1187 0.17 9e-05 673 0.094 0.0001 24 0.0015 9e-05 22 0.0029 9e-05 bcsstm39 46772 2e-05 5023 2.7 0.0001 290 0.2 9e-05 128 0.052 0.0001 137 0.08 0.0001 crystk02 13965 0.005 0 0.00084 6e-11 0 0.0024 6e-11 0 0.0027 6e-11 370 0.25 6e-15 crystk03 24696 0.003 0 0.0013 4e-11 0 0.0048 4e-11 0 0.0047 4e-11 389 0.52 4e-15 crystm02 13965 0.002 0 0.00035 1e-10 0 0.001 1e-10 0 0.0029 1e-10 35 0.018 1e-14 crystm03 24696 0.001 0 0.00044 1e-10 0 0.0017 1e-10 0 0.0025 1e-10 35 0.029 1e-14 ct20stif 52329 0.0009 57562superscript57562\textnormal{57562}^{\dagger}57562 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1.4e+02superscript1.4e+02\textnormal{1.4e+02}^{\dagger}1.4e+02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 57562superscript57562\textnormal{57562}^{\dagger}57562 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1.5e+02superscript1.5e+02\textnormal{1.5e+02}^{\dagger}1.5e+02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 338 0.25 0.0001 281 0.59 0.0001 msc10848 10848 0.01 55 0.072 7e-05 54 0.069 8e-05 28 0.011 6e-05 25 0.021 8e-05 msc23052 23052 0.002 25357superscript25357\textnormal{25357}^{\dagger}25357 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 31superscript31\textnormal{31}^{\dagger}31 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.02superscript0.02\textnormal{0.02}^{\dagger}0.02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 25357superscript25357\textnormal{25357}^{\dagger}25357 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 32superscript32\textnormal{32}^{\dagger}32 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.02superscript0.02\textnormal{0.02}^{\dagger}0.02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1838 0.86 9e-05 1724 1.9 0.0001 pcrystk02 13965 0.005 907 0.69 0.0001 362 0.27 0.0001 900 0.21 0.0001 742 0.44 0.0001 pcrystk03 24696 0.003 707 1.2 0.0001 262 0.45 9e-05 678 0.36 9e-05 560 0.81 0.0001 pct20stif 52329 0.001 2511 6.3 0.0001 476 1.3 0.0001 2301 1.7 0.0001 1816 3.9 0.0001 mplate 5962 0.004 6558superscript6558\textnormal{6558}^{\dagger}6558 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 6.5superscript6.5\textnormal{6.5}^{\dagger}6.5 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.1superscript0.1\textnormal{0.1}^{\dagger}0.1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 6558superscript6558\textnormal{6558}^{\dagger}6558 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 7.3superscript7.3\textnormal{7.3}^{\dagger}7.3 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.2superscript0.2\textnormal{0.2}^{\dagger}0.2 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 6558superscript6558\textnormal{6558}^{\dagger}6558 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 2.9superscript2.9\textnormal{{2.9}}^{\dagger}2.9 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.06superscript0.06\textnormal{0.06}^{\dagger}0.06 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5712superscript5712\textnormal{5712}^{\dagger}5712 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5.2superscript5.2\textnormal{\emph{5.2}}^{\dagger}5.2 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5e+02superscript5e+02\textnormal{5e+02}^{\dagger}5e+02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT vibrobox 12328 0.002 13561superscript13561\textnormal{13561}^{\dagger}13561 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5.4superscript5.4\textnormal{5.4}^{\dagger}5.4 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.001superscript0.001\textnormal{0.001}^{\dagger}0.001 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 13561superscript13561\textnormal{13561}^{\dagger}13561 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5.6superscript5.6\textnormal{5.6}^{\dagger}5.6 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.001superscript0.001\textnormal{0.001}^{\dagger}0.001 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 268 0.053 9e-05 263 0.089 9e-05 ex15 6867 0.002 7554superscript7554\textnormal{7554}^{\dagger}7554 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1.3superscript1.3\textnormal{1.3}^{\dagger}1.3 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.007superscript0.007\textnormal{0.007}^{\dagger}0.007 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 7554superscript7554\textnormal{7554}^{\dagger}7554 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1.4superscript1.4\textnormal{1.4}^{\dagger}1.4 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.006superscript0.006\textnormal{0.006}^{\dagger}0.006 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 627 0.057 0.0001 619 0.08 0.0001

Refer to caption
Figure 3: Computational times of the four solvers on 32 square symmetric indefinite matrices from SuiteSparse.

4.2 Experiment II

The problems in this experiment medium size are general square systems. The convergence tolerance is ϵ=1×104italic-ϵ1superscript104\epsilon=1\times 10^{-4}italic_ϵ = 1 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT and the iteration limit is maxit=nmaxit𝑛\textnormal{maxit}=nmaxit = italic_n. Table 3 gives a detailed comparison of the solver outcomes. PLSS with weighting B=ATA𝐵superscript𝐴T𝐴B=A^{\mathrm{\scriptstyle T}}Aitalic_B = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A solves the most problems to the specified tolerance. For reference we include GMRES [18] with restarts every 500 iterations. Figure 4 summarizes the computational times of the four methods.

Table 3: Experiment II compares 4 solvers on 19 general square systems from the SuiteSparse Matrix Collection [8] with stop** tolerance ϵ=104italic-ϵsuperscript104\epsilon=10^{-4}italic_ϵ = 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT and iteration limit n𝑛nitalic_n. In column 3, “Dty” is the density of a particular matrix A𝐴Aitalic_A calculated as Dty=nnz(A)nnDtynnz𝐴𝑛𝑛\text{Dty}=\frac{\text{nnz}(A)}{n\cdot n}Dty = divide start_ARG nnz ( italic_A ) end_ARG start_ARG italic_n ⋅ italic_n end_ARG. Entries with superscript denote problems for which the solver did not converge to the specified tolerance. Bold entries mark the fastest times, while second fastest times are italicized.

Problem n𝑛nitalic_n Dty PLSS (B=I𝐵𝐼B=Iitalic_B = italic_I) PLSS (B=Diag.𝐵Diag.B=\text{Diag.}italic_B = Diag.) PLSS (B=ATA𝐵superscript𝐴T𝐴B=A^{\mathrm{\scriptstyle T}}Aitalic_B = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A) GMRES [18] It Sec Res It Sec Res It Sec Res It Sec Res gemat11 4929 0.001 4929superscript4929\textnormal{4929}^{\dagger}4929 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.7superscript0.7\textnormal{{0.7}}^{\dagger}0.7 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.007superscript0.007\textnormal{0.007}^{\dagger}0.007 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 4929superscript4929\textnormal{4929}^{\dagger}4929 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.75superscript0.75\textnormal{\emph{0.75}}^{\dagger}0.75 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.003superscript0.003\textnormal{0.003}^{\dagger}0.003 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 44 22 9e-05 5500superscript5500\textnormal{5500}^{\dagger}5500 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 55superscript55\textnormal{55}^{\dagger}55 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.3superscript0.3\textnormal{0.3}^{\dagger}0.3 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT gemat12 4929 0.001 4929superscript4929\textnormal{4929}^{\dagger}4929 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.68superscript0.68\textnormal{{0.68}}^{\dagger}0.68 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.002superscript0.002\textnormal{0.002}^{\dagger}0.002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 4929superscript4929\textnormal{4929}^{\dagger}4929 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.74superscript0.74\textnormal{\emph{0.74}}^{\dagger}0.74 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0007superscript0.0007\textnormal{0.0007}^{\dagger}0.0007 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 23 9.5 9e-05 5500superscript5500\textnormal{5500}^{\dagger}5500 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 55superscript55\textnormal{55}^{\dagger}55 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.05superscript0.05\textnormal{0.05}^{\dagger}0.05 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT gre_1107 1107 0.005 795 0.011 9e-05 770 0.012 9e-05 7 0.023 2e-05 1500superscript1500\textnormal{1500}^{\dagger}1500 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.46superscript0.46\textnormal{0.46}^{\dagger}0.46 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.02superscript0.02\textnormal{0.02}^{\dagger}0.02 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT lns_3937 3937 0.002 3937superscript3937\textnormal{3937}^{\dagger}3937 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.19superscript0.19\textnormal{{0.19}}^{\dagger}0.19 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.04superscript0.04\textnormal{0.04}^{\dagger}0.04 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 3937superscript3937\textnormal{3937}^{\dagger}3937 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.22superscript0.22\textnormal{\emph{0.22}}^{\dagger}0.22 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.05superscript0.05\textnormal{0.05}^{\dagger}0.05 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 225 37 0.0001 4500superscript4500\textnormal{4500}^{\dagger}4500 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 11superscript11\textnormal{11}^{\dagger}11 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.07superscript0.07\textnormal{0.07}^{\dagger}0.07 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT lnsp3937 3937 0.002 3937superscript3937\textnormal{3937}^{\dagger}3937 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.2superscript0.2\textnormal{{0.2}}^{\dagger}0.2 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.05superscript0.05\textnormal{0.05}^{\dagger}0.05 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 3937superscript3937\textnormal{3937}^{\dagger}3937 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.23superscript0.23\textnormal{\emph{0.23}}^{\dagger}0.23 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.04superscript0.04\textnormal{0.04}^{\dagger}0.04 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 3937superscript3937\textnormal{3937}^{\dagger}3937 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 89superscript89\textnormal{89}^{\dagger}89 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.007superscript0.007\textnormal{0.007}^{\dagger}0.007 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 4500superscript4500\textnormal{4500}^{\dagger}4500 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 12superscript12\textnormal{12}^{\dagger}12 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.07superscript0.07\textnormal{0.07}^{\dagger}0.07 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT mahindas 1258 0.005 3 0.0079 8e-05 3 0.013 2e-05 2 0.014 4e-05 517 0.009 0.0001 nnc1374 1374 0.005 1374superscript1374\textnormal{1374}^{\dagger}1374 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.024superscript0.024\textnormal{\emph{0.024}}^{\dagger}0.024 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1107 0.021 0.0001 11 0.11 9e-05 959 0.24 0.0001 orani678 2529 0.01 1864 0.19 9e-05 778 0.084 0.0001 10 0.48 1e-06 3000superscript3000\textnormal{3000}^{\dagger}3000 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 2.5superscript2.5\textnormal{2.5}^{\dagger}2.5 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.4superscript0.4\textnormal{0.4}^{\dagger}0.4 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT orsirr_1 1030 0.006 1030superscript1030\textnormal{1030}^{\dagger}1030 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.012superscript0.012\textnormal{{0.012}}^{\dagger}0.012 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.01superscript0.01\textnormal{0.01}^{\dagger}0.01 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1030superscript1030\textnormal{1030}^{\dagger}1030 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.014superscript0.014\textnormal{\emph{0.014}}^{\dagger}0.014 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.009superscript0.009\textnormal{0.009}^{\dagger}0.009 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 96 0.99 4e-05 674 0.029 9e-05 orsreg_1 2205 0.003 1977 0.045 9e-05 2205superscript2205\textnormal{2205}^{\dagger}2205 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.056superscript0.056\textnormal{0.056}^{\dagger}0.056 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0001superscript0.0001\textnormal{0.0001}^{\dagger}0.0001 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 7 0.15 5e-06 541 0.005 0.0001 plsk1919 1919 0.003 1919superscript1919\textnormal{1919}^{\dagger}1919 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.035superscript0.035\textnormal{{0.035}}^{\dagger}0.035 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0003superscript0.0003\textnormal{0.0003}^{\dagger}0.0003 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1919superscript1919\textnormal{1919}^{\dagger}1919 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.039superscript0.039\textnormal{\emph{0.039}}^{\dagger}0.039 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0006superscript0.0006\textnormal{0.0006}^{\dagger}0.0006 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 10 0.12 7e-05 2500superscript2500\textnormal{2500}^{\dagger}2500 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1.5superscript1.5\textnormal{1.5}^{\dagger}1.5 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0002superscript0.0002\textnormal{0.0002}^{\dagger}0.0002 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT pores_2 1224 0.006 1224superscript1224\textnormal{1224}^{\dagger}1224 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.019superscript0.019\textnormal{\emph{0.019}}^{\dagger}0.019 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0004superscript0.0004\textnormal{0.0004}^{\dagger}0.0004 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1224superscript1224\textnormal{1224}^{\dagger}1224 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.022superscript0.022\textnormal{0.022}^{\dagger}0.022 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0001superscript0.0001\textnormal{0.0001}^{\dagger}0.0001 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 8 0.064 8e-05 552 0.0044 0.0001 psmigr_1 3140 0.06 3140superscript3140\textnormal{3140}^{\dagger}3140 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1.3superscript1.3\textnormal{1.3}^{\dagger}1.3 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.001superscript0.001\textnormal{0.001}^{\dagger}0.001 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 90 0.04 0.0001 16 13 9e-05 578 0.053 0.0001 psmigr_2 3140 0.05 684 0.28 0.0001 672 0.29 0.0001 8 2.3 3e-06 3500superscript3500\textnormal{3500}^{\dagger}3500 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 8.3superscript8.3\textnormal{8.3}^{\dagger}8.3 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.01superscript0.01\textnormal{0.01}^{\dagger}0.01 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT psmigr_3 3140 0.06 11 0.0052 6e-05 69 0.032 7e-05 5 0.017 8e-06 505 0.0036 7e-05 sherman2 1080 0.02 515 0.013 5e-05 515 0.014 7e-05 9 0.067 2e-05 692 0.038 9e-05 sherman3 5005 0.0008 5005superscript5005\textnormal{5005}^{\dagger}5005 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.67superscript0.67\textnormal{{0.67}}^{\dagger}0.67 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1superscript1\textnormal{1}^{\dagger}1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5005superscript5005\textnormal{5005}^{\dagger}5005 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.71superscript0.71\textnormal{\emph{0.71}}^{\dagger}0.71 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1superscript1\textnormal{1}^{\dagger}1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 5005superscript5005\textnormal{5005}^{\dagger}5005 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 23superscript23\textnormal{23}^{\dagger}23 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1superscript1\textnormal{1}^{\dagger}1 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1128 6 0.0001 sherman4 1104 0.003 867 0.017 0.0001 464 0.017 7e-05 10 0.05 1e-06 585 0.015 9e-05 sherman5 3312 0.002 3312superscript3312\textnormal{3312}^{\dagger}3312 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.14superscript0.14\textnormal{{0.14}}^{\dagger}0.14 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.005superscript0.005\textnormal{0.005}^{\dagger}0.005 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 3312superscript3312\textnormal{3312}^{\dagger}3312 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.15superscript0.15\textnormal{\emph{0.15}}^{\dagger}0.15 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.004superscript0.004\textnormal{0.004}^{\dagger}0.004 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 3312superscript3312\textnormal{3312}^{\dagger}3312 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 94superscript94\textnormal{94}^{\dagger}94 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 0.0003superscript0.0003\textnormal{0.0003}^{\dagger}0.0003 start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT 1122 1.3 0.0001

Refer to caption
Figure 4: Computational times of the four solvers on 19 general square matrices from SuiteSparse.

4.3 Experiment III

This experiment tests Algorithm 4 on a difficult unsymmetric matrix (West0479) [8] for iterative solvers, when no preconditioner is used. The matrix comes from a chemical engineering process via A. Westerberg. Even though the system is small (n=479𝑛479n=479italic_n = 479), the condition number is large: κ(A)1012𝜅𝐴superscript1012\kappa(A)\approx 10^{12}italic_κ ( italic_A ) ≈ 10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT.

For comparison, we include three random normal solvers with r=50,100,150𝑟50100150r=50,100,150italic_r = 50 , 100 , 150. We run Algorithm 4 with inner iterations limit 10n10𝑛10n10 italic_n. The convergence tolerance for all methods is ϵ=106italic-ϵsuperscript106\epsilon=10^{-6}italic_ϵ = 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT. As Algorithm 4 has cheap inner and costly outer iterations, a comparison based on iterations only may not be informative. Instead we compare computation times. Figure 5 shows the outcomes. We see that Rand (r=150)𝑟150(r=150)( italic_r = 150 ) and Algorithm 4 (PLSS with B=ATA𝐵superscript𝐴T𝐴B=A^{\mathrm{\scriptstyle T}}Aitalic_B = italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT italic_A) perform well. Importantly, Algorithm 4 scales to larger problems because the subproblem solver has low inner iterations complexity. Every iteration of the randomized algorithm needs O(r3)𝑂superscript𝑟3O(r^{3})italic_O ( italic_r start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ) operations.

Refer to caption
Figure 5: Computational times of four solvers on the West0479 matrix.

5 Conclusion

Structured sketch-and-project methods for linear systems have been developed here. The methods are characterized by a finite termination property for both random and deterministic sketches. When the history of past residuals forms the sketch, we exploit a short recurrence to develop effective weighting schemes. The techniques enable us to incorporate information from the linear system to obtain an implicit preconditioning. In numerical experiments on large sparse problems, the proposed methods compare well to state-of-the-art deterministic and random solvers.

Acknowledgments

We are grateful for fruitful discussions after the presentation in Session 3B: Randomized Algorithms at the 18th Copper Mountain Conference on Iterative Methods, April 14–19, 2024, Frisco, CO.

References

  • [1] H. Avron, P. Maymounkov, and S. Toledo, Blendenpik: Supercharging LAPACK’s least-squares solver, SIAM J. Sci. Comput., 32 (2010), pp. 1217–1236.
  • [2] R. Barrett, M. Berry, T. F. Chan, J. Demmel, J. Donato, J. Dongarra, V. Eijkhout, R. Pozo, C. Romine, and H. Van der Vorst, Templates for the solution of linear systems: building blocks for iterative methods, SIAM, 1994.
  • [3] J. J. Brust, Code for Algorithm PLSS and test programs. https://github.com/johannesbrust/PLSS, 2022.
  • [4] J. J. Brust, R. F. Marcia, and C. G. Petra, Large-scale quasi-newton trust-region methods with low-dimensional linear equality constraints, Comput. Optim. Appl., 74 (2019), pp. 669–701.
  • [5] J. J. Brust, R. F. Marcia, C. G. Petra, and M. A. Saunders, Large-scale optimization with linear equality constraints using reduced compact representation, SIAM J. Sci. Comput., 44 (2022), pp. A103–A127.
  • [6] J. J. Brust and M. A. Saunders, PLSS: A projected linear systems solver, SIAM J. Sci. Comput., 45 (2023), pp. A1012–A1037.
  • [7] T. A. Davis, Direct Methods for Sparse Linear Systems, SIAM, Philadelphia, 2006.
  • [8] T. A. Davis, Y. Hu, and S. Kolodziej, SuiteSparse matrix collection. https://sparse.tamu.edu/, 2015–present.
  • [9] E. Dolan and J. Moré, Benchmarking optimization software with performance profiles, Math. Program., 91 (2002), pp. 201–213.
  • [10] G. H. Golub and C. F. Van Loan, Matrix Computations, The Johns Hopkins University Press, Baltimore, Maryland, third ed., 1996.
  • [11] R. M. Gower and P. Richtárik, Randomized iterative methods for linear systems, SIAM J. Matrix Anal. Appl., 36 (2015), pp. 1660–1690, https://doi.org/10.1137/15M1025487.
  • [12] M. R. Hestenes and E. Stiefel, Methods of conjugate gradients for solving linear systems, Journal of Research of the National Bureau of Standards, 49 (1952), pp. 409–436.
  • [13] E. Liberty, Simple and deterministic matrix sketching, in Proceedings of the 19th ACM SIGKDD international conference on Knowledge Discovery and Data Dining, 2013, pp. 581–588.
  • [14] X. Meng, M. A. Saunders, and M. W. Mahoney, LSRN: A parallel iterative solver for strongly over- or underdetermined systems, SIAM J. Sci. Comput., 36 (2014), pp. C95–C118, https://doi.org/10.1137/120866580.
  • [15] C. C. Paige and M. A. Saunders, Solution of sparse indefinite systems of linear equations, SIAM J. Numer. Anal., 12 (1975), pp. 617–629, https://doi.org/10.1137/0712047.
  • [16] P. Richtárik and M. Takáč, Stochastic reformulations of linear systems: Algorithms and convergence theory, SIAM J. Matrix Anal. Appl., 41 (2020), pp. 487–524, https://doi.org/10.1137/18M1179249.
  • [17] Y. Saad, Iterative Methods for Sparse Linear Systems, SIAM, Philadelphia, 2003.
  • [18] Y. Saad and M. H. Schultz, GMRES: A generalized minimal residual algorithm for solving nonsymmetric linear systems, SIAM J. Sci. and Statist. Comput., 7 (1986), pp. 856–869, https://doi.org/10.1137/0907058.
  • [19] T. Strohmer and R. Vershynin, A randomized Kaczmarz algorithm with exponential convergence, Journal of Fourier Analysis and Applications, 15 (2009), pp. 262–278.
  • [20] D. P. Woodruff et al., Sketching as a tool for numerical linear algebra, Foundations and Trends® in Theoretical Computer Science, 10 (2014), pp. 1–157.