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

◆ zgtcon()

void zgtcon ( char  norm,
int  n,
doublecomplex  dl[],
doublecomplex  d[],
doublecomplex  du[],
doublecomplex  du2[],
int  ipiv[],
double  anorm,
double *  rcond,
doublecomplex  work[],
int *  info 
)

Condition number of a complex tridiagonal matrix

Purpose
This routine estimates the reciprocal of the condition number of a complex tridiagonal matrix A using the LU factorization as computed by zgttrf.

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]dl[]Array dl[ldl] (ldl >= n - 1)
n-1 multipliers that define the matrix L from the LU factorization of A as computed by zgttrf.
[in]d[]Array d[ld] (ld >= n)
n diagonal elements of the upper triangular matrix U from the LU factorization of A.
[in]du[]Array du[ldu] (ldu >= n - 1)
n-1 elements of the first super-diagonal of U.
[in]du2[]Array du2[ldu2] (ldu2 >= n - 2)
n-2 elements of the second super-diagonal of U.
[out]ipiv[]Array ipiv[lipiv] (lipiv >= n)
Pivot indices; for 1 <= i <= n, row i of the matrix was interchanged with row ipiv[i-1]. ipiv[i-1] will always be either i or i+1; ipiv[i-1] = i indicates a row interchange was not required.
[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/(anorm * ainvnm), where ainvnm is an estimate of the 1-norm of inv(A) computed in this routine.
[out]work[]Array work[lwork] (lwork >= 2*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)
= -8: The argument anorm had an illegal value (anorm < 0)
Reference
LAPACK