# CONDITION Matrix Condition Number Estimation

CONDITION is a C++ library which implements methods for computing or estimating the condition number of a matrix.

Let ||*|| be a matrix norm, let A be an invertible matrix, and inv(A) the inverse of A. The condition number of A with respect to the norm ||*|| is defined to be

```        kappa(A) = ||A|| * ||inv(A)||
```

If A is not invertible, the condition number is taken to be infinity.

Facts about the condition number include:

• 1 <= kappa(A) for all matrices A.
• 1 = kappa(I), where I is the identity matrix.
• for the L2 matrix norm, the condition number of any orthogonal matrix is 1.
• for the L2 matrix norm, the condition number is the ratio of the maximum to minimum singular values;

The CONDITION library needs access to a copy of the R8LIB library.

### Languages:

CONDITION is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

LINPACK_D, a C++ library which solves linear systems using double precision real arithmetic;

NAPACK, a FORTRAN77 library which includes many routines for applied numerical linear algebra tasks, including the matrix condition number, by William Hager.

R8LIB, a C++ library which contains many utility routines using double precision real (R8) arithmetic.

TEST_MAT, a C++ library which defines test matrices for which some of the determinant, eigenvalues, inverse, null vectors, P*L*U factorization or linear system solution are already known.

### Reference:

1. Alan Cline, Cleve Moler, Pete Stewart, James Wilkinson,
An estimate for the Condition Number of a Matrix,
Technical Report TM-310,
Argonne National Laboratory, 1977.
2. Alan Cline, Russell Rew,
A set of counterexamples to three condition number estimators,
SIAM Journal on Scientific and Statistical Computing,
Volume 4, Number 4, December 1983, pages 602-611.
3. William Hager,
Condition Estimates,
SIAM Journal on Scientific and Statistical Computing,
Volume 5, Number 2, June 1984, pages 311-316.
4. Nicholas Higham,
A survey of condition number estimation for triangular matrices,
SIAM Review,
Volume 9, Number 4, December 1987, pages 575-596.
5. Diane OLeary,
Estimating matrix condition numbers,
SIAM Journal on Scientific and Statistical Computing,
Volume 1, Number 2, June 1980, pages 205-209.
6. Pete Stewart,
Efficient Generation of Random Orthogonal Matrices With an Application to Condition Estimators,
SIAM Journal on Numerical Analysis,
Volume 17, Number 3, June 1980, pages 403-409.

### List of Routines:

• COMBIN returns the COMBIN matrix.
• COMBIN_INVERSE returns the inverse of the COMBIN matrix.
• CONDITION_HAGER estimates the L1 condition number of a matrix.
• CONDITION_LINPACK estimates the L1 condition number.
• CONDITION_SAMPLE1 estimates the L1 condition number of a matrix.
• CONEX1 returns the CONEX1 matrix.
• CONEX1_INVERSE returns the inverse of the CONEX1 matrix.
• CONEX2 returns the CONEX2 matrix.
• CONEX2_INVERSE returns the inverse of the CONEX2 matrix.
• CONEX3 returns the CONEX3 matrix.
• CONEX3_INVERSE returns the inverse of the CONEX3 matrix.
• CONEX4 returns the CONEX4 matrix.
• CONEX4_INVERSE returns the inverse of the CONEX4 matrix.
• KAHAN returns the KAHAN matrix.
• KAHAN_INVERSE returns the inverse of the KAHAN matrix.
• R8GE_FA performs a LINPACK-style PLU factorization of a R8GE matrix.
• R8GE_INVERSE computes the inverse of a R8GE matrix factored by R8GE_FA.
• R8GE_SL solves a R8GE system factored by R8GE_FA.

You can go up one level to the C++ source codes.

Last revised on 04 October 2012.