version 1.11, 2014/01/27 09:28:14
|
version 1.16, 2023/08/07 08:38:45
|
Line 2
|
Line 2
|
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
* Online html documentation available at |
* Online html documentation available at |
* http://www.netlib.org/lapack/explore-html/ |
* http://www.netlib.org/lapack/explore-html/ |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) |
* SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* DOUBLE PRECISION ALPHA,BETA |
* DOUBLE PRECISION ALPHA,BETA |
* INTEGER K,LDA,LDC,N |
* INTEGER K,LDA,LDC,N |
Line 18
|
Line 18
|
* .. Array Arguments .. |
* .. Array Arguments .. |
* COMPLEX*16 A(LDA,*),C(LDC,*) |
* COMPLEX*16 A(LDA,*),C(LDC,*) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 90
|
Line 90
|
*> |
*> |
*> \param[in] A |
*> \param[in] A |
*> \verbatim |
*> \verbatim |
*> A is COMPLEX*16 array of DIMENSION ( LDA, ka ), where ka is |
*> A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is |
*> k when TRANS = 'N' or 'n', and is n otherwise. |
*> k when TRANS = 'N' or 'n', and is n otherwise. |
*> Before entry with TRANS = 'N' or 'n', the leading n by k |
*> Before entry with TRANS = 'N' or 'n', the leading n by k |
*> part of the array A must contain the matrix A, otherwise |
*> part of the array A must contain the matrix A, otherwise |
Line 115
|
Line 115
|
*> |
*> |
*> \param[in,out] C |
*> \param[in,out] C |
*> \verbatim |
*> \verbatim |
*> C is COMPLEX*16 array of DIMENSION ( LDC, n ). |
*> C is COMPLEX*16 array, dimension ( LDC, N ) |
*> Before entry with UPLO = 'U' or 'u', the leading n by n |
*> Before entry with UPLO = 'U' or 'u', the leading n by n |
*> upper triangular part of the array C must contain the upper |
*> upper triangular part of the array C must contain the upper |
*> triangular part of the hermitian matrix and the strictly |
*> triangular part of the hermitian matrix and the strictly |
Line 144
|
Line 144
|
* Authors: |
* Authors: |
* ======== |
* ======== |
* |
* |
*> \author Univ. of Tennessee |
*> \author Univ. of Tennessee |
*> \author Univ. of California Berkeley |
*> \author Univ. of California Berkeley |
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
|
*> \date November 2011 |
|
* |
* |
*> \ingroup complex16_blas_level3 |
*> \ingroup complex16_blas_level3 |
* |
* |
Line 173
|
Line 171
|
* ===================================================================== |
* ===================================================================== |
SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) |
SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) |
* |
* |
* -- Reference BLAS level3 routine (version 3.4.0) -- |
* -- Reference BLAS level3 routine -- |
* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- |
* -- Reference BLAS 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 |
Line 355
|
Line 352
|
200 CONTINUE |
200 CONTINUE |
RTEMP = ZERO |
RTEMP = ZERO |
DO 210 L = 1,K |
DO 210 L = 1,K |
RTEMP = RTEMP + DCONJG(A(L,J))*A(L,J) |
RTEMP = RTEMP + DBLE(DCONJG(A(L,J))*A(L,J)) |
210 CONTINUE |
210 CONTINUE |
IF (BETA.EQ.ZERO) THEN |
IF (BETA.EQ.ZERO) THEN |
C(J,J) = ALPHA*RTEMP |
C(J,J) = ALPHA*RTEMP |
Line 367
|
Line 364
|
DO 260 J = 1,N |
DO 260 J = 1,N |
RTEMP = ZERO |
RTEMP = ZERO |
DO 230 L = 1,K |
DO 230 L = 1,K |
RTEMP = RTEMP + DCONJG(A(L,J))*A(L,J) |
RTEMP = RTEMP + DBLE(DCONJG(A(L,J))*A(L,J)) |
230 CONTINUE |
230 CONTINUE |
IF (BETA.EQ.ZERO) THEN |
IF (BETA.EQ.ZERO) THEN |
C(J,J) = ALPHA*RTEMP |
C(J,J) = ALPHA*RTEMP |
Line 391
|
Line 388
|
* |
* |
RETURN |
RETURN |
* |
* |
* End of ZHERK . |
* End of ZHERK |
* |
* |
END |
END |