Merging changes
authorJulie <julie@cs.utk.edu>
Fri, 11 Nov 2016 06:08:21 +0000 (00:08 -0600)
committerJulie <julie@cs.utk.edu>
Fri, 11 Nov 2016 06:08:21 +0000 (00:08 -0600)
cosmetic changes

30 files changed:
1  2 
SRC/CMakeLists.txt
SRC/chesv_aa.f
SRC/chetrf_aa.f
SRC/chetrs_aa.f
SRC/chetrs_aa_REMOTE_88628.f
SRC/chetrs_aa_REMOTE_88868.f
SRC/clahef_aa.f
SRC/dlasyf_aa.f
SRC/dsysv_aa.f
SRC/dsytrs_aa.f
SRC/slasyf_aa.f
SRC/ssysv_aa.f
SRC/ssytrs_aa.f
SRC/zhesv_aa.f
SRC/zhetrs_aa.f
SRC/zhetrs_aa_REMOTE_88959.f
SRC/zlahef_aa.f
TESTING/LIN/cchkaa.f
TESTING/LIN/cdrvhe_aa.f
TESTING/LIN/chet01_aa.f
TESTING/LIN/dchkaa.f
TESTING/LIN/dchksy_aa.f
TESTING/LIN/ddrvsy_aa.f
TESTING/LIN/schkaa.f
TESTING/LIN/schksy_aa.f
TESTING/LIN/sdrvsy_aa.f
TESTING/LIN/zchkaa.f
TESTING/LIN/zchkhe_aa.f
TESTING/LIN/zdrvhe_aa.f
TESTING/LIN/zhet01_aa.f

Simple merge
diff --cc SRC/chesv_aa.f
Simple merge
diff --cc SRC/chetrf_aa.f
Simple merge
diff --cc SRC/chetrs_aa.f
index f3ef27a,0000000..1544f3c
mode 100644,000000..100644
--- /dev/null
@@@ -1,295 -1,0 +1,295 @@@
- * 
 +*> \brief \b CHETRS_AA
 +*
 +*  =========== DOCUMENTATION ===========
 +*
 +* Online html documentation available at
 +*            http://www.netlib.org/lapack/explore-html/
 +*
 +*> \htmlonly
 +*> Download CHETRS_AA + dependencies
 +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/chetrs_aa.f">
 +*> [TGZ]</a>
 +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/chetrs_aa.f">
 +*> [ZIP]</a>
 +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetrs_aa.f">
 +*> [TXT]</a>
 +*> \endhtmlonly
 +*
 +*  Definition:
 +*  ===========
 +*
 +*       SUBROUTINE CHETRS_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
 +*                                WORK, LWORK, INFO )
 +*
 +*       .. Scalar Arguments ..
 +*       CHARACTER          UPLO
 +*       INTEGER            N, NRHS, LDA, LDB, LWORK, INFO
 +*       ..
 +*       .. Array Arguments ..
 +*       INTEGER            IPIV( * )
 +*       COMPLEX   A( LDA, * ), B( LDB, * ), WORK( * )
 +*       ..
