127 SUBROUTINE zungql( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
134 INTEGER INFO, K, LDA, LWORK, M, N
137 COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * )
144 parameter( zero = ( 0.0d+0, 0.0d+0 ) )
148 INTEGER I, IB, IINFO, IWS, J, KK, L, LDWORK, LWKOPT,
166 lquery = ( lwork.EQ.-1 )
169 ELSE IF( n.LT.0 .OR. n.GT.m )
THEN
171 ELSE IF( k.LT.0 .OR. k.GT.n )
THEN
173 ELSE IF( lda.LT.
max( 1, m ) )
THEN
181 nb = ilaenv( 1,
'ZUNGQL', '
', M, N, K, -1 )
186.LT..AND..NOT.
IF( LWORKMAX( 1, N ) LQUERY ) THEN
192 CALL XERBLA( 'zungql', -INFO )
194 ELSE IF( LQUERY ) THEN
207.GT..AND..LT.
IF( NB1 NBK ) THEN
211 NX = MAX( 0, ILAENV( 3, 'zungql', ' ', M, N, K, -1 ) )
218.LT.
IF( LWORKIWS ) THEN
224 NBMIN = MAX( 2, ILAENV( 2, 'zungql', ' ', M, N, K, -1 ) )
229.GE..AND..LT..AND..LT.
IF( NBNBMIN NBK NXK ) THEN
234 KK = MIN( K, ( ( K-NX+NB-1 ) / NB )*NB )
239 DO 10 I = M - KK + 1, M
249 CALL ZUNG2L( M-KK, N-KK, K-KK, A, LDA, TAU, WORK, IINFO )
255 DO 50 I = K - KK + 1, K, NB
256 IB = MIN( NB, K-I+1 )
257.GT.
IF( N-K+I1 ) THEN
262 CALL ZLARFT( 'backward
', 'columnwise
', M-K+I+IB-1, IB,
263 $ A( 1, N-K+I ), LDA, TAU( I ), WORK, LDWORK )
267 CALL ZLARFB( 'left
', 'no transpose
', 'backward
',
268 $ 'columnwise
', M-K+I+IB-1, N-K+I-1, IB,
269 $ A( 1, N-K+I ), LDA, WORK, LDWORK, A, LDA,
270 $ WORK( IB+1 ), LDWORK )
275 CALL ZUNG2L( M-K+I+IB-1, IB, IB, A( 1, N-K+I ), LDA,
276 $ TAU( I ), WORK, IINFO )
280 DO 40 J = N - K + I, N - K + I + IB - 1
281 DO 30 L = M - K + I + IB, M
subroutine xerbla(srname, info)
XERBLA
subroutine zlarfb(side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
ZLARFB applies a block reflector or its conjugate-transpose to a general rectangular matrix.
subroutine zlarft(direct, storev, n, k, v, ldv, tau, t, ldt)
ZLARFT forms the triangular factor T of a block reflector H = I - vtvH
subroutine zung2l(m, n, k, a, lda, tau, work, info)
ZUNG2L generates all or part of the unitary matrix Q from a QL factorization determined by cgeqlf (un...
subroutine zungql(m, n, k, a, lda, tau, work, lwork, info)
ZUNGQL