118 REAL function ( m, n, k, a, , lda, tau, jpvt,
126 INTEGER k, , lwork, , n
130 COMPLEX a( lda, * ), af( lda, * ), tau( * ),
138 parameter( zero = 0.0e0, one = 1.0e0 )
163 IF( lwork.LT.m*n+n )
THEN
164 CALL xerbla(
'CQPT01', 10 )
170 IF( m.LE.0 .OR. n.LE.0 )
173 norma =
clange(
'One-norm', m, n, a, lda, rwork )
176 DO 10 i = 1,
min( j, m )
177 work( ( j-1 )*m+i ) = af( i, j )
180 work( ( j-1 )*m+i ) = zero
184 CALL ccopy( m, af( 1, j ), 1, work( ( j-1 )*m+1 ), 1 )
187 CALL cunmqr(
'Left',
'No transpose', m, n, k, af, lda, tau, work,
188 $ m, work( m*n+1 ), lwork-m*n, info )
194 CALL caxpy( m,
cmplx( -one ), a( 1, jpvt( j ) ), 1,
195 $ work( ( j-1 )*m+1 ), 1 )
199 $ ( real(
max( m, n ) )*
slamch(
'Epsilon' ) )
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 ...
subroutine cunmqr(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
CUNMQR
real function cqpt01(m, n, k, a, af, lda, tau, jpvt, work, lwork)
CQPT01