sgetrf.f

来自「基于Blas CLapck的.用过的人知道是干啥的」· F 代码 · 共 90 行

F
90
字号
      SUBROUTINE SGETRF( M, N, A, LDA, IPIV, INFO )**  -- LAPACK routine (version 3.0) --*     Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,*     Courant Institute, Argonne National Lab, and Rice University*     September 30, 1994**  -- Modified by R. Clint Whaley for ATLAS Fortran77 LAPACK interface,*     1999**     .. Scalar Arguments ..      INTEGER            INFO, LDA, M, N*     ..*     .. Array Arguments ..      INTEGER            IPIV( * )      REAL A( LDA, * )*     ..**  Purpose*  =======**  SGETRF computes an LU factorization of a general M-by-N matrix A*  using partial pivoting with row interchanges.**  The factorization has the form*     A = P * L * U*  where P is a permutation matrix, L is lower triangular with unit*  diagonal elements (lower trapezoidal if m > n), and U is upper*  triangular (upper trapezoidal if m < n).**  Arguments*  =========**  M       (input) INTEGER*          The number of rows of the matrix A.  M >= 0.**  N       (input) INTEGER*          The number of columns of the matrix A.  N >= 0.**  A       (input/output) REAL array, dimension (LDA,N)*          On entry, the M-by-N matrix to be factored.*          On exit, the factors L and U from the factorization*          A = P*L*U; the unit diagonal elements of L are not stored.**  LDA     (input) INTEGER*          The leading dimension of the array A.  LDA >= max(1,M).**  IPIV    (output) INTEGER array, dimension (min(M,N))*          The pivot indices; for 1 <= i <= min(M,N), row i of the*          matrix was interchanged with row IPIV(i).**  INFO    (output) INTEGER*          = 0:  successful exit*          < 0:  if INFO = -i, the i-th argument had an illegal value*          > 0:  if INFO = i, U(i,i) is exactly zero. The factorization*                has been completed, but the factor U is exactly*                singular, and division by zero will occur if it is used*                to solve a system of equations.**  =====================================================================**     ..*     .. External Subroutines ..      EXTERNAL           XERBLA, ATL_F77WRAP_SGETRF*     ..*     .. Intrinsic Functions ..      INTRINSIC          MAX, MIN*     ..*     .. Executable Statements ..**     Test the input parameters.*      INFO = 0      IF( M.LT.0 ) THEN         INFO = -1      ELSE IF( N.LT.0 ) THEN         INFO = -2      ELSE IF( LDA.LT.MAX( 1, M ) ) THEN         INFO = -4      END IF      IF( INFO.NE.0 ) THEN         CALL XERBLA( 'SGETRF', -INFO )         RETURN      END IF*      CALL ATL_F77WRAP_SGETRF( M, N, A, LDA, IPIV, INFO )*      RETURN      END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?