LU decomposition of matrix.
Syntax:		@lu(M, L, U)
	M:	matrix
	L:	matrix
	U:	matrix
Return:		matrix (P)
Performs an LU decomposition with partial (row) pivoting of the matrix M:
•	if 
M is a square 

 produce a unit lower triangular matrix, 
L, an upper triangular matrix, 
U, and a row permutation matrix, 
P, such that 

.
 •	if 
M is a non-square 

 matrix, if 

, 
L will be unit lower trapezoidal (rather than triangular), and if 

, 
U will be upper trapezoidal (rather than triangular).
 Examples
matrix m = @mnrnd(10, 8)
matrix lmat
matrix umat
matrix pmat = @lu(m, lmat, umat)
generates the random matrix M, then performs the LU decomposition returning PMAT and yielding updated LMAT, UMAT.
The following commands validate the definition
matrix m1 = pmat * lmat * umat
matrix diff = m - m1
since DIFF equals zero.
Cross-references