XLPack 7.0
XLPack Numerical Library (C API) Reference Manual
Loading...
Searching...
No Matches

◆ zgbcon()

void zgbcon ( char  norm,
int  n,
int  kl,
int  ku,
int  ldab,
doublecomplex  ab[],
int  ipiv[],
double  anorm,
double *  rcond,
doublecomplex  work[],
double  rwork[],
int *  info 
)

Condition number of a complex band matrix

Purpose
This routine estimates the reciprocal of the condition number of a complex band matrix A, in either the 1-norm or the infinity-norm, using the LU factorization computed by zgbtrf.

An estimate is obtained for norm(inv(A)), and the reciprocal of the condition number is computed as
rcond = 1 / (norm(A) * norm(inv(A)))
Parameters
[in]normSpecifies whether the 1-norm condition number or the infinity-norm condition number is required:
= '1' or 'O': 1-norm.
= 'I': Infinity-norm.
[in]nOrder of the matrix A. (n >= 0) (If n = 0, returns rcond = 1)
[in]klNumber of sub-diagonals within the band of A. (kl >= 0)
[in]kuNumber of super-diagonals within the band of A. (ku >= 0)
[in]ldabLeading dimension of the two dimensional array ab[][]. (ldab >= 2kl + ku + 1)
[in,out]ab[][]Array ab[lab][ldab] (lab >= n)
Details of the LU factorization of the band matrix A, as computed by zgbtrf. U is stored as an upper triangular band matrix with kl+ku super-diagonals in rows 1 to kl+ku+1, and the multipliers used during the factorization are stored in rows kl+ku+2 to 2*kl+ku+1.
[in]ipiv[]Array ipiv[lipiv] (lipiv >= n)
Pivot indices; for 1 <= i <= n, row i of the matrix was interchanged with row ipiv[i-1].
[in]anormnorm = '1' or 'O': The 1-norm of the original matrix A. (anorm >= 0)
norm = 'I': The infinity-norm of the original matrix A. (anorm >= 0)
[out]rcondThe reciprocal of the condition number of the matrix A, computed as rcond = 1/(norm(A) * norm(inv(A))).
[out]work[]Array work[lwork] (lwork >= 2*n)
Work array.
[out]rwork[]Array rwork[lrwork] (lrwork >= n)
Work array.
[out]info= 0: Successful exit
= -1: The argument norm had an illegal value (norm != '1', 'O' nor 'I')
= -2: The argument n had an illegal value (n < 0)
= -3: The argument kl had an illegal value (kl < 0)
= -4: The argument ku had an illegal value (ku < 0)
= -5: The argument ldab had an illegal value (ldab < 2kl+ku+1)
= -8: The argument anorm had an illegal value (anorm < 0)
Reference
LAPACK