119 REAL function
cqpt01( m, n, k, a, af, lda, tau, jpvt,
127 INTEGER k, lda, lwork, m, n
131 COMPLEX a( lda, * ), af( lda, * ), tau( * ),
139 parameter( zero = 0.0e0, one = 1.0e0 )
156 INTRINSIC cmplx, max, min, real
164 IF( lwork.LT.m*n+n )
THEN
165 CALL xerbla(
'CQPT01', 10 )
171 IF( m.LE.0 .OR. n.LE.0 )
174 norma =
clange(
'One-norm', m, n, a, lda, rwork )
177 DO i = 1, min( j, m )
178 work( ( j-1 )*m+i ) = af( i, j )
181 work( ( j-1 )*m+i ) = zero
185 CALL ccopy( m, af( 1, j ), 1, work( ( j-1 )*m+1 ), 1 )
188 CALL cunmqr(
'Left',
'No transpose', m, n, k, af, lda, tau, work,
189 $ m, work( m*n+1 ), lwork-m*n, info )
195 CALL caxpy( m, cmplx( -one ), a( 1, jpvt( j ) ), 1,
196 $ work( ( j-1 )*m+1 ), 1 )
200 $ ( real( max( m, n ) )*
slamch(
'Epsilon' ) )
subroutine xerbla(srname, info)
real function cqpt01(m, n, k, a, af, lda, tau, jpvt, work, lwork)
CQPT01
subroutine caxpy(n, ca, cx, incx, cy, incy)
CAXPY
subroutine ccopy(n, cx, incx, cy, incy)
CCOPY
real function slamch(cmach)
SLAMCH
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