NAME

zherk - perform one of the Hermitian rank k operations C := alpha*A*conjg( A' ) + beta*C or C := alpha*conjg( A' )*A + beta*C


SYNOPSIS

  SUBROUTINE ZHERK( UPLO, TRANSA, N, K, ALPHA, A, LDA, BETA, C, LDC)
  CHARACTER * 1 UPLO, TRANSA
  DOUBLE COMPLEX A(LDA,*), C(LDC,*)
  INTEGER N, K, LDA, LDC
  DOUBLE PRECISION ALPHA, BETA
  SUBROUTINE ZHERK_64( UPLO, TRANSA, N, K, ALPHA, A, LDA, BETA, C, 
 *      LDC)
  CHARACTER * 1 UPLO, TRANSA
  DOUBLE COMPLEX A(LDA,*), C(LDC,*)
  INTEGER*8 N, K, LDA, LDC
  DOUBLE PRECISION ALPHA, BETA

F95 INTERFACE

  SUBROUTINE HERK( UPLO, [TRANSA], [N], [K], ALPHA, A, [LDA], BETA, C, 
 *       [LDC])
  CHARACTER(LEN=1) :: UPLO, TRANSA
  COMPLEX(8), DIMENSION(:,:) :: A, C
  INTEGER :: N, K, LDA, LDC
  REAL(8) :: ALPHA, BETA
  SUBROUTINE HERK_64( UPLO, [TRANSA], [N], [K], ALPHA, A, [LDA], BETA, 
 *       C, [LDC])
  CHARACTER(LEN=1) :: UPLO, TRANSA
  COMPLEX(8), DIMENSION(:,:) :: A, C
  INTEGER(8) :: N, K, LDA, LDC
  REAL(8) :: ALPHA, BETA

C INTERFACE

#include <sunperf.h>

void zherk(char uplo, char transa, int n, int k, double alpha, doublecomplex *a, int lda, double beta, doublecomplex *c, int ldc);

void zherk_64(char uplo, char transa, long n, long k, double alpha, doublecomplex *a, long lda, double beta, doublecomplex *c, long ldc);


PURPOSE

zherk performs one of the Hermitian rank k operations C := alpha*A*conjg( A' ) + beta*C or C := alpha*conjg( A' )*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