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 strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine sgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SGEMM
subroutine sscal(N, SA, SX, INCX)
SSCAL
recursive subroutine slaorhr_col_getrfnp2(M, N, A, LDA, D, INFO)
SLAORHR_COL_GETRFNP2