109 SUBROUTINE sgetf2( M, N, A, LDA, IPIV, INFO )
117 INTEGER info, lda, m, n
128 parameter( one = 1.0e+0, zero = 0.0e+0 )
152 ELSE IF( n.LT.0 )
THEN
154 ELSE IF( lda.LT.max( 1, m ) )
THEN
158 CALL
xerbla(
'SGETF2', -info )
164 IF( m.EQ.0 .OR. n.EQ.0 )
171 DO 10
j = 1, min( m, n )
177 IF( a( jp,
j ).NE.zero )
THEN
182 $ CALL
sswap( n, a(
j, 1 ), lda, a( jp, 1 ), lda )
187 IF( abs(a(
j,
j )) .GE. sfmin )
THEN
188 CALL
sscal( m-
j, one / a(
j,
j ), a(
j+1,
j ), 1 )
191 a(
j+i,
j ) = a(
j+i,
j ) / a(
j,
j )
196 ELSE IF( info.EQ.0 )
THEN
201 IF(
j.LT.min( m, n ) )
THEN
205 CALL
sger( m-
j, n-
j, -one, a(
j+1,
j ), 1, a(
j,
j+1 ), lda,
206 $ a(
j+1,
j+1 ), lda )
subroutine sswap(N, SX, INCX, SY, INCY)
SSWAP
integer function isamax(N, SX, INCX)
ISAMAX
subroutine xerbla(SRNAME, INFO)
XERBLA
real function slamch(CMACH)
SLAMCH
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine sger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
SGER
subroutine sgetf2(M, N, A, LDA, IPIV, INFO)
SGETF2 computes the LU factorization of a general m-by-n matrix using partial pivoting with row inter...
subroutine sscal(N, SA, SX, INCX)
SSCAL