174 INTEGER info, lda, m, n
177 REAL a( lda, * ), d( * )
184 parameter( one = 1.0e+0 )
188 INTEGER i, iinfo, n1, n2
198 INTRINSIC abs, sign, max, min
207 ELSE IF( n.LT.0 )
THEN
209 ELSE IF( lda.LT.max( 1, m ) )
THEN
213 CALL xerbla(
'SLAORHR_COL_GETRFNP2', -info )
219 IF( min( m, n ).EQ.0 )
229 d( 1 ) = -sign( one, a( 1, 1 ) )
233 a( 1, 1 ) = a( 1, 1 ) - d( 1 )
235 ELSE IF( n.EQ.1 )
THEN
242 d( 1 ) = -sign( one, a( 1, 1 ) )
246 a( 1, 1 ) = a( 1, 1 ) - d( 1 )
256 IF( abs( a( 1, 1 ) ) .GE. sfmin )
THEN
257 CALL sscal( m-1, one / a( 1, 1 ), a( 2, 1 ), 1 )
260 a( i, 1 ) = a( i, 1 ) / a( 1, 1 )
278 CALL strsm(
'R',
'U',
'N',
'N', m-n1, n1, one, a, lda,
279 $ a( n1+1, 1 ), lda )
283 CALL strsm(
'L',
'L',
'N',
'U', n1, n2, one, a, lda,
284 $ a( 1, n1+1 ), lda )
289 CALL sgemm(
'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
recursive subroutine slaorhr_col_getrfnp2(M, N, A, LDA, D, INFO)
SLAORHR_COL_GETRFNP2
subroutine sscal(N, SA, SX, INCX)
SSCAL
subroutine strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine sgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SGEMM
real function slamch(CMACH)
SLAMCH