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 )
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
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...
REAL function slamch(CMACH)
SLAMCH
subroutine xerbla(SRNAME, INFO)
XERBLA
REAL function crzt02(M, N, AF, LDA, TAU, WORK, LWORK)
CRZT02
REAL function clange(NORM, M, N, A, LDA, WORK)
CLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine cunmrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMRZ