98 DOUBLE PRECISION FUNCTION zrzt01( M, N, A, AF, LDA, TAU, WORK,
107 INTEGER lda, lwork, m, n
110 COMPLEX*16 a( lda, * ), af( lda, * ), tau( * ),
117 DOUBLE PRECISION zero, one
118 parameter( zero = 0.0d0, one = 1.0d0 )
122 DOUBLE PRECISION norma
125 DOUBLE PRECISION rwork( 1 )
135 INTRINSIC dble, dcmplx, max
141 IF( lwork.LT.m*n+m )
THEN
142 CALL
xerbla(
'ZRZT01', 8 )
148 IF( m.LE.0 .OR. n.LE.0 )
151 norma =
zlange(
'One-norm', m, n, a, lda, rwork )
155 CALL
zlaset(
'Full', m, n, dcmplx( zero ), dcmplx( zero ), work,
159 work( ( j-1 )*m+i ) = af( i, j )
165 CALL
zunmrz(
'Right',
'No tranpose', m, n, m, n-m, af, lda, tau,
166 $ work, m, work( m*n+1 ), lwork-m*n, info )
171 CALL
zaxpy( m, dcmplx( -one ), a( 1, i ), 1,
172 $ work( ( i-1 )*m+1 ), 1 )