174 INTEGER INFO, LDA, M, N
177 DOUBLE PRECISION A( lda, * ), D( * )
184 parameter( one = 1.0d+0 )
187 DOUBLE PRECISION SFMIN
188 INTEGER I, IINFO, N1, N2
191 DOUBLE PRECISION DLAMCH
198 INTRINSIC abs, dsign, max, min
207 ELSE IF( n.LT.0 )
THEN 209 ELSE IF( lda.LT.max( 1, m ) )
THEN 213 CALL xerbla(
'DLAORHR_COL_GETRFNP2', -info )
219 IF( min( m, n ).EQ.0 )
229 d( 1 ) = -dsign( one, a( 1, 1 ) )
233 a( 1, 1 ) = a( 1, 1 ) - d( 1 )
235 ELSE IF( n.EQ.1 )
THEN 242 d( 1 ) = -dsign( one, a( 1, 1 ) )
246 a( 1, 1 ) = a( 1, 1 ) - d( 1 )
256 IF( abs( a( 1, 1 ) ) .GE. sfmin )
THEN 257 CALL dscal( m-1, one / a( 1, 1 ), a( 2, 1 ), 1 )
260 a( i, 1 ) = a( i, 1 ) / a( 1, 1 )
278 CALL dtrsm(
'R',
'U',
'N',
'N', m-n1, n1, one, a, lda,
279 $ a( n1+1, 1 ), lda )
283 CALL dtrsm(
'L',
'L',
'N',
'U', n1, n2, one, a, lda,
284 $ a( 1, n1+1 ), lda )
289 CALL dgemm(
'N',
'N', m-n1, n2, n1, -one, a( n1+1, 1 ), lda,
290 $ a( 1, n1+1 ), lda, one, a( n1+1, n1+1 ), lda )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
DGEMM
recursive subroutine dlaorhr_col_getrfnp2(M, N, A, LDA, D, INFO)
DLAORHR_COL_GETRFNP2
subroutine dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM
subroutine dscal(N, DA, DX, INCX)
DSCAL