and usually reduce the number of iterations. However, their implementation is involved as linear dependencies in the block must be removed [@blockQMR]. More importantly, the total execution time often increases and there is no clear theoretical understanding of when to use them and with how large a block size (see [@Gutknecht_website_block; @Gutknecht_block_intro] for a recent review and [@Morgan_Wilcox] for a discussion of block methods in the context of multiple right hand sides and QCD).

The other common approach is the use of seed methods [@VS_EG_95; @TFC_WLW_94; @Saad_87a], which reuse the Krylov subspace generated by one seed system to project the rest. After projection, a new seed system is chosen to iterate to convergence, and the idea is repeated until all systems are solved. Seed methods effectively reduce the number of iterations to solve each successive right hand side when these are highly related. Most seed algorithms do not store the previously generated Krylov spaces. Instead, while solving $Ax_i = b_i$, they project the current Krylov vector from all the approximations $x_j, j=i+1,\ldots ,s$, updating all remaining linear systems at every iteration [@VS_EG_95; @TFC_WLW_94]. Seed and block methods have also been combined [@Misha_seed]. Still, this type of seed methods presents three 