++*
 +*
 +*> \par Purpose:
 +*  =============
 +*>
 +*> \verbatim
 +*>
 +*> CHETRS_AA solves a system of linear equations A*X = B with a real
 +*> hermitian matrix A using the factorization A = U*T*U**T or
 +*> A = L*T*L**T computed by CHETRF_AA.
 +*> \endverbatim
 +*
 +*  Arguments:
 +*  ==========
 +*
 +*> \param[in] UPLO
 +*> \verbatim
 +*>          UPLO is CHARACTER*1
 +*>          Specifies whether the details of the factorization are stored
 +*>          as an upper or lower triangular matrix.
 +*>          = 'U':  Upper triangular, form is A = U*T*U**T;
 +*>          = 'L':  Lower triangular, form is A = L*T*L**T.
 +*> \endverbatim
 +*>
 +*> \param[in] N
 +*> \verbatim
 +*>          N is INTEGER
 +*>          The order of the matrix A.  N >= 0.
 +*> \endverbatim
 +*>
 +*> \param[in] NRHS
 +*> \verbatim
 +*>          NRHS is INTEGER
 +*>          The number of right hand sides, i.e., the number of columns
 +*>          of the matrix B.  NRHS >= 0.
 +*> \endverbatim
 +*>
 +*> \param[in,out] A
 +*> \verbatim
 +*>          A is COMPLEX array, dimension (LDA,N)
 +*>          Details of factors computed by CHETRF_AA.
 +*> \endverbatim
 +*>
 +*> \param[in] LDA
 +*> \verbatim
 +*>          LDA is INTEGER
 +*>          The leading dimension of the array A.  LDA >= max(1,N).
 +*> \endverbatim
 +*>
 +*> \param[in] IPIV
 +*> \verbatim
 +*>          IPIV is INTEGER array, dimension (N)
 +*>          Details of the interchanges as computed by CHETRF_AA.
 +*> \endverbatim
 +*>
 +*> \param[in,out] B
 +*> \verbatim
 +*>          B is COMPLEX array, dimension (LDB,NRHS)
 +*>          On entry, the right hand side matrix B.
 +*>          On exit, the solution matrix X.
 +*> \endverbatim
 +*>
 +*> \param[in] LDB
 +*> \verbatim
 +*>          LDB is INTEGER
 +*>          The leading dimension of the array B.  LDB >= max(1,N).
 +*> \endverbatim
 +*>
 +*> \param[in] WORK
 +*> \verbatim
 +*>          WORK is DOUBLE array, dimension (MAX(1,LWORK))
 +*> \endverbatim
 +*>
 +*> \param[in] LWORK
 +*> \verbatim
 +*>          LWORK is INTEGER, LWORK >= 3*N-2.
 +*>
 +*> \param[out] INFO
 +*> \verbatim
 +*>          INFO is INTEGER
 +*>          = 0:  successful exit
 +*>          < 0:  if INFO = -i, the i-th argument had an illegal value
 +*> \endverbatim
 +*
 +*  Authors:
 +*  ========
 +*
 +*> \author Univ. of Tennessee
 +*> \author Univ. of California Berkeley
 +*> \author Univ. of Colorado Denver
 +*> \author NAG Ltd.
 +*
 +*> \date November 2016
 +*
 +*> \ingroup complexHEcomputational
 +*
 +*  =====================================================================
 +      SUBROUTINE CHETRS_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
 +     $                         WORK, LWORK, INFO )
 +*
 +*  -- LAPACK computational routine (version 3.7.0) --
 +*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 +*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 +*     November 2016
 +*
 +      IMPLICIT NONE
 +*
 +*     .. Scalar Arguments ..
 +      CHARACTER          UPLO
 +      INTEGER            N, NRHS, LDA, LDB, LWORK, INFO
 +*     ..
 +*     .. Array Arguments ..
 +      INTEGER            IPIV( * )
 +      COMPLEX   A( LDA, * ), B( LDB, * ), WORK( * )
 +*     ..
 +*
 +*  =====================================================================
 +*
 +      COMPLEX   ONE
 +      PARAMETER          ( ONE = 1.0E+0 )
 +*     ..
 +*     .. Local Scalars ..
 +      LOGICAL            LQUERY, UPPER
 +      INTEGER            K, KP, LWKOPT
 +*     ..
 +*     .. External Functions ..
 +      LOGICAL            LSAME
 +      EXTERNAL           LSAME
 +*     ..
 +*     .. External Subroutines ..
 +      EXTERNAL           CGTSV, CSWAP, CTRSM, XERBLA
 +*     ..
 +*     .. Intrinsic Functions ..
 +      INTRINSIC          MAX
 +*     ..
 +*     .. Executable Statements ..
 +*
 +      INFO = 0
 +      UPPER = LSAME( UPLO, 'U' )
 +      LQUERY = ( LWORK.EQ.-1 )
 +      IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
 +         INFO = -1
 +      ELSE IF( N.LT.0 ) THEN
 +         INFO = -2
 +      ELSE IF( NRHS.LT.0 ) THEN
 +         INFO = -3
 +      ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
 +         INFO = -5
 +      ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
 +         INFO = -8
 +      ELSE IF( LWORK.LT.(3*N-2) .AND. .NOT.LQUERY ) THEN
 +         INFO = -10
 +      END IF
 +      IF( INFO.NE.0 ) THEN
 +         CALL XERBLA( 'CHETRS_AA', -INFO )
 +         RETURN
 +      ELSE IF( LQUERY ) THEN
 +         LWKOPT = (3*N-2)
 +         WORK( 1 ) = LWKOPT
 +         RETURN
 +      END IF
 +*
 +*     Quick return if possible
 +*
 +      IF( N.EQ.0 .OR. NRHS.EQ.0 )
 +     $   RETURN
 +*
 +      IF( UPPER ) THEN
 +*
 +*        Solve A*X = B, where A = U*T*U**T.
 +*
 +*        P**T * B
 +*
 +         K = 1
 +         DO WHILE ( K.LE.N )
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $          CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +            K = K + 1
 +         END DO
 +*
 +*        Compute (U \P**T * B) -> B    [ (U \P**T * B) ]
 +*
 +         CALL CTRSM('L', 'U', 'C', 'U', N-1, NRHS, ONE, A( 1, 2 ), LDA,
 +     $               B( 2, 1 ), LDB)
 +*
 +*        Compute T \ B -> B   [ T \ (U \P**T * B) ]
 +*
 +         CALL CLACPY( 'F', 1, N, A(1, 1), LDA+1, WORK(N), 1)
 +         IF( N.GT.1 ) THEN
 +             CALL CLACPY( 'F', 1, N-1, A( 1, 2 ), LDA+1, WORK( 2*N ), 1)
 +             CALL CLACPY( 'F', 1, N-1, A( 1, 2 ), LDA+1, WORK( 1 ), 1)
 +             CALL CLACGV( N-1, WORK( 1 ), 1 )
 +         END IF
 +         CALL CGTSV(N, NRHS, WORK(1), WORK(N), WORK(2*N), B, LDB,
 +     $              INFO)
 +*
 +*        Compute (U**T \ B) -> B   [ U**T \ (T \ (U \P**T * B) ) ]
 +*
 +         CALL CTRSM( 'L', 'U', 'N', 'U', N-1, NRHS, ONE, A( 1, 2 ), LDA,
 +     $               B(2, 1), LDB)
 +*
 +*        Pivot, P * B  [ P * (U**T \ (T \ (U \P**T * B) )) ]
 +*
 +         K = N
 +         DO WHILE ( K.GE.1 )
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $         CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +            K = K - 1
 +         END DO
 +*
 +      ELSE
 +*
 +*        Solve A*X = B, where A = L*T*L**T.
 +*
 +*        Pivot, P**T * B
 +*
 +         K = 1
 +         DO WHILE ( K.LE.N )
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $         CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +            K = K + 1
 +         END DO
 +*
 +*        Compute (L \P**T * B) -> B    [ (L \P**T * B) ]
 +*
 +         CALL CTRSM( 'L', 'L', 'N', 'U', N-1, NRHS, ONE, A( 2, 1), LDA,
 +     $               B(2, 1), LDB)
 +*
 +*        Compute T \ B -> B   [ T \ (L \P**T * B) ]
 +*
 +         CALL CLACPY( 'F', 1, N, A(1, 1), LDA+1, WORK(N), 1)
 +         IF( N.GT.1 ) THEN
 +             CALL CLACPY( 'F', 1, N-1, A( 2, 1 ), LDA+1, WORK( 1 ), 1)
 +             CALL CLACPY( 'F', 1, N-1, A( 2, 1 ), LDA+1, WORK( 2*N ), 1)
 +             CALL CLACGV( N-1, WORK( 2*N ), 1 )
 +         END IF
 +         CALL CGTSV(N, NRHS, WORK(1), WORK(N), WORK(2*N), B, LDB,
 +     $              INFO)
 +*
 +*        Compute (L**T \ B) -> B   [ L**T \ (T \ (L \P**T * B) ) ]
 +*
 +         CALL CTRSM( 'L', 'L', 'C', 'U', N-1, NRHS, ONE, A( 2, 1 ), LDA,
 +     $              B( 2, 1 ), LDB)
 +*
 +*        Pivot, P * B  [ P * (L**T \ (T \ (L \P**T * B) )) ]
 +*
 +         K = N
 +         DO WHILE ( K.GE.1 )
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $         CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +            K = K - 1
 +         END DO
 +*
 +      END IF
 +*
 +      RETURN
 +*
 +*     End of CHETRS_AA
 +*
 +      END
