98 REAL FUNCTION crzt01( 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(
'CRZT01', 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 )
164 CALL cunmrz(
'Right',
'No tranpose', m, n, m, n-m, af, lda, tau,
165 $ work, m, work( m*n+1 ), lwork-m*n, info )
170 CALL caxpy( m, cmplx( -one ), a( 1, i ), 1,
171 $ work( ( i-1 )*m+1 ), 1 )
174 crzt01 = clange(
'One-norm', m, n, work, m, rwork )
176 crzt01 =
crzt01 / ( slamch(
'Epsilon' )*
REAL( MAX( M, N ) ) )
real function crzt01(M, N, A, AF, LDA, TAU, WORK, LWORK)
CRZT01
subroutine xerbla(SRNAME, INFO)
XERBLA
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 cunmrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMRZ