Gram-Schmidt Orthogonal Vectors
This procedure runs the Gram-Schmidt Process on a random set of vectors. The way the procedure works is to build an orthogonal set of vectors from the original set by computing the projection of the current vector being worked on in terms of the previous vectors in the orthogonal set. This projection procedure is defined as proju(v) = ((u v) / (u u))u. The formula for the ith vector of the Gram-Schmidt process is ui = vi - j = 1 to i-1 projuj(vi).