The feasibility of using CSI-MSVD as a preconditioner to Krylov-based methods like Arnoldi's algorithm has also been investigated using Matlab 4.2 implementations of CSI-MSVD in combination with a k-step Arnoldi method (ARNUPD) as implemented in . Table 3 tabulates the error reduction for approximations to a few of the largest singular triplets of the matrix ADI (see Table 1) when ARNUPD is used with a starting vector that is either random or generated by the CSI-MSVD procedure (with and ). Only 1 Arnoldi iteration is required with the CSI-MSVD starting vector to achieve the errors reported in Table 3. Here, ARNUPD is used with a subspace of dimension 6, and the number of desired eigenvalues k=1 with p=5 extra vectors are calculated at each step to obtain the partial Schur decomposition for the 2-cyclic iteration matrix M where
It should be noted that, since Arnupd tests for convergence by ensuring that the error in the Rayleigh Quotient is within the user-defined tolerance tol, the actual error in the eigenpair is given by and reported in Table 3. Here, is obtained as an eigenvalue of H, and where is the eigenvector of H corresponding to . When the subspace size is kept constant for a given user-defined tolerance tol, starting vectors generated by the CSI-MSVD algorithm consistently yield improved errors in the eigenpairs computed by Arnoldi's method. Since, the CSI-MSVD algorithm typically requires matrix-vector multiplications to converge to each eigenvalue , a considerable improvement in the accuracy in the approximated singular triplets by ARNUPD can be obtained at very little cost. In a more general sense, CSI-MSVD could be considered a preconditioning technique for fast generation of good starting vectors for any iterative method used to approximate eigenpairs or singular triplets.