177 INTEGER info, lda, m, n
180 DOUBLE PRECISION a( lda, * ), d( * )
187 parameter( one = 1.0d+0 )
190 DOUBLE PRECISION sfmin
191 INTEGER i, iinfo, n1, n2
201 INTRINSIC abs, dsign, max, min
210 ELSE IF( n.LT.0 )
THEN
212 ELSE IF( lda.LT.max( 1, m ) )
THEN
216 CALL xerbla(
'DLAORHR_COL_GETRFNP2', -info )
222 IF( min( m, n ).EQ.0 )
232 d( 1 ) = -dsign( one, a( 1, 1 ) )
236 a( 1, 1 ) = a( 1, 1 ) - d( 1 )
238 ELSE IF( n.EQ.1 )
THEN
245 d( 1 ) = -dsign( one, a( 1, 1 ) )
249 a( 1, 1 ) = a( 1, 1 ) - d( 1 )
259 IF( abs( a( 1, 1 ) ) .GE. sfmin )
THEN
260 CALL dscal( m-1, one / a( 1, 1 ), a( 2, 1 ), 1 )
263 a( i, 1 ) = a( i, 1 ) / a( 1, 1 )
281 CALL dtrsm(
'R',
'U',
'N',
'N', m-n1, n1, one, a, lda,
282 $ a( n1+1, 1 ), lda )
286 CALL dtrsm(
'L',
'L',
'N',
'U', n1, n2, one, a, lda,
287 $ a( 1, n1+1 ), lda )
292 CALL dgemm(
'N',
'N', m-n1, n2, n1, -one, a( n1+1, 1 ), lda,
293 $ a( 1, n1+1 ), lda, one, a( n1+1, n1+1 ), lda )