zpotri.f

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

F
102
字号
      SUBROUTINE ZPOTRI( UPLO, N, A, LDA, INFO )**  -- LAPACK routine (version 3.0) --*     Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,*     Courant Institute, Argonne National Lab, and Rice University*     March 31, 1993**  -- Modified by R. Clint Whaley for ATLAS Fortran77 LAPACK interface,*     2001***     .. Scalar Arguments ..      CHARACTER          UPLO      INTEGER            INFO, LDA, N*     ..*     .. Array Arguments ..      COMPLEX*16         A( LDA, * )*     ..**  Purpose*  =======**  ZPOTRI computes the inverse of a complex Hermitian positive definite*  matrix A using the Cholesky factorization A = U**H*U or A = L*L**H*  computed by ZPOTRF.**  Arguments*  =========**  UPLO    (input) CHARACTER*1*          = 'U':  Upper triangle of A is stored;*          = 'L':  Lower triangle of A is stored.**  N       (input) INTEGER*          The order of the matrix A.  N >= 0.**  A       (input/output) COMPLEX*16 array, dimension (LDA,N)*          On entry, the triangular factor U or L from the Cholesky*          factorization A = U**H*U or A = L*L**H, as computed by*          ZPOTRF.*          On exit, the upper or lower triangle of the (Hermitian)*          inverse of A, overwriting the input factor U or L.**  LDA     (input) INTEGER*          The leading dimension of the array A.  LDA >= max(1,N).**  INFO    (output) INTEGER*          = 0:  successful exit*          < 0:  if INFO = -i, the i-th argument had an illegal value*          > 0:  if INFO = i, the (i,i) element of the factor U or L is*                zero, and the inverse could not be computed.**  =====================================================================**     .. External Functions ..      LOGICAL            LSAME      EXTERNAL           LSAME*     ..*     .. External Subroutines ..      EXTERNAL           XERBLA, ZLAUUM, ZTRTRI*     ..*     .. Intrinsic Functions ..      INTRINSIC          MAX*     ..*     .. Executable Statements ..**     Test the input parameters.*      INFO = 0      IF( .NOT.LSAME( UPLO, 'U' ) .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN         INFO = -1      ELSE IF( N.LT.0 ) THEN         INFO = -2      ELSE IF( LDA.LT.MAX( 1, N ) ) THEN         INFO = -4      END IF      IF( INFO.NE.0 ) THEN         CALL XERBLA( 'ZPOTRI', -INFO )         RETURN      END IF**     Quick return if possible*      IF( N.EQ.0 )     $   RETURN**     Invert the triangular Cholesky factor U or L.*      CALL ZTRTRI( UPLO, 'Non-unit', N, A, LDA, INFO )      IF( INFO.GT.0 )     $   RETURN**     Form inv(U)*inv(U)' or inv(L)'*inv(L).*      CALL ZLAUUM( UPLO, N, A, LDA, INFO )*      RETURN**     End of ZPOTRI*      END

⌨️ 快捷键说明

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