index 0000000,33f32fa..33f32fa
mode 000000,100644..100644
--- /dev/null
index 0000000,0000000..33f32fa
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,292 @@@
++*> \brief \b CHETRS_AASEN
++*
++*  =========== DOCUMENTATION ===========
++*
++* Online html documentation available at
++*            http://www.netlib.org/lapack/explore-html/
++*
++*> \htmlonly
++*> Download CHETRS_AASEN + dependencies
++*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/chetrs_aasen.f">
++*> [TGZ]</a>
++*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/chetrs_aasen.f">
++*> [ZIP]</a>
++*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/chetrs_aasen.f">
++*> [TXT]</a>
++*> \endhtmlonly
++*
++*  Definition:
++*  ===========
++*
++*       SUBROUTINE CHETRS_AASEN( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
++*                                WORK, LWORK, INFO )
++*
++*       .. Scalar Arguments ..
++*       CHARACTER          UPLO
++*       INTEGER            N, NRHS, LDA, LDB, LWORK, INFO
++*       ..
++*       .. Array Arguments ..
++*       INTEGER            IPIV( * )
++*       COMPLEX   A( LDA, * ), B( LDB, * ), WORK( * )
++*       ..
++*
++*
++*> \par Purpose:
++*  =============
++*>
++*> \verbatim
++*>
++*> CHETRS_AASEN solves a system of linear equations A*X = B with a real
++*> hermitian matrix A using the factorization A = U*T*U**T or
++*> A = L*T*L**T computed by CHETRF_AASEN.
++*> \endverbatim
++*
++*  Arguments:
++*  ==========
++*
++*> \param[in] UPLO
++*> \verbatim
++*>          UPLO is CHARACTER*1
++*>          Specifies whether the details of the factorization are stored
++*>          as an upper or lower triangular matrix.
++*>          = 'U':  Upper triangular, form is A = U*T*U**T;
++*>          = 'L':  Lower triangular, form is A = L*T*L**T.
++*> \endverbatim
++*>
++*> \param[in] N
++*> \verbatim
++*>          N is INTEGER
++*>          The order of the matrix A.  N >= 0.
++*> \endverbatim
++*>
++*> \param[in] NRHS
++*> \verbatim
++*>          NRHS is INTEGER
++*>          The number of right hand sides, i.e., the number of columns
++*>          of the matrix B.  NRHS >= 0.
++*> \endverbatim
++*>
++*> \param[in,out] A
++*> \verbatim
++*>          A is COMPLEX array, dimension (LDA,N)
++*>          Details of factors computed by CHETRF_AASEN.
++*> \endverbatim
++*>
++*> \param[in] LDA
++*> \verbatim
++*>          LDA is INTEGER
++*>          The leading dimension of the array A.  LDA >= max(1,N).
++*> \endverbatim
++*>
++*> \param[in] IPIV
++*> \verbatim
++*>          IPIV is INTEGER array, dimension (N)
++*>          Details of the interchanges as computed by CHETRF_AASEN.
++*> \endverbatim
++*>
++*> \param[in,out] B
++*> \verbatim
++*>          B is COMPLEX array, dimension (LDB,NRHS)
++*>          On entry, the right hand side matrix B.
++*>          On exit, the solution matrix X.
++*> \endverbatim
++*>
++*> \param[in] LDB
++*> \verbatim
++*>          LDB is INTEGER
++*>          The leading dimension of the array B.  LDB >= max(1,N).
++*> \endverbatim
++*>
++*> \param[in] WORK
++*> \verbatim
++*>          WORK is DOUBLE array, dimension (MAX(1,LWORK))
++*> \endverbatim
++*>
++*> \param[in] LWORK
++*> \verbatim
++*>          LWORK is INTEGER, LWORK >= 3*N-2.
++*>
++*> \param[out] INFO
++*> \verbatim
++*>          INFO is INTEGER
++*>          = 0:  successful exit
++*>          < 0:  if INFO = -i, the i-th argument had an illegal value
++*> \endverbatim
++*
++*  Authors:
++*  ========
++*
++*> \author Univ. of Tennessee
++*> \author Univ. of California Berkeley
++*> \author Univ. of Colorado Denver
++*> \author NAG Ltd.
++*
++*> \date November 2016
++*
++*> \ingroup complexSYcomputational
++*
++*  @generated from zhetrs_aasen.f, fortran z -> c, Fri Sep 23 00:09:52 2016
++*
++*  =====================================================================
++      SUBROUTINE CHETRS_AASEN( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
++     $                         WORK, LWORK, INFO )
++*
++*  -- LAPACK computational routine (version 3.4.0) --
++*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
++*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
++*     November 2016
++*
++      IMPLICIT NONE
++*
++*     .. Scalar Arguments ..
++      CHARACTER          UPLO
++      INTEGER            N, NRHS, LDA, LDB, LWORK, INFO
++*     ..
++*     .. Array Arguments ..
++      INTEGER            IPIV( * )
++      COMPLEX   A( LDA, * ), B( LDB, * ), WORK( * )
++*     ..
++*
++*  =====================================================================
++*
++      COMPLEX   ONE
++      PARAMETER          ( ONE = 1.0E+0 )
++*     ..
++*     .. Local Scalars ..
++      LOGICAL            UPPER
++      INTEGER            K, KP
++*     ..
++*     .. External Functions ..
++      LOGICAL            LSAME
++      EXTERNAL           LSAME
++*     ..
++*     .. External Subroutines ..
++      EXTERNAL           CGTSV, CSWAP, CTRSM, XERBLA
++*     ..
++*     .. Intrinsic Functions ..
++      INTRINSIC          MAX
++*     ..
++*     .. Executable Statements ..
++*
++      INFO = 0
++      UPPER = LSAME( UPLO, 'U' )
++      IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
++         INFO = -1
++      ELSE IF( N.LT.0 ) THEN
++         INFO = -2
++      ELSE IF( NRHS.LT.0 ) THEN
++         INFO = -3
++      ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
++         INFO = -5
++      ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
++         INFO = -8
++      ELSE IF( LWORK.LT.(3*N-2) ) THEN
++         INFO = -10
++      END IF
++      IF( INFO.NE.0 ) THEN
++         CALL XERBLA( 'CHETRS_AASEN', -INFO )
++         RETURN
++      END IF
++*
++*     Quick return if possible
++*
++      IF( N.EQ.0 .OR. NRHS.EQ.0 )
++     $   RETURN
++*
++      IF( UPPER ) THEN
++*
++*        Solve A*X = B, where A = U*T*U**T.
++*
++*        P**T * B
++*
++         K = 1
++         DO WHILE ( K.LE.N )
++            KP = IPIV( K )
++            IF( KP.NE.K )
++     $          CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
++            K = K + 1
++         END DO
++*
++*        Compute (U \P**T * B) -> B    [ (U \P**T * B) ]
++*
++         CALL CTRSM('L', 'U', 'C', 'U', N-1, NRHS, ONE, A( 1, 2 ), LDA,
++     $               B( 2, 1 ), LDB)
++*
++*        Compute T \ B -> B   [ T \ (U \P**T * B) ]
++*
++         CALL CLACPY( 'F', 1, N, A(1, 1), LDA+1, WORK(N), 1)
++         IF( N.GT.1 ) THEN
++             CALL CLACPY( 'F', 1, N-1, A( 1, 2 ), LDA+1, WORK( 2*N ), 1)
++             CALL CLACPY( 'F', 1, N-1, A( 1, 2 ), LDA+1, WORK( 1 ), 1)
++             CALL CLACGV( N-1, WORK( 1 ), 1 )
++         END IF
++         CALL CGTSV(N, NRHS, WORK(1), WORK(N), WORK(2*N), B, LDB,
++     $              INFO)
++*
++*        Compute (U**T \ B) -> B   [ U**T \ (T \ (U \P**T * B) ) ]
++*
++         CALL CTRSM( 'L', 'U', 'N', 'U', N-1, NRHS, ONE, A( 1, 2 ), LDA,
++     $               B(2, 1), LDB)
++*
++*        Pivot, P * B  [ P * (U**T \ (T \ (U \P**T * B) )) ]
++*
++         K = N
++         DO WHILE ( K.GE.1 )
++            KP = IPIV( K )
++            IF( KP.NE.K )
++     $         CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
++            K = K - 1
++         END DO
++*
++      ELSE
++*
++*        Solve A*X = B, where A = L*T*L**T.
++*
++*        Pivot, P**T * B
++*
++         K = 1
++         DO WHILE ( K.LE.N )
++            KP = IPIV( K )
++            IF( KP.NE.K )
++     $         CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
++            K = K + 1
++         END DO
++*
++*        Compute (L \P**T * B) -> B    [ (L \P**T * B) ]
++*
++         CALL CTRSM( 'L', 'L', 'N', 'U', N-1, NRHS, ONE, A( 2, 1), LDA,
++     $               B(2, 1), LDB)
++*
++*        Compute T \ B -> B   [ T \ (L \P**T * B) ]
++*
++         CALL CLACPY( 'F', 1, N, A(1, 1), LDA+1, WORK(N), 1)
++         IF( N.GT.1 ) THEN
++             CALL CLACPY( 'F', 1, N-1, A( 2, 1 ), LDA+1, WORK( 1 ), 1)
++             CALL CLACPY( 'F', 1, N-1, A( 2, 1 ), LDA+1, WORK( 2*N ), 1)
++             CALL CLACGV( N-1, WORK( 2*N ), 1 )
++         END IF
++         CALL CGTSV(N, NRHS, WORK(1), WORK(N), WORK(2*N), B, LDB,
++     $              INFO)
++*
++*        Compute (L**T \ B) -> B   [ L**T \ (T \ (L \P**T * B) ) ]
++*
++         CALL CTRSM( 'L', 'L', 'C', 'U', N-1, NRHS, ONE, A( 2, 1 ), LDA,
++     $              B( 2, 1 ), LDB)
++*
++*        Pivot, P * B  [ P * (L**T \ (T \ (L \P**T * B) )) ]
++*
++         K = N
++         DO WHILE ( K.GE.1 )
++            KP = IPIV( K )
++            IF( KP.NE.K )
++     $         CALL CSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
++            K = K - 1
++         END DO
++*
++      END IF
++*
++      RETURN
++*
++*     End of CHETRS_AASEN
++*
++      END
diff --cc SRC/clahef_aa.f
Simple merge
diff --cc SRC/dlasyf_aa.f
Simple merge
diff --cc SRC/dsysv_aa.f
Simple merge
diff --cc SRC/dsytrs_aa.f
Simple merge
diff --cc SRC/slasyf_aa.f
Simple merge
diff --cc SRC/ssysv_aa.f
Simple merge
diff --cc SRC/ssytrs_aa.f
           END IF
           CALL SGTSV(N, NRHS, WORK(1), WORK(N), WORK(2*N), B, LDB,
       $              INFO)
