The
QR decomposition of a square matrix
A factors
A as the product of an orthogonal matrix
Q and an upper triangular matrix
R. An orthogonal matrix is a matrix whose columns are mutually orthogonal unit vectors and so satisfies

, where

is an identity matrix, and an upper triangular matrix is a matrix whose entries below the main diagonal are all zero. The matrix
Q is the result of performing the Gram-Schmidt process on the columns of
A. The
Mathematica function
QRDecomposition[a] accomplishes this factorization, producing the list

.