98 REAL FUNCTION ctzt01( M, N, A, AF, LDA, TAU, WORK,
107 INTEGER LDA, LWORK, M, N
110 COMPLEX A( lda, * ), AF( lda, * ), TAU( * ),
118 parameter( zero = 0.0e0, one = 1.0e0 )
129 EXTERNAL clange, slamch
135 INTRINSIC cmplx, max, real
141 IF( lwork.LT.m*n+m )
THEN
142 CALL xerbla(
'CTZT01', 8 )
148 IF( m.LE.0 .OR. n.LE.0 )
151 norma = clange(
'One-norm', m, n, a, lda, rwork )
155 CALL claset(
'Full', m, n, cmplx( zero ), cmplx( zero ), work, m )
158 work( ( j-1 )*m+i ) = af( i, j )
165 CALL clatzm(
'Right', i, n-m+1, af( i, m+1 ), lda, tau( i ),
166 $ work( ( i-1 )*m+1 ), work( m*m+1 ), m,
173 CALL caxpy( m, cmplx( -one ), a( 1, i ), 1,
174 $ work( ( i-1 )*m+1 ), 1 )
177 ctzt01 = clange(
'One-norm', m, n, work, m, rwork )
179 ctzt01 =
ctzt01 / ( 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 caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine clatzm(SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK)
CLATZM
real function ctzt01(M, N, A, AF, LDA, TAU, WORK, LWORK)
CTZT01