- *      
 -*
++*     
  *
  *        Compute (U**T \ B) -> B   [ U**T \ (T \ (U \P**T * B) ) ]
  *
diff --cc SRC/zhesv_aa.f
Simple merge
diff --cc SRC/zhetrs_aa.f
index 4cfdec6,0000000..58237d1
mode 100644,000000..100644
--- /dev/null
@@@ -1,287 -1,0 +1,288 @@@
- * 
 +*> \brief \b ZHETRS_AA
 +*
 +*  =========== DOCUMENTATION ===========
 +*
 +* Online html documentation available at
 +*            http://www.netlib.org/lapack/explore-html/
 +*
 +*> \htmlonly
 +*> Download ZHETRS_AA + dependencies
 +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhetrs_aa.f">
 +*> [TGZ]</a>
 +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhetrs_aa.f">
 +*> [ZIP]</a>
 +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetrs_aa.f">
 +*> [TXT]</a>
 +*> \endhtmlonly
 +*
 +*  Definition:
 +*  ===========
 +*
 +*       SUBROUTINE ZHETRS_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
 +*                                WORK, LWORK, INFO )
 +*
 +*       .. Scalar Arguments ..
 +*       CHARACTER          UPLO
 +*       INTEGER            N, NRHS, LDA, LDB, LWORK, INFO
 +*       ..
 +*       .. Array Arguments ..
 +*       INTEGER            IPIV( * )
 +*       COMPLEX*16   A( LDA, * ), B( LDB, * ), WORK( * )
 +*       ..
