I encountered the following algorithm (Algorithm 1 in a paper from Stroubolis on generalized finite element methods) for the solution of a the system $Ax = b$ where $A$ is positive semi-definite or nearly singular positive-definite matrix:
Define $A_\epsilon := A + \epsilon I$ for $I$ identity and $\epsilon > 0$. Then do
$$ c_0 = A_\epsilon^{-1}b, \quad r_0 = b - A c_0, \\ z_i = A_\epsilon^{-1}r_i, \quad v_i = A z_i, \quad c_{i+1} = c_i + z_i \\ r_{i+1} = r_i -v_i = b - Ac_i = (I - AA_\epsilon)^{-1}r_{i-1} $$
until $z_i^\top A z_i / c_i^\top A c_i $ is small enough. Then $c_i$ is taken as the result.
The authors did not provide any source or further information about the properties of this algorithm. Has anybody seen this algorithm elsewhere and could point me to a reference where I could find out more?
Thanks!