--- rpl/lapack/lapack/zsysv_aa_2stage.f 2018/05/29 14:57:21 1.1
+++ rpl/lapack/lapack/zsysv_aa_2stage.f 2023/08/07 08:39:38 1.3
@@ -7,11 +7,11 @@
*
*> \htmlonly
*> Download ZSYSV_AA_2STAGE + dependencies
-*>
+*>
*> [TGZ]
-*>
+*>
*> [ZIP]
-*>
+*>
*> [TXT]
*> \endhtmlonly
*
@@ -43,8 +43,8 @@
*> matrices.
*>
*> Aasen's 2-stage algorithm is used to factor A as
-*> A = U * T * U**H, if UPLO = 'U', or
-*> A = L * T * L**H, if UPLO = 'L',
+*> A = U**T * T * U, if UPLO = 'U', or
+*> A = L * T * L**T, if UPLO = 'L',
*> where U (or L) is a product of permutation and unit upper (lower)
*> triangular matrices, and T is symmetric and band. The matrix T is
*> then LU-factored with partial pivoting. The factored form of A
@@ -105,6 +105,7 @@
*>
*> \param[in] LTB
*> \verbatim
+*> LTB is INTEGER
*> The size of the array TB. LTB >= 4*N, internally
*> used to select NB such that LTB >= (3*NB+1)*N.
*>
@@ -124,7 +125,7 @@
*>
*> \param[out] IPIV2
*> \verbatim
-*> IPIV is INTEGER array, dimension (N)
+*> IPIV2 is INTEGER array, dimension (N)
*> On exit, it contains the details of the interchanges, i.e.,
*> the row and column k of T were interchanged with the
*> row and column IPIV(k).
@@ -150,6 +151,7 @@
*>
*> \param[in] LWORK
*> \verbatim
+*> LWORK is INTEGER
*> The size of WORK. LWORK >= N, internally used to select NB
*> such that LWORK >= N*NB.
*>
@@ -175,8 +177,6 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date November 2017
-*
*> \ingroup complex16SYcomputational
*
* =====================================================================
@@ -184,10 +184,9 @@
$ IPIV, IPIV2, B, LDB, WORK, LWORK,
$ INFO )
*
-* -- LAPACK computational routine (version 3.8.0) --
+* -- LAPACK computational routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* November 2017
*
IMPLICIT NONE
*
@@ -233,19 +232,18 @@
INFO = -3
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
INFO = -5
+ ELSE IF( LTB.LT.( 4*N ) .AND. .NOT.TQUERY ) THEN
+ INFO = -7
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
INFO = -11
+ ELSE IF( LWORK.LT.N .AND. .NOT.WQUERY ) THEN
+ INFO = -13
END IF
*
IF( INFO.EQ.0 ) THEN
CALL ZSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, -1, IPIV,
$ IPIV2, WORK, -1, INFO )
LWKOPT = INT( WORK(1) )
- IF( LTB.LT.INT( TB(1) ) .AND. .NOT.TQUERY ) THEN
- INFO = -7
- ELSE IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN
- INFO = -13
- END IF
END IF
*
IF( INFO.NE.0 ) THEN
@@ -256,7 +254,7 @@
END IF
*
*
-* Compute the factorization A = U*T*U**H or A = L*T*L**H.
+* Compute the factorization A = U**T*T*U or A = L*T*L**T.
*
CALL ZSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, LTB, IPIV, IPIV2,
$ WORK, LWORK, INFO )