- *      
++*
++*
 +*
 +*> \par Purpose:
 +*  =============
 +*>
 +*> \verbatim
 +*>
 +*> ZHETRS_AA solves a system of linear equations A*X = B with a real
 +*> hermitian matrix A using the factorization A = U*T*U**T or
 +*> A = L*T*L**T computed by ZHETRF_AA.
 +*> \endverbatim
 +*
 +*  Arguments:
 +*  ==========
 +*
 +*> \param[in] UPLO
 +*> \verbatim
 +*>          UPLO is CHARACTER*1
 +*>          Specifies whether the details of the factorization are stored
 +*>          as an upper or lower triangular matrix.
 +*>          = 'U':  Upper triangular, form is A = U*T*U**T;
 +*>          = 'L':  Lower triangular, form is A = L*T*L**T.
 +*> \endverbatim
 +*>
 +*> \param[in] N
 +*> \verbatim
 +*>          N is INTEGER
 +*>          The order of the matrix A.  N >= 0.
 +*> \endverbatim
 +*>
 +*> \param[in] NRHS
 +*> \verbatim
 +*>          NRHS is INTEGER
 +*>          The number of right hand sides, i.e., the number of columns
 +*>          of the matrix B.  NRHS >= 0.
 +*> \endverbatim
 +*>
 +*> \param[in,out] A
 +*> \verbatim
 +*>          A is COMPLEX*16 array, dimension (LDA,N)
 +*>          Details of factors computed by ZHETRF_AA.
 +*> \endverbatim
 +*>
 +*> \param[in] LDA
 +*> \verbatim
 +*>          LDA is INTEGER
 +*>          The leading dimension of the array A.  LDA >= max(1,N).
 +*> \endverbatim
 +*>
 +*> \param[in] IPIV
 +*> \verbatim
 +*>          IPIV is INTEGER array, dimension (N)
 +*>          Details of the interchanges as computed by ZHETRF_AA.
 +*> \endverbatim
 +*>
 +*> \param[in,out] B
 +*> \verbatim
 +*>          B is COMPLEX*16 array, dimension (LDB,NRHS)
 +*>          On entry, the right hand side matrix B.
 +*>          On exit, the solution matrix X.
 +*> \endverbatim
 +*>
 +*> \param[in] LDB
 +*> \verbatim
 +*>          LDB is INTEGER
 +*>          The leading dimension of the array B.  LDB >= max(1,N).
 +*> \endverbatim
 +*>
 +*> \param[in] WORK
 +*> \verbatim
 +*>          WORK is DOUBLE array, dimension (MAX(1,LWORK))
 +*> \endverbatim
 +*>
 +*> \param[in] LWORK
 +*> \verbatim
 +*>          LWORK is INTEGER, LWORK >= 3*N-2.
 +*>
 +*> \param[out] INFO
 +*> \verbatim
 +*>          INFO is INTEGER
 +*>          = 0:  successful exit
 +*>          < 0:  if INFO = -i, the i-th argument had an illegal value
 +*> \endverbatim
 +*
 +*  Authors:
 +*  ========
 +*
 +*> \author Univ. of Tennessee
 +*> \author Univ. of California Berkeley
 +*> \author Univ. of Colorado Denver
 +*> \author NAG Ltd.
 +*
 +*> \date November 2016
 +*
 +*> \ingroup complex16HEcomputational
 +*
 +*  =====================================================================
 +      SUBROUTINE ZHETRS_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
 +     $                         WORK, LWORK, INFO )
 +*
 +*  -- LAPACK computational routine (version 3.7.0) --
 +*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 +*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 +*     November 2016
 +*
 +      IMPLICIT NONE
 +*
 +*     .. Scalar Arguments ..
 +      CHARACTER          UPLO
 +      INTEGER            N, NRHS, LDA, LDB, LWORK, INFO
 +*     ..
 +*     .. Array Arguments ..
 +      INTEGER            IPIV( * )
 +      COMPLEX*16   A( LDA, * ), B( LDB, * ), WORK( * )
 +*     ..
 +*
 +*  =====================================================================
 +*
 +      COMPLEX*16   ONE
 +      PARAMETER          ( ONE = 1.0D+0 )
 +*     ..
 +*     .. Local Scalars ..
 +      LOGICAL            LQUERY, UPPER
 +      INTEGER            K, KP, LWKOPT
 +*     ..
 +*     .. External Functions ..
 +      LOGICAL            LSAME
 +      EXTERNAL           LSAME
 +*     ..
 +*     .. External Subroutines ..
 +      EXTERNAL           ZGTSV, ZSWAP, ZTRSM, XERBLA
 +*     ..
 +*     .. Intrinsic Functions ..
 +      INTRINSIC          MAX
 +*     ..
 +*     .. Executable Statements ..
 +*
 +      INFO = 0
 +      UPPER = LSAME( UPLO, 'U' )
 +      LQUERY = ( LWORK.EQ.-1 )
 +      IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
 +         INFO = -1
 +      ELSE IF( N.LT.0 ) THEN
 +         INFO = -2
 +      ELSE IF( NRHS.LT.0 ) THEN
 +         INFO = -3
 +      ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
 +         INFO = -5
 +      ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
 +         INFO = -8
 +      ELSE IF( LWORK.LT.(3*N-2) .AND. .NOT.LQUERY ) THEN
 +         INFO = -10
 +      END IF
 +      IF( INFO.NE.0 ) THEN
 +         CALL XERBLA( 'ZHETRS_AA', -INFO )
 +         RETURN
 +      ELSE IF( LQUERY ) THEN
 +         LWKOPT = (3*N-2)
 +         WORK( 1 ) = LWKOPT
 +         RETURN
 +      END IF
 +*
 +*     Quick return if possible
 +*
 +      IF( N.EQ.0 .OR. NRHS.EQ.0 )
 +     $   RETURN
 +*
 +      IF( UPPER ) THEN
 +*
 +*        Solve A*X = B, where A = U*T*U**T.
 +*
 +*        Pivot, P**T * B
 +*
 +         DO K = 1, N
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $          CALL ZSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +         END DO
 +*
 +*        Compute (U \P**T * B) -> B    [ (U \P**T * B) ]
 +*
 +         CALL ZTRSM('L', 'U', 'C', 'U', N-1, NRHS, ONE, A( 1, 2 ), LDA,
 +     $               B( 2, 1 ), LDB)
 +*
 +*        Compute T \ B -> B   [ T \ (U \P**T * B) ]
