124 SUBROUTINE cunt01( ROWCOL, M, N, U, LDU, WORK, LWORK, RWORK,
133 INTEGER LDU, LWORK, M, N
138 COMPLEX U( LDU, * ), WORK( * )
145 parameter( zero = 0.0e+0, one = 1.0e+0 )
149 INTEGER I, J, K, LDWORK, MNMIN
157 EXTERNAL lsame, clansy, slamch, cdotc
169 cabs1( zdum ) = abs( real( zdum ) ) + abs( aimag( zdum ) )
177 IF( m.LE.0 .OR. n.LE.0 )
180 eps = slamch(
'Precision' )
181 IF( m.LT.n .OR. ( m.EQ.n .AND. lsame( rowcol,
'R' ) ) )
THEN
190 IF( ( mnmin+1 )*mnmin.LE.lwork )
THEN
195 IF( ldwork.GT.0 )
THEN
200 $
cmplx( one ), work, ldwork )
201 CALL cherk( 'upper
', TRANSU, MNMIN, K, -ONE, U, LDU, ONE, WORK,
206 RESID = CLANSY( '1
', 'upper
', MNMIN, WORK, LDWORK, RWORK )
207 RESID = ( RESID / REAL( K ) ) / EPS
208.EQ.
ELSE IF( TRANSU'c
' ) THEN
219 TMP = TMP - CDOTC( M, U( 1, I ), 1, U( 1, J ), 1 )
220 RESID = MAX( RESID, CABS1( TMP ) )
223 RESID = ( RESID / REAL( M ) ) / EPS
235 TMP = TMP - CDOTC( N, U( J, 1 ), LDU, U( I, 1 ), LDU )
236 RESID = MAX( RESID, CABS1( TMP ) )
239 RESID = ( RESID / REAL( N ) ) / EPS
subroutine claset(uplo, m, n, alpha, beta, a, lda)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine cherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
CHERK
subroutine cunt01(rowcol, m, n, u, ldu, work, lwork, rwork, resid)
CUNT01