LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ ztbt06()

subroutine ztbt06 ( double precision  RCOND,
double precision  RCONDC,
character  UPLO,
character  DIAG,
integer  N,
integer  KD,
complex*16, dimension( ldab, * )  AB,
integer  LDAB,
double precision, dimension( * )  RWORK,
double precision  RAT 
)

ZTBT06

Purpose:
 ZTBT06 computes a test ratio comparing RCOND (the reciprocal
 condition number of a triangular matrix A) and RCONDC, the estimate
 computed by ZTBCON.  Information about the triangular matrix A is
 used if one estimate is zero and the other is non-zero to decide if
 underflow in the estimate is justified.
Parameters
[in]RCOND
          RCOND is DOUBLE PRECISION
          The estimate of the reciprocal condition number obtained by
          forming the explicit inverse of the matrix A and computing
          RCOND = 1/( norm(A) * norm(inv(A)) ).
[in]RCONDC
          RCONDC is DOUBLE PRECISION
          The estimate of the reciprocal condition number computed by
          ZTBCON.
[in]UPLO
          UPLO is CHARACTER
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular
[in]DIAG
          DIAG is CHARACTER
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular
[in]N
          N is INTEGER
          The order of the matrix A.  N >= 0.
[in]KD
          KD is INTEGER
          The number of superdiagonals or subdiagonals of the
          triangular band matrix A.  KD >= 0.
[in]AB
          AB is COMPLEX*16 array, dimension (LDAB,N)
          The upper or lower triangular band matrix A, stored in the
          first kd+1 rows of the array. The j-th column of A is stored
          in the j-th column of the array AB as follows:
          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
[in]LDAB
          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KD+1.
[out]RWORK
          RWORK is DOUBLE PRECISION array, dimension (N)
[out]RAT
          RAT is DOUBLE PRECISION
          The test ratio.  If both RCOND and RCONDC are nonzero,
             RAT = MAX( RCOND, RCONDC )/MIN( RCOND, RCONDC ) - 1.
          If RAT = 0, the two estimates are exactly the same.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
December 2016

Definition at line 128 of file ztbt06.f.

128 *
129 * -- LAPACK test routine (version 3.7.0) --
130 * -- LAPACK is a software package provided by Univ. of Tennessee, --
131 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
132 * December 2016
133 *
134 * .. Scalar Arguments ..
135  CHARACTER diag, uplo
136  INTEGER kd, ldab, n
137  DOUBLE PRECISION rat, rcond, rcondc
138 * ..
139 * .. Array Arguments ..
140  DOUBLE PRECISION rwork( * )
141  COMPLEX*16 ab( ldab, * )
142 * ..
143 *
144 * =====================================================================
145 *
146 * .. Parameters ..
147  DOUBLE PRECISION zero, one
148  parameter( zero = 0.0d+0, one = 1.0d+0 )
149 * ..
150 * .. Local Scalars ..
151  DOUBLE PRECISION anorm, bignum, eps, rmax, rmin
152 * ..
153 * .. External Functions ..
154  DOUBLE PRECISION dlamch, zlantb
155  EXTERNAL dlamch, zlantb
156 * ..
157 * .. Intrinsic Functions ..
158  INTRINSIC max, min
159 * ..
160 * .. Executable Statements ..
161 *
162  eps = dlamch( 'Epsilon' )
163  rmax = max( rcond, rcondc )
164  rmin = min( rcond, rcondc )
165 *
166 * Do the easy cases first.
167 *
168  IF( rmin.LT.zero ) THEN
169 *
170 * Invalid value for RCOND or RCONDC, return 1/EPS.
171 *
172  rat = one / eps
173 *
174  ELSE IF( rmin.GT.zero ) THEN
175 *
176 * Both estimates are positive, return RMAX/RMIN - 1.
177 *
178  rat = rmax / rmin - one
179 *
180  ELSE IF( rmax.EQ.zero ) THEN
181 *
182 * Both estimates zero.
183 *
184  rat = zero
185 *
186  ELSE
187 *
188 * One estimate is zero, the other is non-zero. If the matrix is
189 * ill-conditioned, return the nonzero estimate multiplied by
190 * 1/EPS; if the matrix is badly scaled, return the nonzero
191 * estimate multiplied by BIGNUM/TMAX, where TMAX is the maximum
192 * element in absolute value in A.
193 *
194  bignum = one / dlamch( 'Safe minimum' )
195  anorm = zlantb( 'M', uplo, diag, n, kd, ab, ldab, rwork )
196 *
197  rat = rmax*( min( bignum / max( one, anorm ), one / eps ) )
198  END IF
199 *
200  RETURN
201 *
202 * End of ZTBT06
203 *
double precision function dlamch(CMACH)
DLAMCH
Definition: dlamch.f:65
double precision function zlantb(NORM, UPLO, DIAG, N, K, AB, LDAB, WORK)
ZLANTB returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a triangular band matrix.
Definition: zlantb.f:143
Here is the caller graph for this function: