Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

zhfrk (3p)

Name

zhfrk - k operation for matrix in RFP format

Synopsis

SUBROUTINE ZHFRK(TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C)


DOUBLE PRECISION ALPHA, BETA

INTEGER K, LDA, N

CHARACTER*1 TRANS, TRANSR, UPLO

DOUBLE COMPLEX A(LDA,*), C(*)


SUBROUTINE ZHFRK_64(TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C)


DOUBLE PRECISION ALPHA, BETA

INTEGER*8 K, LDA, N

CHARACTER*1 TRANS, TRANSR, UPLO

DOUBLE COMPLEX A(LDA,*), C(*)


F95 INTERFACE
SUBROUTINE HFRK(TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C)


INTEGER :: N, K, LDA

CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS

COMPLEX(8), DIMENSION(:,:) :: A

COMPLEX(8), DIMENSION(:) :: C

REAL(8) :: ALPHA, BETA


SUBROUTINE HFRK_64( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C )


INTEGER(8) :: N, K, LDA

CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS

COMPLEX(8), DIMENSION(:,:) :: A

COMPLEX(8), DIMENSION(:) :: C

REAL(8) :: ALPHA, BETA


C INTERFACE
#include <sunperf.h>

void zhfrk (char transr, char uplo, char trans, int n,  int  k,  double
alpha,  doublecomplex *a, int lda, double beta, doublecomplex
*c);


void zhfrk_64 (char transr, char uplo, char trans, long n, long k, dou-
ble  alpha,  doublecomplex *a, long lda, double beta, double-
complex *c);

Description

Oracle Solaris Studio Performance Library                            zhfrk(3P)



NAME
       zhfrk - perform a Hermitian rank-k operation for matrix in RFP format


SYNOPSIS
       SUBROUTINE ZHFRK(TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C)


       DOUBLE PRECISION ALPHA, BETA

       INTEGER K, LDA, N

       CHARACTER*1 TRANS, TRANSR, UPLO

       DOUBLE COMPLEX A(LDA,*), C(*)


       SUBROUTINE ZHFRK_64(TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C)


       DOUBLE PRECISION ALPHA, BETA

       INTEGER*8 K, LDA, N

       CHARACTER*1 TRANS, TRANSR, UPLO

       DOUBLE COMPLEX A(LDA,*), C(*)


   F95 INTERFACE
       SUBROUTINE HFRK(TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C)


       INTEGER :: N, K, LDA

       CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS

       COMPLEX(8), DIMENSION(:,:) :: A

       COMPLEX(8), DIMENSION(:) :: C

       REAL(8) :: ALPHA, BETA


       SUBROUTINE HFRK_64( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C )


       INTEGER(8) :: N, K, LDA

       CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS

       COMPLEX(8), DIMENSION(:,:) :: A

       COMPLEX(8), DIMENSION(:) :: C

       REAL(8) :: ALPHA, BETA


   C INTERFACE
       #include <sunperf.h>

       void zhfrk (char transr, char uplo, char trans, int n,  int  k,  double
                 alpha,  doublecomplex *a, int lda, double beta, doublecomplex
                 *c);


       void zhfrk_64 (char transr, char uplo, char trans, long n, long k, dou-
                 ble  alpha,  doublecomplex *a, long lda, double beta, double-
                 complex *c);


PURPOSE
       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)
                 TRANSR is CHARACTER*1
                 = 'N':  The Normal Form of RFP A is stored;
                 = 'C':  The Conjugate-transpose Form of RFP A is stored.


       UPLO (input)
                 UPLO is CHARACTER*1
                 On entry, UPLO specifies whether the upper or lower
                 triangular part of the array C is to be  referenced  as  fol-
                 lows:
                 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)
                 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.


       N (input)
                 N is INTEGER
                 On entry, N specifies the order of the matrix C. N must be at
                 least zero.
                 Unchanged on exit.


       K (input)
                 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.


       ALPHA (input)
                 ALPHA is DOUBLE PRECISION
                 On entry, ALPHA specifies the scalar alpha.
                 Unchanged on exit.


       A (input)
                 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 lead-
                 ing K-by-N part of the array A must contain the matrix A.
                 Unchanged on exit.


       LDA (input)
                 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.


       BETA (input)
                 BETA is DOUBLE PRECISION
                 On entry, BETA specifies the scalar beta.
                 Unchanged on exit.


       C (input/output)
                 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.



                                  7 Nov 2015                         zhfrk(3P)