The Gram-Schmidt Algorithm and Its Variations
Abstract
The Gram--Schmidt algorithm is a widely used method for
orthogonalizing a sequence of vectors. It comes in two forms:
classical Gram--Schmidt and modified Gram--Schmidt, each of whose
operations can be ordered in different ways. This expository paper
gives a systematic treatment of this confusing variety of algorithms.
It also treats the numerical issue of loss of orthogonality and
reorthogonalization as well as the implementation of column pivoting.