Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

chfrk (3p)

Name

chfrk - k operation for matrix in RFP format

Synopsis

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


REAL ALPHA, BETA

INTEGER K, LDA, N

CHARACTER*1 TRANS, TRANSR, UPLO

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


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


REAL ALPHA, BETA

INTEGER*8 K, LDA, N

CHARACTER*1 TRANS, TRANSR, UPLO

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, DIMENSION(:,:) :: A

COMPLEX, DIMENSION(:) :: C

REAL :: 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, DIMENSION(:,:) :: A

COMPLEX, DIMENSION(:) :: C

REAL :: ALPHA, BETA


C INTERFACE
#include <sunperf.h>

void  chfrk  (char  transr,  char uplo, char trans, int n, int k, float
alpha, floatcomplex *a, int  lda,  float  beta,  floatcomplex
*c);


void  chfrk_64  (char  transr,  char  uplo, char trans, long n, long k,
float alpha, floatcomplex *a, long lda, float beta, floatcom-
plex *c);

Description

Oracle Solaris Studio Performance Library                            chfrk(3P)



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


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


       REAL ALPHA, BETA

       INTEGER K, LDA, N

       CHARACTER*1 TRANS, TRANSR, UPLO

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


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


       REAL ALPHA, BETA

       INTEGER*8 K, LDA, N

       CHARACTER*1 TRANS, TRANSR, UPLO

       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, DIMENSION(:,:) :: A

       COMPLEX, DIMENSION(:) :: C

       REAL :: 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, DIMENSION(:,:) :: A

       COMPLEX, DIMENSION(:) :: C

       REAL :: ALPHA, BETA


   C INTERFACE
       #include <sunperf.h>

       void  chfrk  (char  transr,  char uplo, char trans, int n, int k, float
                 alpha, floatcomplex *a, int  lda,  float  beta,  floatcomplex
                 *c);


       void  chfrk_64  (char  transr,  char  uplo, char trans, long n, long k,
                 float alpha, floatcomplex *a, long lda, float beta, floatcom-
                 plex *c);


PURPOSE
       chfrk 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 triangu-
                 lar 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)
                 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 REAL
                 On entry, ALPHA specifies the scalar alpha.
                 Unchanged on exit.


       A (input)
                 A is COMPLEX array, 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)
                 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 REAL
                 On entry, BETA specifies the scalar beta.
                 Unchanged on exit.


       C (input/output)
                 C is COMPLEX 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                         chfrk(3P)