version 1.6, 2011/07/22 07:38:15
|
version 1.7, 2011/11/21 20:43:12
|
Line 1
|
Line 1
|
SUBROUTINE ZHFRK( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, |
*> \brief \b ZHFRK |
$ C ) |
* |
|
* =========== DOCUMENTATION =========== |
|
* |
|
* Online html documentation available at |
|
* http://www.netlib.org/lapack/explore-html/ |
|
* |
|
*> \htmlonly |
|
*> Download ZHFRK + dependencies |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhfrk.f"> |
|
*> [TGZ]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhfrk.f"> |
|
*> [ZIP]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhfrk.f"> |
|
*> [TXT]</a> |
|
*> \endhtmlonly |
|
* |
|
* Definition: |
|
* =========== |
|
* |
|
* SUBROUTINE ZHFRK( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, |
|
* C ) |
|
* |
|
* .. Scalar Arguments .. |
|
* DOUBLE PRECISION ALPHA, BETA |
|
* INTEGER K, LDA, N |
|
* CHARACTER TRANS, TRANSR, UPLO |
|
* .. |
|
* .. Array Arguments .. |
|
* COMPLEX*16 A( LDA, * ), C( * ) |
|
* .. |
|
* |
|
* |
|
*> \par Purpose: |
|
* ============= |
|
*> |
|
*> \verbatim |
|
*> |
|
*> Level 3 BLAS like routine for C in RFP Format. |
|
*> |
|
*> ZHFRK performs one of the Hermitian rank--k operations |
|
*> |
|
*> C := alpha*A*A**H + beta*C, |
|
*> |
|
*> or |
|
*> |
|
*> C := alpha*A**H*A + beta*C, |
|
*> |
|
*> where alpha and beta are real scalars, C is an n--by--n Hermitian |
|
*> matrix and A is an n--by--k matrix in the first case and a k--by--n |
|
*> matrix in the second case. |
|
*> \endverbatim |
|
* |
|
* Arguments: |
|
* ========== |
|
* |
|
*> \param[in] TRANSR |
|
*> \verbatim |
|
*> TRANSR is CHARACTER*1 |
|
*> = 'N': The Normal Form of RFP A is stored; |
|
*> = 'C': The Conjugate-transpose Form of RFP A is stored. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] UPLO |
|
*> \verbatim |
|
*> UPLO is CHARACTER*1 |
|
*> On entry, UPLO specifies whether the upper or lower |
|
*> triangular part of the array C is to be referenced as |
|
*> follows: |
|
*> |
|
*> UPLO = 'U' or 'u' Only the upper triangular part of C |
|
*> is to be referenced. |
|
*> |
|
*> UPLO = 'L' or 'l' Only the lower triangular part of C |
|
*> is to be referenced. |
|
*> |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] TRANS |
|
*> \verbatim |
|
*> TRANS is CHARACTER*1 |
|
*> On entry, TRANS specifies the operation to be performed as |
|
*> follows: |
|
*> |
|
*> TRANS = 'N' or 'n' C := alpha*A*A**H + beta*C. |
|
*> |
|
*> TRANS = 'C' or 'c' C := alpha*A**H*A + beta*C. |
|
*> |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] N |
|
*> \verbatim |
|
*> N is INTEGER |
|
*> On entry, N specifies the order of the matrix C. N must be |
|
*> at least zero. |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] K |
|
*> \verbatim |
|
*> K is INTEGER |
|
*> On entry with TRANS = 'N' or 'n', K specifies the number |
|
*> of columns of the matrix A, and on entry with |
|
*> TRANS = 'C' or 'c', K specifies the number of rows of the |
|
*> matrix A. K must be at least zero. |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] ALPHA |
|
*> \verbatim |
|
*> ALPHA is DOUBLE PRECISION |
|
*> On entry, ALPHA specifies the scalar alpha. |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] A |
|
*> \verbatim |
|
*> A is COMPLEX*16 array of DIMENSION (LDA,ka) |
|
*> where KA |
|
*> is K when TRANS = 'N' or 'n', and is N otherwise. Before |
|
*> entry with TRANS = 'N' or 'n', the leading N--by--K part of |
|
*> the array A must contain the matrix A, otherwise the leading |
|
*> K--by--N part of the array A must contain the matrix A. |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] LDA |
|
*> \verbatim |
|
*> LDA is INTEGER |
|
*> On entry, LDA specifies the first dimension of A as declared |
|
*> in the calling (sub) program. When TRANS = 'N' or 'n' |
|
*> then LDA must be at least max( 1, n ), otherwise LDA must |
|
*> be at least max( 1, k ). |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] BETA |
|
*> \verbatim |
|
*> BETA is DOUBLE PRECISION |
|
*> On entry, BETA specifies the scalar beta. |
|
*> Unchanged on exit. |
|
*> \endverbatim |
|
*> |
|
*> \param[in,out] C |
|
*> \verbatim |
|
*> C is COMPLEX*16 array, dimension (N*(N+1)/2) |
|
*> On entry, the matrix A in RFP Format. RFP Format is |
|
*> described by TRANSR, UPLO and N. Note that the imaginary |
|
*> parts of the diagonal elements need not be set, they are |
|
*> assumed to be zero, and on exit they are set to zero. |
|
*> \endverbatim |
|
* |
|
* Authors: |
|
* ======== |
|
* |
|
*> \author Univ. of Tennessee |
|
*> \author Univ. of California Berkeley |
|
*> \author Univ. of Colorado Denver |
|
*> \author NAG Ltd. |
|
* |
|
*> \date November 2011 |
* |
* |
* -- LAPACK routine (version 3.3.1) -- |
*> \ingroup complex16OTHERcomputational |
* |
* |
* -- Contributed by Julien Langou of the Univ. of Colorado Denver -- |
* ===================================================================== |
* -- April 2011 -- |
SUBROUTINE ZHFRK( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, |
|
$ C ) |
* |
* |
|
* -- LAPACK computational routine (version 3.4.0) -- |
* -- 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..-- |
|
* November 2011 |
* |
* |
* .. |
|
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
DOUBLE PRECISION ALPHA, BETA |
DOUBLE PRECISION ALPHA, BETA |
INTEGER K, LDA, N |
INTEGER K, LDA, N |
Line 19
|
Line 182
|
COMPLEX*16 A( LDA, * ), C( * ) |
COMPLEX*16 A( LDA, * ), C( * ) |
* .. |
* .. |
* |
* |
* Purpose |
|
* ======= |
|
* |
|
* Level 3 BLAS like routine for C in RFP Format. |
|
* |
|
* ZHFRK performs one of the Hermitian rank--k operations |
|
* |
|
* C := alpha*A*A**H + beta*C, |
|
* |
|
* or |
|
* |
|
* C := alpha*A**H*A + beta*C, |
|
* |
|
* where alpha and beta are real scalars, C is an n--by--n Hermitian |
|
* matrix and A is an n--by--k matrix in the first case and a k--by--n |
|
* matrix in the second case. |
|
* |
|
* Arguments |
|
* ========== |
|
* |
|
* TRANSR (input) CHARACTER*1 |
|
* = 'N': The Normal Form of RFP A is stored; |
|
* = 'C': The Conjugate-transpose Form of RFP A is stored. |
|
* |
|
* UPLO (input) CHARACTER*1 |
|
* On entry, UPLO specifies whether the upper or lower |
|
* triangular part of the array C is to be referenced as |
|
* follows: |
|
* |
|
* UPLO = 'U' or 'u' Only the upper triangular part of C |
|
* is to be referenced. |
|
* |
|
* UPLO = 'L' or 'l' Only the lower triangular part of C |
|
* is to be referenced. |
|
* |
|
* Unchanged on exit. |
|
* |
|
* TRANS (input) CHARACTER*1 |
|
* On entry, TRANS specifies the operation to be performed as |
|
* follows: |
|
* |
|
* TRANS = 'N' or 'n' C := alpha*A*A**H + beta*C. |
|
* |
|
* TRANS = 'C' or 'c' C := alpha*A**H*A + beta*C. |
|
* |
|
* Unchanged on exit. |
|
* |
|
* N (input) INTEGER |
|
* On entry, N specifies the order of the matrix C. N must be |
|
* at least zero. |
|
* Unchanged on exit. |
|
* |
|
* K (input) INTEGER |
|
* On entry with TRANS = 'N' or 'n', K specifies the number |
|
* of columns of the matrix A, and on entry with |
|
* TRANS = 'C' or 'c', K specifies the number of rows of the |
|
* matrix A. K must be at least zero. |
|
* Unchanged on exit. |
|
* |
|
* ALPHA (input) DOUBLE PRECISION |
|
* On entry, ALPHA specifies the scalar alpha. |
|
* Unchanged on exit. |
|
* |
|
* A (input) COMPLEX*16 array of DIMENSION (LDA,ka) |
|
* where KA |
|
* is K when TRANS = 'N' or 'n', and is N otherwise. Before |
|
* entry with TRANS = 'N' or 'n', the leading N--by--K part of |
|
* the array A must contain the matrix A, otherwise the leading |
|
* K--by--N part of the array A must contain the matrix A. |
|
* Unchanged on exit. |
|
* |
|
* LDA (input) INTEGER |
|
* On entry, LDA specifies the first dimension of A as declared |
|
* in the calling (sub) program. When TRANS = 'N' or 'n' |
|
* then LDA must be at least max( 1, n ), otherwise LDA must |
|
* be at least max( 1, k ). |
|
* Unchanged on exit. |
|
* |
|
* BETA (input) DOUBLE PRECISION |
|
* On entry, BETA specifies the scalar beta. |
|
* Unchanged on exit. |
|
* |
|
* C (input/output) COMPLEX*16 array, dimension (N*(N+1)/2) |
|
* On entry, the matrix A in RFP Format. RFP Format is |
|
* described by TRANSR, UPLO and N. Note that the imaginary |
|
* parts of the diagonal elements need not be set, they are |
|
* assumed to be zero, and on exit they are set to zero. |
|
* |
|
* ===================================================================== |
* ===================================================================== |
* |
* |
* .. Parameters .. |
* .. Parameters .. |