Diff for /rpl/lapack/lapack/zhesv_aa.f between versions 1.2 and 1.6

version 1.2, 2017/06/17 11:06:48 version 1.6, 2023/08/07 08:39:24
Line 42 Line 42
 *> matrices.  *> matrices.
 *>  *>
 *> Aasen's algorithm is used to factor A as  *> Aasen's algorithm is used to factor A as
 *>    A = U * T * U**H,  if UPLO = 'U', or  *>    A = U**H * T * U,  if UPLO = 'U', or
 *>    A = L * T * L**H,  if UPLO = 'L',  *>    A = L * T * L**H,  if UPLO = 'L',
 *> where U (or L) is a product of permutation and unit upper (lower)  *> where U (or L) is a product of permutation and unit upper (lower)
 *> triangular matrices, and T is Hermitian and tridiagonal. The factored form  *> triangular matrices, and T is Hermitian and tridiagonal. The factored form
Line 86 Line 86
 *>  *>
 *>          On exit, if INFO = 0, the tridiagonal matrix T and the  *>          On exit, if INFO = 0, the tridiagonal matrix T and the
 *>          multipliers used to obtain the factor U or L from the  *>          multipliers used to obtain the factor U or L from the
 *>          factorization A = U*T*U**H or A = L*T*L**H as computed by  *>          factorization A = U**H*T*U or A = L*T*L**H as computed by
 *>          ZHETRF_AA.  *>          ZHETRF_AA.
 *> \endverbatim  *> \endverbatim
 *>  *>
Line 129 Line 129
 *>          The length of WORK.  LWORK >= MAX(1,2*N,3*N-2), and for best   *>          The length of WORK.  LWORK >= MAX(1,2*N,3*N-2), and for best 
 *>          performance LWORK >= max(1,N*NB), where NB is the optimal  *>          performance LWORK >= max(1,N*NB), where NB is the optimal
 *>          blocksize for ZHETRF.  *>          blocksize for ZHETRF.
 *>          for LWORK < N, TRS will be done with Level BLAS 2  
 *>          for LWORK >= N, TRS will be done with Level BLAS 3  
 *>  *>
 *>          If LWORK = -1, then a workspace query is assumed; the routine  *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns  *>          only calculates the optimal size of the WORK array, returns
Line 156 Line 154
 *> \author Univ. of Colorado Denver  *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.  *> \author NAG Ltd.
 *  *
 *> \date December 2016  
 *  
 *> \ingroup complex16HEsolve  *> \ingroup complex16HEsolve
 *  *
 *  =====================================================================  *  =====================================================================
       SUBROUTINE ZHESV_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,        SUBROUTINE ZHESV_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,
      $                     LWORK, INFO )       $                     LWORK, INFO )
 *  *
 *  -- LAPACK driver routine (version 3.7.0) --  *  -- LAPACK driver routine --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     December 2016  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          UPLO        CHARACTER          UPLO
Line 190 Line 185
       EXTERNAL           LSAME, ILAENV        EXTERNAL           LSAME, ILAENV
 *     ..  *     ..
 *     .. External Subroutines ..  *     .. External Subroutines ..
       EXTERNAL           XERBLA, ZHETRF, ZHETRS, ZHETRS2        EXTERNAL           XERBLA, ZHETRF_AA, ZHETRS_AA
 *     ..  *     ..
 *     .. Intrinsic Functions ..  *     .. Intrinsic Functions ..
       INTRINSIC          MAX        INTRINSIC          MAX
Line 211 Line 206
          INFO = -5           INFO = -5
       ELSE IF( LDB.LT.MAX( 1, N ) ) THEN        ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
          INFO = -8           INFO = -8
         ELSE IF( LWORK.LT.MAX(2*N, 3*N-2) .AND. .NOT.LQUERY ) THEN
            INFO = -10
       END IF        END IF
 *  *
       IF( INFO.EQ.0 ) THEN        IF( INFO.EQ.0 ) THEN
Line 221 Line 218
          LWKOPT_HETRS = INT( WORK(1) )           LWKOPT_HETRS = INT( WORK(1) )
          LWKOPT = MAX( LWKOPT_HETRF, LWKOPT_HETRS )           LWKOPT = MAX( LWKOPT_HETRF, LWKOPT_HETRS )
          WORK( 1 ) = LWKOPT           WORK( 1 ) = LWKOPT
          IF( LWORK.LT.LWKOPT .AND. .NOT.LQUERY ) THEN  
              INFO = -10  
          END IF  
       END IF        END IF
 *  *
       IF( INFO.NE.0 ) THEN        IF( INFO.NE.0 ) THEN
Line 233 Line 227
          RETURN           RETURN
       END IF        END IF
 *  *
 *     Compute the factorization A = U*T*U**H or A = L*T*L**H.  *     Compute the factorization A = U**H*T*U or A = L*T*L**H.
 *  *
       CALL ZHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )        CALL ZHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
       IF( INFO.EQ.0 ) THEN        IF( INFO.EQ.0 ) THEN

Removed from v.1.2  
changed lines
  Added in v.1.6


CVSweb interface <joel.bertrand@systella.fr>