*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE CLAVHE( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*> CLAVHE performs one of the matrix-vector operations
-*> x := A*x or x := A^H*x,
-*> where x is an N element vector and A is one of the factors
-*> from the symmetric factorization computed by CHETRF.
-*> CHETRF produces a factorization of the form
-*> U * D * U^H or L * D * L^H,
-*> where U (or L) is a product of permutation and unit upper (lower)
-*> triangular matrices, U^H (or L^H) is the conjugate transpose of
-*> U (or L), and D is Hermitian and block diagonal with 1 x 1 and
-*> 2 x 2 diagonal blocks. The multipliers for the transformations
-*> and the upper or lower triangular parts of the diagonal blocks
-*> are stored in the leading upper or lower triangle of the 2-D
-*> array A.
+*> CLAVHE performs one of the matrix-vector operations
+*> x := A*x or x := A^H*x,
+*> where x is an N element vector and A is one of the factors
+*> from the block U*D*U' or L*D*L' factorization computed by CHETRF.
*>
-*> If TRANS = 'N' or 'n', CLAVHE multiplies either by U or U * D
-*> (or L or L * D).
-*> If TRANS = 'C' or 'c', CLAVHE multiplies either by U^H or D * U^H
-*> (or L^H or D * L^H ).
+*> If TRANS = 'N', multiplies by U or U * D (or L or L * D)
+*> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L')
*> \endverbatim
*
* Arguments:
* ==========
*
+*> \param[in] UPLO
+*> \verbatim
+*> UPLO is CHARACTER*1
+*> Specifies whether the factor stored in A is upper or lower
+*> triangular.
+*> = 'U': Upper triangular
+*> = 'L': Lower triangular
+*> \endverbatim
+*>
+*> \param[in] TRANS
+*> \verbatim
+*> TRANS is CHARACTER*1
+*> Specifies the operation to be performed:
+*> = 'N': x := A*x
+*> = 'C': x := A^H*x
+*> \endverbatim
+*>
+*> \param[in] DIAG
+*> \verbatim
+*> DIAG is CHARACTER*1
+*> Specifies whether or not the diagonal blocks are unit
+*> matrices. If the diagonal blocks are assumed to be unit,
+*> then A = U or A = L, otherwise A = U*D or A = L*D.
+*> = 'U': Diagonal blocks are assumed to be unit matrices.
+*> = 'N': Diagonal blocks are assumed to be non-unit matrices.
+*> \endverbatim
+*>
+*> \param[in] N
+*> \verbatim
+*> N is INTEGER
+*> The number of rows and columns of the matrix A. N >= 0.
+*> \endverbatim
+*>
+*> \param[in] NRHS
*> \verbatim
-*> UPLO - CHARACTER*1
-*> On entry, UPLO specifies whether the triangular matrix
-*> stored in A is upper or lower triangular.
-*> UPLO = 'U' or 'u' The matrix is upper triangular.
-*> UPLO = 'L' or 'l' The matrix is lower triangular.
-*> Unchanged on exit.
+*> NRHS is INTEGER
+*> The number of right hand sides, i.e., the number of vectors
+*> x to be multiplied by A. NRHS >= 0.
+*> \endverbatim
*>
-*> TRANS - CHARACTER*1
-*> On entry, TRANS specifies the operation to be performed as
-*> follows:
-*> TRANS = 'N' or 'n' x := A*x.
-*> TRANS = 'C' or 'c' x := A^H*x.
-*> Unchanged on exit.
+*> \param[in] A
+*> \verbatim
+*> A is COMPLEX array, dimension (LDA,N)
+*> The block diagonal matrix D and the multipliers used to
+*> obtain the factor U or L as computed by CHETRF_ROOK.
+*> Stored as a 2-D triangular matrix.
+*> \endverbatim
*>
-*> DIAG - CHARACTER*1
-*> On entry, DIAG specifies whether the diagonal blocks are
-*> assumed to be unit matrices:
-*> DIAG = 'U' or 'u' Diagonal blocks are unit matrices.
-*> DIAG = 'N' or 'n' Diagonal blocks are non-unit.
-*> Unchanged on exit.
+*> \param[in] LDA
+*> \verbatim
+*> LDA is INTEGER
+*> The leading dimension of the array A. LDA >= max(1,N).
+*> \endverbatim
*>
-*> N - INTEGER
-*> On entry, N specifies the order of the matrix A.
-*> N must be at least zero.
-*> Unchanged on exit.
+*> \param[in] IPIV
+*> \verbatim
+*> IPIV is INTEGER array, dimension (N)
+*> Details of the interchanges and the block structure of D,
+*> as determined by CHETRF.
*>
-*> NRHS - INTEGER
-*> On entry, NRHS specifies the number of right hand sides,
-*> i.e., the number of vectors x to be multiplied by A.
-*> NRHS must be at least zero.
-*> Unchanged on exit.
+*> If UPLO = 'U':
+*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
+*> were interchanged and D(k,k) is a 1-by-1 diagonal block.
+*> (If IPIV( k ) = k, no interchange was done).
*>
-*> A - COMPLEX array, dimension( LDA, N )
-*> On entry, A contains a block diagonal matrix and the
-*> multipliers of the transformations used to obtain it,
-*> stored as a 2-D triangular matrix.
-*> Unchanged on exit.
+*> If IPIV(k) = IPIV(k-1) < 0, then rows and
+*> columns k-1 and -IPIV(k) were interchanged,
+*> D(k-1:k,k-1:k) is a 2-by-2 diagonal block.
*>
-*> LDA - INTEGER
-*> On entry, LDA specifies the first dimension of A as declared
-*> in the calling ( sub ) program. LDA must be at least
-*> max( 1, N ).
-*> Unchanged on exit.
+*> If UPLO = 'L':
+*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
+*> were interchanged and D(k,k) is a 1-by-1 diagonal block.
+*> (If IPIV( k ) = k, no interchange was done).
*>
-*> IPIV - INTEGER array, dimension( N )
-*> On entry, IPIV contains the vector of pivot indices as
-*> determined by CSYTRF or CHETRF.
-*> If IPIV( K ) = K, no interchange was done.
-*> If IPIV( K ) <> K but IPIV( K ) > 0, then row K was inter-
-*> changed with row IPIV( K ) and a 1 x 1 pivot block was used.
-*> If IPIV( K ) < 0 and UPLO = 'U', then row K-1 was exchanged
-*> with row | IPIV( K ) | and a 2 x 2 pivot block was used.
-*> If IPIV( K ) < 0 and UPLO = 'L', then row K+1 was exchanged
-*> with row | IPIV( K ) | and a 2 x 2 pivot block was used.
+*> If IPIV(k) = IPIV(k+1) < 0, then rows and
+*> columns k+1 and -IPIV(k) were interchanged,
+*> D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
+*> \endverbatim
*>
-*> B - COMPLEX array, dimension( LDB, NRHS )
-*> On entry, B contains NRHS vectors of length N.
-*> On exit, B is overwritten with the product A * B.
+*> \param[in,out] B
+*> \verbatim
+*> B is COMPLEX array, dimension (LDB,NRHS)
+*> On entry, B contains NRHS vectors of length N.
+*> On exit, B is overwritten with the product A * B.
+*> \endverbatim
*>
-*> LDB - INTEGER
-*> On entry, LDB contains the leading dimension of B as
-*> declared in the calling program. LDB must be at least
-*> max( 1, N ).
-*> Unchanged on exit.
+*> \param[in] LDB
+*> \verbatim
+*> LDB is INTEGER
+*> The leading dimension of the array B. LDB >= max(1,N).
+*> \endverbatim
*>
-*> INFO - INTEGER
-*> INFO is the error flag.
-*> On exit, a value of 0 indicates a successful exit.
-*> A negative value, say -K, indicates that the K-th argument
-*> has an illegal value.
+*> \param[out] INFO
+*> \verbatim
+*> INFO is INTEGER
+*> = 0: successful exit
+*> < 0: if INFO = -k, the k-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.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date November 2011
*
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE CLAVHE_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*> CLAVHE_ROOK performs one of the matrix-vector operations
+*> CLAVHE_ROOK performs one of the matrix-vector operations
*> x := A*x or x := A^H*x,
*> where x is an N element vector and A is one of the factors
-*> from the Hermitian factorization computed by CHETRF_ROOK.
-*>
-*> CHETRF_ROOK produces a factorization of the form
-*> U * D * U^H or L * D * L^H,
-*> where U (or L) is a product of permutation and unit upper (lower)
-*> triangular matrices, U^H (or L^H) is the conjugate transpose of
-*> U (or L), and D is Hermitian and block diagonal with 1 x 1 and
-*> 2 x 2 diagonal blocks. The multipliers for the transformations
-*> and the upper or lower triangular parts of the diagonal blocks
-*> are stored in the leading upper or lower triangle of the 2-D
-*> array A.
+*> from the block U*D*U' or L*D*L' factorization computed by CHETRF_ROOK.
*>
*> If TRANS = 'N', multiplies by U or U * D (or L or L * D)
-*> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L')
*> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L')
*> \endverbatim
*
*> TRANS is CHARACTER*1
*> Specifies the operation to be performed:
*> = 'N': x := A*x
-*> = 'T': x := A^H*x
*> = 'C': x := A^H*x
*> \endverbatim
*>
*> A is COMPLEX array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by CHETRF_ROOK.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date April 2013
*
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE CLAVSY( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*> CLAVSY_ROOK performs one of the matrix-vector operations
+*> CLAVSY performs one of the matrix-vector operations
*> x := A*x or x := A'*x,
*> where x is an N element vector and A is one of the factors
-*> from the block U*D*U' or L*D*L' factorization computed by CSYTRF_ROOK.
+*> from the block U*D*U' or L*D*L' factorization computed by CSYTRF.
*>
*> If TRANS = 'N', multiplies by U or U * D (or L or L * D)
*> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L')
*> \verbatim
*> A is COMPLEX array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
-*> obtain the factor U or L as computed by CSYTRF_ROOK.
+*> obtain the factor U or L as computed by CSYTRF.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
*> \verbatim
*> IPIV is INTEGER array, dimension (N)
*> Details of the interchanges and the block structure of D,
-*> as determined by CSYTRF_ROOK or CHETRF_ROOK.
+*> as determined by CSYTRF.
*>
*> If UPLO = 'U':
*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date April 2012
*
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE CLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
-* LDB, INFO )
-*
+* LDB, INFO )
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*> CLAVSY_ROOK performs one of the matrix-vector operations
+*> CLAVSY_ROOK performs one of the matrix-vector operations
*> x := A*x or x := A'*x,
*> where x is an N element vector and A is one of the factors
*> from the block U*D*U' or L*D*L' factorization computed by CSYTRF_ROOK.
*> A is COMPLEX array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by CSYTRF_ROOK.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
*> \verbatim
*> IPIV is INTEGER array, dimension (N)
*> Details of the interchanges and the block structure of D,
-*> as determined by CSYTRF_ROOK or CHETRF_ROOK.
+*> as determined by CSYTRF_ROOK.
*>
*> If UPLO = 'U':
*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date November 2011
*
*
* =====================================================================
SUBROUTINE CLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV,
- $ B, LDB, INFO )
+ $ B, LDB, INFO )
*
* -- LAPACK test routine (version 3.4.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE DLAVSY( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* DOUBLE PRECISION A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*> A is DOUBLE PRECISION array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by DSYTRF.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date April 2012
*
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE DLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
-* LDB, INFO )
-*
+* LDB, INFO )
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* DOUBLE PRECISION A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*> A is DOUBLE PRECISION array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by DSYTRF_ROOK.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date April 2012
*
*
* =====================================================================
SUBROUTINE DLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV,
- $ B, LDB, INFO )
+ $ B, LDB, INFO )
*
* -- LAPACK test routine (version 3.4.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE SLAVSY( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* REAL A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*> A is REAL array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by SSYTRF.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date April 2012
*
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE SLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
-* LDB, INFO )
-*
+* LDB, INFO )
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* REAL A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*> A is REAL array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by SSYTRF_ROOK.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date November 2011
*
*
* =====================================================================
SUBROUTINE SLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV,
- $ B, LDB, INFO )
+ $ B, LDB, INFO )
*
* -- LAPACK test routine (version 3.4.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE ZLAVHE( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX*16 A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*> ZLAVHE performs one of the matrix-vector operations
-*> x := A*x or x := A^H*x,
-*> where x is an N element vector and A is one of the factors
-*> from the symmetric factorization computed by ZHETRF.
-*> ZHETRF produces a factorization of the form
-*> U * D * U^H or L * D * L^H,
-*> where U (or L) is a product of permutation and unit upper (lower)
-*> triangular matrices, U^H (or L^H) is the conjugate transpose of
-*> U (or L), and D is Hermitian and block diagonal with 1 x 1 and
-*> 2 x 2 diagonal blocks. The multipliers for the transformations
-*> and the upper or lower triangular parts of the diagonal blocks
-*> are stored in the leading upper or lower triangle of the 2-D
-*> array A.
+*> ZLAVHE performs one of the matrix-vector operations
+*> x := A*x or x := A^H*x,
+*> where x is an N element vector and A is one of the factors
+*> from the block U*D*U' or L*D*L' factorization computed by ZHETRF.
*>
-*> If TRANS = 'N' or 'n', ZLAVHE multiplies either by U or U * D
-*> (or L or L * D).
-*> If TRANS = 'C' or 'c', ZLAVHE multiplies either by U^H or D * U^H
-*> (or L^H or D * L^H ).
+*> If TRANS = 'N', multiplies by U or U * D (or L or L * D)
+*> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L')
*> \endverbatim
*
* Arguments:
* ==========
*
+*> \param[in] UPLO
+*> \verbatim
+*> UPLO is CHARACTER*1
+*> Specifies whether the factor stored in A is upper or lower
+*> triangular.
+*> = 'U': Upper triangular
+*> = 'L': Lower triangular
+*> \endverbatim
+*>
+*> \param[in] TRANS
+*> \verbatim
+*> TRANS is CHARACTER*1
+*> Specifies the operation to be performed:
+*> = 'N': x := A*x
+*> = 'C': x := A'*x
+*> \endverbatim
+*>
+*> \param[in] DIAG
+*> \verbatim
+*> DIAG is CHARACTER*1
+*> Specifies whether or not the diagonal blocks are unit
+*> matrices. If the diagonal blocks are assumed to be unit,
+*> then A = U or A = L, otherwise A = U*D or A = L*D.
+*> = 'U': Diagonal blocks are assumed to be unit matrices.
+*> = 'N': Diagonal blocks are assumed to be non-unit matrices.
+*> \endverbatim
+*>
+*> \param[in] N
+*> \verbatim
+*> N is INTEGER
+*> The number of rows and columns of the matrix A. N >= 0.
+*> \endverbatim
+*>
+*> \param[in] NRHS
*> \verbatim
-*> UPLO - CHARACTER*1
-*> On entry, UPLO specifies whether the triangular matrix
-*> stored in A is upper or lower triangular.
-*> UPLO = 'U' or 'u' The matrix is upper triangular.
-*> UPLO = 'L' or 'l' The matrix is lower triangular.
-*> Unchanged on exit.
+*> NRHS is INTEGER
+*> The number of right hand sides, i.e., the number of vectors
+*> x to be multiplied by A. NRHS >= 0.
+*> \endverbatim
*>
-*> TRANS - CHARACTER*1
-*> On entry, TRANS specifies the operation to be performed as
-*> follows:
-*> TRANS = 'N' or 'n' x := A*x.
-*> TRANS = 'C' or 'c' x := A^H*x.
-*> Unchanged on exit.
+*> \param[in] A
+*> \verbatim
+*> A is COMPLEX*16 array, dimension (LDA,N)
+*> The block diagonal matrix D and the multipliers used to
+*> obtain the factor U or L as computed by ZHETRF.
+*> Stored as a 2-D triangular matrix.
+*> \endverbatim
*>
-*> DIAG - CHARACTER*1
-*> On entry, DIAG specifies whether the diagonal blocks are
-*> assumed to be unit matrices:
-*> DIAG = 'U' or 'u' Diagonal blocks are unit matrices.
-*> DIAG = 'N' or 'n' Diagonal blocks are non-unit.
-*> Unchanged on exit.
+*> \param[in] LDA
+*> \verbatim
+*> LDA is INTEGER
+*> The leading dimension of the array A. LDA >= max(1,N).
+*> \endverbatim
*>
-*> N - INTEGER
-*> On entry, N specifies the order of the matrix A.
-*> N must be at least zero.
-*> Unchanged on exit.
+*> \param[in] IPIV
+*> \verbatim
+*> IPIV is INTEGER array, dimension (N)
+*> Details of the interchanges and the block structure of D,
+*> as determined by ZHETRF.
*>
-*> NRHS - INTEGER
-*> On entry, NRHS specifies the number of right hand sides,
-*> i.e., the number of vectors x to be multiplied by A.
-*> NRHS must be at least zero.
-*> Unchanged on exit.
+*> If UPLO = 'U':
+*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
+*> were interchanged and D(k,k) is a 1-by-1 diagonal block.
+*> (If IPIV( k ) = k, no interchange was done).
*>
-*> A - COMPLEX*16 array, dimension( LDA, N )
-*> On entry, A contains a block diagonal matrix and the
-*> multipliers of the transformations used to obtain it,
-*> stored as a 2-D triangular matrix.
-*> Unchanged on exit.
+*> If IPIV(k) = IPIV(k-1) < 0, then rows and
+*> columns k-1 and -IPIV(k) were interchanged,
+*> D(k-1:k,k-1:k) is a 2-by-2 diagonal block.
*>
-*> LDA - INTEGER
-*> On entry, LDA specifies the first dimension of A as declared
-*> in the calling ( sub ) program. LDA must be at least
-*> max( 1, N ).
-*> Unchanged on exit.
+*> If UPLO = 'L':
+*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
+*> were interchanged and D(k,k) is a 1-by-1 diagonal block.
+*> (If IPIV( k ) = k, no interchange was done).
*>
-*> IPIV - INTEGER array, dimension( N )
-*> On entry, IPIV contains the vector of pivot indices as
-*> determined by ZSYTRF or ZHETRF.
-*> If IPIV( K ) = K, no interchange was done.
-*> If IPIV( K ) <> K but IPIV( K ) > 0, then row K was inter-
-*> changed with row IPIV( K ) and a 1 x 1 pivot block was used.
-*> If IPIV( K ) < 0 and UPLO = 'U', then row K-1 was exchanged
-*> with row | IPIV( K ) | and a 2 x 2 pivot block was used.
-*> If IPIV( K ) < 0 and UPLO = 'L', then row K+1 was exchanged
-*> with row | IPIV( K ) | and a 2 x 2 pivot block was used.
+*> If IPIV(k) = IPIV(k+1) < 0, then rows and
+*> columns k+1 and -IPIV(k) were interchanged,
+*> D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
+*> \endverbatim
*>
-*> B - COMPLEX*16 array, dimension( LDB, NRHS )
-*> On entry, B contains NRHS vectors of length N.
-*> On exit, B is overwritten with the product A * B.
+*> \param[in,out] B
+*> \verbatim
+*> B is COMPLEX*16 array, dimension (LDB,NRHS)
+*> On entry, B contains NRHS vectors of length N.
+*> On exit, B is overwritten with the product A * B.
+*> \endverbatim
*>
-*> LDB - INTEGER
-*> On entry, LDB contains the leading dimension of B as
-*> declared in the calling program. LDB must be at least
-*> max( 1, N ).
-*> Unchanged on exit.
+*> \param[in] LDB
+*> \verbatim
+*> LDB is INTEGER
+*> The leading dimension of the array B. LDB >= max(1,N).
+*> \endverbatim
*>
-*> INFO - INTEGER
-*> INFO is the error flag.
-*> On exit, a value of 0 indicates a successful exit.
-*> A negative value, say -K, indicates that the K-th argument
-*> has an illegal value.
+*> \param[out] INFO
+*> \verbatim
+*> INFO is INTEGER
+*> = 0: successful exit
+*> < 0: if INFO = -k, the k-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.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date November 2011
*
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE ZLAVHE_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX*16 A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
-*> \verbatim
-*>
-*> ZLAVHE_ROOK performs one of the matrix-vector operations
+*> ZLAVHE_ROOK performs one of the matrix-vector operations
*> x := A*x or x := A^H*x,
*> where x is an N element vector and A is one of the factors
-*> from the Hermitian factorization computed by CHETRF_ROOK.
-*>
-*> ZHETRF_ROOK produces a factorization of the form
-*> U * D * U^H or L * D * L^H,
-*> where U (or L) is a product of permutation and unit upper (lower)
-*> triangular matrices, U^H (or L^H) is the conjugate transpose of
-*> U (or L), and D is Hermitian and block diagonal with 1 x 1 and
-*> 2 x 2 diagonal blocks. The multipliers for the transformations
-*> and the upper or lower triangular parts of the diagonal blocks
-*> are stored in the leading upper or lower triangle of the 2-D
-*> array A.
+*> from the block U*D*U' or L*D*L' factorization computed by ZHETRF_ROOK.
*>
*> If TRANS = 'N', multiplies by U or U * D (or L or L * D)
-*> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L')
*> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L')
-*> \endverbatim
*
* Arguments:
* ==========
*> TRANS is CHARACTER*1
*> Specifies the operation to be performed:
*> = 'N': x := A*x
-*> = 'T': x := A^H*x
+*> = 'C': x := A^H*x
*> \endverbatim
*>
*> \param[in] DIAG
*> A is COMPLEX*16 array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by ZHETRF_ROOK.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date April 2013
*
*
* .. Parameters ..
COMPLEX*16 CONE
- PARAMETER ( CONE = ( 1.0E+0, 0.0E+0 ) )
+ PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ) )
* ..
* .. Local Scalars ..
LOGICAL NOUNIT
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE ZLAVSY( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
* LDB, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX*16 A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*> ZLAVSY_ROOK performs one of the matrix-vector operations
+*> ZLAVSY performs one of the matrix-vector operations
*> x := A*x or x := A'*x,
*> where x is an N element vector and A is one of the factors
-*> from the block U*D*U' or L*D*L' factorization computed by ZSYTRF_ROOK.
+*> from the block U*D*U' or L*D*L' factorization computed by ZSYTRF.
*>
*> If TRANS = 'N', multiplies by U or U * D (or L or L * D)
*> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L')
*> \verbatim
*> A is COMPLEX*16 array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
-*> obtain the factor U or L as computed by ZSYTRF_ROOK.
+*> obtain the factor U or L as computed by ZSYTRF.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
*> \verbatim
*> IPIV is INTEGER array, dimension (N)
*> Details of the interchanges and the block structure of D,
-*> as determined by ZSYTRF_ROOK or ZHETRF_ROOK.
+*> as determined by ZSYTRF.
*>
*> If UPLO = 'U':
*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date April 2012
*
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE ZLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B,
-* LDB, INFO )
-*
+* LDB, INFO )
+*
* .. Scalar Arguments ..
* CHARACTER DIAG, TRANS, UPLO
* INTEGER INFO, LDA, LDB, N, NRHS
* INTEGER IPIV( * )
* COMPLEX*16 A( LDA, * ), B( LDB, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*> ZLAVSY_ROOK performs one of the matrix-vector operations
+*> ZLAVSY_ROOK performs one of the matrix-vector operations
*> x := A*x or x := A'*x,
*> where x is an N element vector and A is one of the factors
*> from the block U*D*U' or L*D*L' factorization computed by ZSYTRF_ROOK.
*> A is COMPLEX*16 array, dimension (LDA,N)
*> The block diagonal matrix D and the multipliers used to
*> obtain the factor U or L as computed by ZSYTRF_ROOK.
+*> Stored as a 2-D triangular matrix.
*> \endverbatim
*>
*> \param[in] LDA
*> \verbatim
*> IPIV is INTEGER array, dimension (N)
*> Details of the interchanges and the block structure of D,
-*> as determined by ZSYTRF_ROOK or ZHETRF_ROOK.
+*> as determined by ZSYTRF_ROOK.
*>
*> If UPLO = 'U':
*> If IPIV(k) > 0, then rows and columns k and IPIV(k)
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date November 2011
*
*
* =====================================================================
SUBROUTINE ZLAVSY_ROOK( UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV,
- $ B, LDB, INFO )
+ $ B, LDB, INFO )
*
* -- LAPACK test routine (version 3.4.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --