91 REAL FUNCTION crzt02( M, N, AF, LDA, TAU, WORK,
100 INTEGER LDA, LWORK, M, N
103 COMPLEX AF( lda, * ), TAU( * ), WORK( lwork )
110 parameter( zero = 0.0e0, one = 1.0e0 )
120 EXTERNAL clange, slamch
126 INTRINSIC cmplx, max, real
132 IF( lwork.LT.n*n+n )
THEN
133 CALL xerbla(
'CRZT02', 7 )
139 IF( m.LE.0 .OR. n.LE.0 )
144 CALL claset(
'Full', n, n, cmplx( zero ), cmplx( one ), work, n )
148 CALL cunmrz(
'Left',
'No transpose', n, n, m, n-m, af, lda, tau,
149 $ work, n, work( n*n+1 ), lwork-n*n, info )
153 CALL cunmrz(
'Left',
'Conjugate transpose', n, n, m, n-m, af, lda,
154 $ tau, work, n, work( n*n+1 ), lwork-n*n, info )
159 work( ( i-1 )*n+i ) = work( ( i-1 )*n+i ) - one
162 crzt02 = clange(
'One-norm', n, n, work, n, rwork ) /
163 $ ( slamch(
'Epsilon' )*
REAL( MAX( M, N ) ) )
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 xerbla(SRNAME, INFO)
XERBLA
real function crzt02(M, N, AF, LDA, TAU, WORK, LWORK)
CRZT02
subroutine cunmrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMRZ