An iterative algorithm for solving sparse linear systems by building solutions in expanding subspaces.