The description of the Arnoldi procedure given earlier was based on the modified Gram-Schmidt process. Other orthogonalization algorithms could be used as well. One improvement is to reorthogonalize when necessary. Whenever the final vector obtained at the end of the second loop in the above algorithm has been computed, a test is performed to compare its norm with the norm of the initial (which is ). If the reduction falls below a certain threshold (an indication that severe cancelation might have occurred), a second orthogonalization is made. It is known from a result by Kahan that more than two orthogonalizations are superfluous (see, for example, Parlett ).
One of the most reliable orthogonalization techniques, from the numerical point of view, is the Householder algorithm . This has been implemented for the Arnoldi procedure by Walker . The Householder algorithm is numerically more reliable than the Gram-Schmidt or modified Gram-Schmidt versions, but it is also more expensive, requiring roughly the same storage as modified Gram-Schmidt but about twice as many operations. The Householder orthogonalization is a reasonable choice when developing general purpose, reliable software packages where robustness is a critical criterion.