Gram-Schmidt orthogonalization, also called the Gram-Schmidt process, is a procedure which takes a nonorthogonal set of linearly independent functions and constructs an orthogonal basis over an arbitrary interval with respect to an arbitrary weighting function w(x). Applying the Gram-Schmidt process to the functions 1, x, x^2, ... on the interval [-1, 1] with the usual L^2 inner product gives the Legendre polynomials (up to constant multiples, p. 47).