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 ) ) )
subroutine cunmrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMRZ
real function crzt01(M, N, A, AF, LDA, TAU, WORK, LWORK)
CRZT01
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
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY