For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n unit lower triangular matrix L, an n-by-n upper triangular matrix U, and a permutation vector piv of length m so that A(piv,*) = L*U. If m < n, then L is m-by-m and U is m-by-n.

The LU decompostion with pivoting always exists, even if the matrix is singular, so the MatLU(a()) will never fail. The primary use of the LU decomposition is in the solution of square systems of simultaneous linear equations. This will fail if isMatLuNonSingular(lu) returns false.

## lu = MatLU(a())- This function returns an object which contains the LU Decomposition Structure to access L, U and piv. The following funcions return the results of the decomposition. |

## b = isMatLuNonSingular(lu)- Is the matrix nonsingular? |

## d = MatLUDet(lu)- Determinant. |

## p() = MatLUPivot(lu)- Return pivot permutation vector as a one-dimensional double array. |

## c() = MatLULowerTriFactor(lu)- Return lower triangular factor. |

## c() = MatLUUpperTriFactor(lu)- Return upper triangular factor. |

## c() = MatLUSolve(lu, b())- Solve A*X = B |