Purpose
To compute an LU factorization, using complete pivoting, of the N-by-N matrix A. The factorization has the form A = P * L * U * Q, where P and Q are permutation matrices, L is lower triangular with unit diagonal elements and U is upper triangular.Specification
SUBROUTINE MB02UV( N, A, LDA, IPIV, JPIV, INFO ) C .. Scalar Arguments .. INTEGER INFO, LDA, N C .. Array Arguments .. INTEGER IPIV( * ), JPIV( * ) DOUBLE PRECISION A( LDA, * )Arguments
Input/Output Parameters
N (input) INTEGER The order of the matrix A. A (input/output) DOUBLE PRECISION array, dimension (LDA, N) On entry, the leading N-by-N part of this array must contain the matrix A to be factored. On exit, the leading N-by-N part of this array contains the factors L and U from the factorization A = P*L*U*Q; the unit diagonal elements of L are not stored. If U(k, k) appears to be less than SMIN, U(k, k) is given the value of SMIN, giving a nonsingular perturbed system. LDA INTEGER The leading dimension of the array A. LDA >= max(1, N). IPIV (output) INTEGER array, dimension (N) The pivot indices; for 1 <= i <= N, row i of the matrix has been interchanged with row IPIV(i). JPIV (output) INTEGER array, dimension (N) The pivot indices; for 1 <= j <= N, column j of the matrix has been interchanged with column JPIV(j).Error Indicator
INFO INTEGER = 0: successful exit; = k: U(k, k) is likely to produce owerflow if one tries to solve for x in Ax = b. So U is perturbed to get a nonsingular system. This is a warning.Further Comments
In the interests of speed, this routine does not check the input for errors. It should only be used to factorize matrices A of very small order.Example
Program Text
NoneProgram Data
NoneProgram Results
None