91 REAL FUNCTION ctzt02( 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, conjg, max, real
132 IF( lwork.LT.n*n+n )
THEN
133 CALL
xerbla(
'CTZT02', 7 )
139 IF( m.LE.0 .OR. n.LE.0 )
144 CALL
claset(
'Full', n, n, cmplx( zero ), cmplx( one ), work, n )
149 CALL
clatzm(
'Left', n-m+1, n, af( i, m+1 ), lda, tau( i ),
150 $ work( i ), work( m+1 ), n, work( n*n+1 ) )
156 CALL
clatzm(
'Left', n-m+1, n, af( i, m+1 ), lda,
157 $ conjg( tau( i ) ), work( i ), work( m+1 ), n,
164 work( ( i-1 )*n+i ) = work( ( i-1 )*n+i ) - one
168 $ (
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 ctzt02(M, N, AF, LDA, TAU, WORK, LWORK)
CTZT02
subroutine clatzm(SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK)
CLATZM
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 ...