Next: Wrong Results Up: Failures Detected by ScaLAPACK Previous: Invalid Arguments and PXERBLA

## Computational Failures and INFO > 0

A positive value of INFO on return from a ScaLAPACK routine indicates a failure in the course of the algorithm. Common causes are

- a matrix is singular (to working precision),
- a symmetric matrix is not positive definite, or
- an iterative algorithm for computing eigenvalues or eigenvectors fails to converge in the permitted number of iterations.

For example, if PSGESVX is called to solve a system of equations with a coefficient matrix that is approximately singular, it may detect exact singularity at the ith stage of the LU factorization, in which case it returns INFO = i; or (more probably) it may compute an estimate of the reciprocal condition number that is less than relative machine precision, in which case it returns INFO = n+1. Again, the documentation in Part ii should be consulted for a description of the error.

When a failure with INFO > 0 occurs, control is always returned to the calling program; `PXERBLA()` is not called, and no error message is written. Thus, it is always good practice to check for a nonzero value of INFO on return from a ScaLAPACK routine.

A failure with INFO > 0 may indicate any of the following:

- An inappropriate routine was used:. For example, if a routine fails because a symmetric matrix turns out not to be positive definite, consider using a routine for symmetric indefinite matrices.
- A single-precision routine was used when double precision was needed. For example, if PSGESVX reports approximate singularity (as illustrated above), the corresponding double precision routine PDGESVX may be able to solve the problem (but nevertheless the problem is ill-conditioned).
- A programming error occurred in generating the data supplied to a routine. For example, even though theoretically a matrix should be well-conditioned and positive-definite, a programming error in generating the matrix could easily destroy either of those properties.
- A programming error occurred in calling the routine, of the kind listed in section 7.3.

Next: Wrong Results Up: Failures Detected by ScaLAPACK Previous: Invalid Arguments and PXERBLA