118 REAL function ( m, n, k, a, af, lda,
126 INTEGER k, lda, lwork, , n
130 REAL a( lda, * ), af( , * ), tau( * ),
138 parameter( zero = 0.0e0, one = 1.0e0 )
163 IF( lwork.LT.m*n+n )
THEN
164 CALL xerbla(
'SQPT01', 10 )
170 IF( m.LE.0 .OR. n.LE.0 )
173 norma =
slange(
'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 scopy( m, af( 1, j ), 1, work( ( j-1 )*m+1 ), 1 )
187 CALL sormqr(
'Left',
'No transpose', m, n, k, af, lda, tau, work,
188 $ m, work( m*n+1 ), lwork-m*n
194 CALL saxpy( m, -one, a( 1, jpvt( j ) ), 1, work( ( j-1 )*m+1 ),
199 $ ( real(
max( m, n ) )*
slamch(
'Epsilon' ) )
real function slange(norm, m, n, a, lda, work)
SLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine sormqr(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
SORMQR
real function sqpt01(m, n, k, a, af, lda, tau, jpvt, work, lwork)
SQPT01