140 SUBROUTINE chst01( N, ILO, IHI, A, LDA, H, LDH, Q, LDQ, WORK,
141 $ LWORK, RWORK, RESULT )
149 INTEGER IHI, ILO, LDA, LDH, LDQ, LWORK, N
152 REAL RESULT( 2 ), RWORK( * )
153 COMPLEX A( LDA, * ), H( LDH, * ), Q( LDQ, * ),
161 parameter( one = 1.0e+0, zero = 0.0e+0 )
165 REAL ANORM, EPS, OVFL, SMLNUM, UNFL, WNORM
169 EXTERNAL clange, slamch
175 INTRINSIC cmplx, max, min
187 unfl = slamch(
'Safe minimum' )
188 eps = slamch(
'Precision' )
191 smlnum = unfl*n / eps
198 CALL clacpy(
' ', n, n, a, lda, work, ldwork )
202 CALL cgemm(
'No transpose',
'No transpose', n, n, n, cmplx( one ),
203 $ q, ldq, h, ldh, cmplx( zero ), work( ldwork*n+1 ),
208 CALL cgemm(
'No transpose',
'Conjugate transpose', n, n, n,
209 $ cmplx( -one ), work( ldwork*n+1 ), ldwork, q, ldq,
210 $ cmplx( one ), work, ldwork )
212 anorm = max( clange(
'1', n, n, a, lda, rwork ), unfl )
213 wnorm = clange(
'1', n, n, work, ldwork, rwork )
217 result( 1 ) = min( wnorm, anorm ) / max( smlnum, anorm*eps ) / n
221 CALL cunt01(
'Columns', n, n, q, ldq, work, lwork, rwork,