Finds the orthogonal basis of a vector space given a valid basis using the Gram-Schmidt process, done through recursively calculating projections. Also finds the QR decomposition of a matrix using the Gram-Schmidt process and multiplying by the transpose of the orthogonal matrix.
- linalg is so cool because this is 100% just scalar multiplication and addition