- *      
++*
 +         CALL ZLACPY( 'F', 1, N, A(1, 1), LDA+1, WORK(N), 1)
 +         IF( N.GT.1 ) THEN
 +             CALL ZLACPY( 'F', 1, N-1, A( 1, 2 ), LDA+1, WORK( 2*N ), 1)
 +             CALL ZLACPY( 'F', 1, N-1, A( 1, 2 ), LDA+1, WORK( 1 ), 1)
 +             CALL ZLACGV( N-1, WORK( 1 ), 1 )
 +         END IF
 +         CALL ZGTSV(N, NRHS, WORK(1), WORK(N), WORK(2*N), B, LDB,
 +     $              INFO)
- *      
++*
 +*        Compute (U**T \ B) -> B   [ U**T \ (T \ (U \P**T * B) ) ]
 +*
 +         CALL ZTRSM( 'L', 'U', 'N', 'U', N-1, NRHS, ONE, A( 1, 2 ), LDA,
 +     $               B(2, 1), LDB)
 +*
 +*        Pivot, P * B  [ P * (U**T \ (T \ (U \P**T * B) )) ]
 +*
 +         DO K = N, 1, -1
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $         CALL ZSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +         END DO
 +*
 +      ELSE
 +*
 +*        Solve A*X = B, where A = L*T*L**T.
 +*
 +*        Pivot, P**T * B
 +*
 +         DO K = 1, N
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $         CALL ZSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +         END DO
 +*
 +*        Compute (L \P**T * B) -> B    [ (L \P**T * B) ]
 +*
 +         CALL ZTRSM( 'L', 'L', 'N', 'U', N-1, NRHS, ONE, A( 2, 1 ), LDA,
 +     $               B(2, 1), LDB)
 +*
 +*        Compute T \ B -> B   [ T \ (L \P**T * B) ]
 +*
 +         CALL ZLACPY( 'F', 1, N, A(1, 1), LDA+1, WORK(N), 1)
 +         IF( N.GT.1 ) THEN
 +             CALL ZLACPY( 'F', 1, N-1, A( 2, 1 ), LDA+1, WORK( 1 ), 1)
 +             CALL ZLACPY( 'F', 1, N-1, A( 2, 1 ), LDA+1, WORK( 2*N ), 1)
 +             CALL ZLACGV( N-1, WORK( 2*N ), 1 )
 +         END IF
 +         CALL ZGTSV(N, NRHS, WORK(1), WORK(N), WORK(2*N), B, LDB,
 +     $              INFO)
++*
 +*        Compute (L**T \ B) -> B   [ L**T \ (T \ (L \P**T * B) ) ]
 +*
 +         CALL ZTRSM( 'L', 'L', 'C', 'U', N-1, NRHS, ONE, A( 2, 1 ), LDA,
 +     $              B( 2, 1 ), LDB)
 +*
 +*        Pivot, P * B  [ P * (L**T \ (T \ (L \P**T * B) )) ]
 +*
 +         DO K = N, 1, -1
 +            KP = IPIV( K )
 +            IF( KP.NE.K )
 +     $         CALL ZSWAP( NRHS, B( K, 1 ), LDB, B( KP, 1 ), LDB )
 +         END DO
 +*
 +      END IF
 +*
 +      RETURN
 +*
 +*     End of ZHETRS_AA
 +*
 +      END
index 0000000,6d2c73c..6d2c73c
mode 000000,100644..100644
--- /dev/null
diff --cc SRC/zlahef_aa.f
Simple merge
Simple merge
@@@ -464,11 -464,11 +464,11 @@@ c                     END I
                          K = 0
                       END IF
  *
 -*                    Check error code from CHESV_AASEN .
 +*                    Check error code from CHESV_AA .
- *                                      
+ *
                       IF( INFO.NE.K ) THEN
