QRDecomposition[m] yields the QR decomposition for a numerical matrix m. The result is a list q, r, where q is an orthogonal matrix and r is an upper triangular matrix.
The original matrix m is equal to Conjugate[Transpose[q]] . r.
For non-square matrices, q is row orthonormal.
The matrix r has zeros for all entries below the leading diagonal.
QRDecomposition[m, Pivoting -> True] yields a list q, r, p where p is a permutation matrix such that m . p is equal to Conjugate[Transpose[q]] . r.
See The Mathematica Book: Section 3.7.10.
Implementation Notes: see section A.9.4.
See also: SchurDecomposition, LUDecomposition, SingularValues, JordanDecomposition.
Related packages: LinearAlgebra`Cholesky`, LinearAlgebra`Orthogonalization`.