Which is the more efficient algorithm: direct least squares based on solving the normal equations by Gaussian Elimination, or using Gram-Schmidt orthonormalization and then solving the resulting triangular system by Back Substitution as in Exercise 5.4.7? Justify your answer.