-                         CALL ALAERH( PATH, 'CHESV_AA', INFO, K, 
-      $                               UPLO, N, N, -1, -1, NRHS, 
 -                        CALL ALAERH( PATH, 'CHESV_AASEN', INFO, K,
++                        CALL ALAERH( PATH, 'CHESV_AA', INFO, K,
+      $                               UPLO, N, N, -1, -1, NRHS,
       $                               IMAT, NFAIL, NERRS, NOUT )
                          GO TO 120
                       ELSE IF( INFO.NE.0 ) THEN
  *                    Reconstruct matrix from factors and compute
  *                    residual.
  *
 -                     CALL CHET01_AASEN( UPLO, N, A, LDA, AFAC, LDA,
 +                     CALL CHET01_AA( UPLO, N, A, LDA, AFAC, LDA,
-      $                                  IWORK, AINV, LDA, RWORK, 
+      $                                  IWORK, AINV, LDA, RWORK,
       $                                  RESULT( 1 ) )
  *
  *                    Compute residual of the computed solution.
@@@ -8,7 -8,7 +8,7 @@@
  *  Definition:
  *  ===========
  *
- *       SUBROUTINE CHET01_AA( UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, 
 -*       SUBROUTINE CHET01_AASEN( UPLO, N, A, LDA, AFAC, LDAFAC, IPIV,
++*       SUBROUTINE CHET01_AA( UPLO, N, A, LDA, AFAC, LDAFAC, IPIV,
  *                          C, LDC, RWORK, RESID )
  *
  *       .. Scalar Arguments ..
           CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
  *
           IF( TSTCHK ) THEN
-             CALL DCHKSY_AA( DOTYPE, NN, NVAL, NNB2, NBVAL2, NNS, 
 -            CALL DCHKSY_AASEN( DOTYPE, NN, NVAL, NNB2, NBVAL2, NNS,
++            CALL DCHKSY_AA( DOTYPE, NN, NVAL, NNB2, NBVAL2, NNS,
       $                         NSVAL, THRESH, TSTERR, LDA,
-      $                         A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),  
+      $                         A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
       $                         B( 1, 1 ), B( 1, 2 ), B( 1, 3 ),
       $                         WORK, RWORK, IWORK, NOUT )
           ELSE
  *                 the block structure of D. AINV is a work array for
  *                 block factorization, LWORK is the length of AINV.
  *
 -                  SRNAMT = 'DSYTRF_AASEN'
 +                  SRNAMT = 'DSYTRF_AA'
                    LWORK = N*NB + N
-                   CALL DSYTRF_AA( UPLO, N, AFAC, LDA, IWORK, AINV, 
 -                  CALL DSYTRF_AASEN( UPLO, N, AFAC, LDA, IWORK, AINV,
++                  CALL DSYTRF_AA( UPLO, N, AFAC, LDA, IWORK, AINV,
       $                               LWORK, INFO )
  *
  *                 Adjust the expected value of INFO to account for
  *                 Check error code from DSYTRF and handle error.
  *
                    IF( INFO.NE.K ) THEN
-                      CALL ALAERH( PATH, 'DSYTRF_AA', INFO, K, UPLO, 
-      $                            N, N, -1, -1, NB, IMAT, NFAIL, NERRS, 
 -                     CALL ALAERH( PATH, 'DSYTRF_AASEN', INFO, K, UPLO,
++                     CALL ALAERH( PATH, 'DSYTRF_AA', INFO, K, UPLO,
+      $                            N, N, -1, -1, NB, IMAT, NFAIL, NERRS,
       $                            NOUT )
                    END IF
  *
       $                            B, LDA, ISEED, INFO )
                       CALL DLACPY( 'Full', N, NRHS, B, LDA, X, LDA )
  *
 -                     SRNAMT = 'DSYTRS_AASEN'
 +                     SRNAMT = 'DSYTRS_AA'
                       LWORK = 3*N-2
-                      CALL DSYTRS_AA( UPLO, N, NRHS, AFAC, LDA, 
 -                     CALL DSYTRS_AASEN( UPLO, N, NRHS, AFAC, LDA,
++                     CALL DSYTRS_AA( UPLO, N, NRHS, AFAC, LDA,
       $                                  IWORK, X, LDA, WORK, LWORK,
       $                                  INFO )
  *
@@@ -466,8 -466,8 +466,8 @@@ c                     END I
  *                    Reconstruct matrix from factors and compute
  *                    residual.
  *
 -                     CALL DSYT01_AASEN( UPLO, N, A, LDA, AFAC, LDA,
 +                     CALL DSYT01_AA( UPLO, N, A, LDA, AFAC, LDA,
-      $                                  IWORK, AINV, LDA, RWORK, 
+      $                                  IWORK, AINV, LDA, RWORK,
       $                                  RESULT( 1 ) )
  *
  *                    Compute residual of the computed solution.
Simple merge
  *                 the block structure of D. AINV is a work array for
  *                 block factorization, LWORK is the length of AINV.
  *
 -                  SRNAMT = 'SSYTRF_AASEN'
 +                  SRNAMT = 'SSYTRF_AA'
                    LWORK = N*NB + N
-                   CALL SSYTRF_AA( UPLO, N, AFAC, LDA, IWORK, AINV, 
 -                  CALL SSYTRF_AASEN( UPLO, N, AFAC, LDA, IWORK, AINV,
++                  CALL SSYTRF_AA( UPLO, N, AFAC, LDA, IWORK, AINV,
       $                               LWORK, INFO )
  *
  *                 Adjust the expected value of INFO to account for
  *                 Check error code from SSYTRF and handle error.
  *
                    IF( INFO.NE.K ) THEN
-                      CALL ALAERH( PATH, 'SSYTRF_AA', INFO, K, UPLO, 
-      $                            N, N, -1, -1, NB, IMAT, NFAIL, NERRS, 
 -                     CALL ALAERH( PATH, 'SSYTRF_AASEN', INFO, K, UPLO,
++                     CALL ALAERH( PATH, 'SSYTRF_AA', INFO, K, UPLO,
+      $                            N, N, -1, -1, NB, IMAT, NFAIL, NERRS,
       $                            NOUT )
                    END IF
  *
       $                            B, LDA, ISEED, INFO )
                       CALL SLACPY( 'Full', N, NRHS, B, LDA, X, LDA )
  *
 -                     SRNAMT = 'SSYTRS_AASEN'
 +                     SRNAMT = 'SSYTRS_AA'
                       LWORK = 3*N-2
-                      CALL SSYTRS_AA( UPLO, N, NRHS, AFAC, LDA, 
 -                     CALL SSYTRS_AASEN( UPLO, N, NRHS, AFAC, LDA,
++                     CALL SSYTRS_AA( UPLO, N, NRHS, AFAC, LDA,
       $                                  IWORK, X, LDA, WORK, LWORK,
       $                                  INFO )
  *
  *                    Check error code from SSYTRS and handle error.
  *
                       IF( INFO.NE.0 ) THEN
 -                        CALL ALAERH( PATH, 'SSYTRS_AASEN', INFO, 0,
 +                        CALL ALAERH( PATH, 'SSYTRS_AA', INFO, 0,
-      $                               UPLO, N, N, -1, -1, NRHS, IMAT, 
+      $                               UPLO, N, N, -1, -1, NRHS, IMAT,
       $                               NFAIL, NERRS, NOUT )
                       END IF
  *
@@@ -452,11 -452,11 +452,11 @@@ c                     END I
                          K = 0
                       END IF
  *
 -*                    Check error code from SSYSV_AASEN .
 +*                    Check error code from SSYSV_AA .
  *
                       IF( INFO.NE.K ) THEN
-                         CALL ALAERH( PATH, 'SSYSV_AA ', INFO, K, 
-      $                               UPLO, N, N, -1, -1, NRHS, 
 -                        CALL ALAERH( PATH, 'SSYSV_AASEN ', INFO, K,
++                        CALL ALAERH( PATH, 'SSYSV_AA ', INFO, K,
+      $                               UPLO, N, N, -1, -1, NRHS,
       $                               IMAT, NFAIL, NERRS, NOUT )
                          GO TO 120
                       ELSE IF( INFO.NE.0 ) THEN
  *                    Reconstruct matrix from factors and compute
  *                    residual.
  *
 -                     CALL SSYT01_AASEN( UPLO, N, A, LDA, AFAC, LDA,
 +                     CALL SSYT01_AA( UPLO, N, A, LDA, AFAC, LDA,
-      $                                  IWORK, AINV, LDA, RWORK, 
+      $                                  IWORK, AINV, LDA, RWORK,
       $                                  RESULT( 1 ) )
  *
  *                    Compute residual of the computed solution.
           CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
  *
           IF( TSTCHK ) THEN
 -            CALL ZCHKHE_AASEN( DOTYPE, NN, NVAL, NNB2, NBVAL2, NNS,
 +            CALL ZCHKHE_AA( DOTYPE, NN, NVAL, NNB2, NBVAL2, NNS,
-      $                         NSVAL, THRESH, TSTERR, LDA, 
+      $                         NSVAL, THRESH, TSTERR, LDA,
       $                         A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
       $                         B( 1, 1 ), B( 1, 2 ), B( 1, 3 ),
       $                         WORK, RWORK, IWORK, NOUT )
           END IF
  *
           IF( TSTDRV ) THEN
 -            CALL ZDRVHE_AASEN( DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR,
 +            CALL ZDRVHE_AA( DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR,
-      $                         LDA, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 
-      $                              B( 1, 1 ), B( 1, 2 ), B( 1, 3 ), 
+      $                         LDA, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
+      $                              B( 1, 1 ), B( 1, 2 ), B( 1, 3 ),
       $                         WORK, RWORK, IWORK, NOUT )
           ELSE
              WRITE( NOUT, FMT = 9988 )PATH
  *     ..
  *     .. External Subroutines ..
        EXTERNAL           ALAERH, ALAHD, ALASUM, XLAENV, ZERRHE, ZGET04,
 -     $                   ZHECON, ZHERFS, ZHET01, ZHETRF_AASEN, ZHETRI2,
 -     $                   ZHETRS_AASEN, ZLACPY, ZLAIPD, ZLARHS, ZLATB4,
 +     $                   ZHECON, ZHERFS, ZHET01, ZHETRF_AA, ZHETRI2,
-      $                   ZHETRS_AA, ZLACPY, ZLAIPD, ZLARHS, ZLATB4, 
++     $                   ZHETRS_AA, ZLACPY, ZLAIPD, ZLARHS, ZLATB4,
       $                   ZLATMS, ZPOT02, ZPOT03, ZPOT05
  *     ..
  *     .. Intrinsic Functions ..
  *                 block factorization, LWORK is the length of AINV.
  *
                    LWORK = ( NB+1 )*LDA
 -                  SRNAMT = 'ZHETRF_AASEN'
 -                  CALL ZHETRF_AASEN( UPLO, N, AFAC, LDA, IWORK, AINV,
 +                  SRNAMT = 'ZHETRF_AA'
-                   CALL ZHETRF_AA( UPLO, N, AFAC, LDA, IWORK, AINV, 
++                  CALL ZHETRF_AA( UPLO, N, AFAC, LDA, IWORK, AINV,
       $                               LWORK, INFO )
  *
  *                 Adjust the expected value of INFO to account for
  *                 Check error code from ZHETRF and handle error.
  *
                    IF( INFO.NE.K ) THEN
-                      CALL ALAERH( PATH, 'ZHETRF_AA', INFO, K, UPLO, 
-      $                            N, N, -1, -1, NB, IMAT, NFAIL, NERRS, 
 -                     CALL ALAERH( PATH, 'ZHETRF_AASEN', INFO, K, UPLO,
++                     CALL ALAERH( PATH, 'ZHETRF_AA', INFO, K, UPLO,
+      $                            N, N, -1, -1, NB, IMAT, NFAIL, NERRS,
       $                            NOUT )
                    END IF
  *
  *> \ingroup complex16_lin
  *
  *  =====================================================================
 -      SUBROUTINE ZDRVHE_AASEN( DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR,
 +      SUBROUTINE ZDRVHE_AA( DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR,
-      $                         NMAX, A, AFAC, AINV, B, X, XACT, WORK, 
+      $                         NMAX, A, AFAC, AINV, B, X, XACT, WORK,
       $                         RWORK, IWORK, NOUT )
  *
  *  -- LAPACK test routine (version 3.7.0) --
  *     ..
  *     .. External Subroutines ..
        EXTERNAL           ALADHD, ALAERH, ALASVM, XLAENV, ZERRVX, ZGET04,
-      $                   ZHESV_AA, ZHET01_AA, ZHETRF_AA, 
 -     $                   ZHESV_AASEN, ZHET01_AASEN, ZHETRF_AASEN,
++     $                   ZHESV_AA, ZHET01_AA, ZHETRF_AA,
       $                   ZHETRI2, ZLACPY, ZLAIPD, ZLARHS, ZLATB4, ZLATMS,
       $                   ZPOT02
  *     ..
@@@ -474,8 -474,8 +474,8 @@@ c                     END I
  *                    Reconstruct matrix from factors and compute
  *                    residual.
  *
 -                     CALL ZHET01_AASEN( UPLO, N, A, LDA, AFAC, LDA,
 +                     CALL ZHET01_AA( UPLO, N, A, LDA, AFAC, LDA,
-      $                                  IWORK, AINV, LDA, RWORK, 
+      $                                  IWORK, AINV, LDA, RWORK,
       $                                  RESULT( 1 ) )
  *
  *                    Compute residual of the computed solution.
Simple merge