LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ ctrt06()

subroutine ctrt06 ( real  RCOND,
real  RCONDC,
character  UPLO,
character  DIAG,
integer  N,
complex, dimension( lda, * )  A,
integer  LDA,
real, dimension( * )  RWORK,
real  RAT 
)

CTRT06

Purpose:
 CTRT06 computes a test ratio comparing RCOND (the reciprocal
 condition number of a triangular matrix A) and RCONDC, the estimate
 computed by CTRCON.  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 REAL
          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 REAL
          The estimate of the reciprocal condition number computed by
          CTRCON.
[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]A
          A is COMPLEX array, dimension (LDA,N)
          The triangular matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of the array A contains the upper
          triangular matrix, and the strictly lower triangular part of
          A is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of the array A contains the lower triangular
          matrix, and the strictly upper triangular part of A is not
          referenced.  If DIAG = 'U', the diagonal elements of A are
          also not referenced and are assumed to be 1.
[in]LDA
          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).
[out]RWORK
          RWORK is REAL array, dimension (N)
[out]RAT
          RAT is REAL
          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 124 of file ctrt06.f.

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