Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

ssfrk (3p)

Name

ssfrk - k operation for matrix in RFP format

Synopsis

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


REAL ALPHA, BETA

INTEGER K, LDA, N

CHARACTER*1 TRANS, TRANSR, UPLO

REAL A(LDA,*), C(*)


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


REAL ALPHA, BETA

INTEGER*8 K, LDA, N

CHARACTER*1 TRANS, TRANSR, UPLO

REAL A(LDA,*), C(*)


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


REAL, DIMENSION(:,:) :: A

INTEGER :: N, K, LDA

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

REAL, DIMENSION(:) :: C

REAL :: ALPHA, BETA


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


REAL, DIMENSION(:,:) :: A

INTEGER(8) :: N, K, LDA

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

REAL, DIMENSION(:) :: C

REAL :: ALPHA, BETA


C INTERFACE
#include <sunperf.h>

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


void ssfrk_64 (char transr, char uplo, char  trans,  long  n,  long  k,
float alpha, float *a, long lda, float beta, float *c);

Description

Oracle Solaris Studio Performance Library                            ssfrk(3P)



NAME
       ssfrk - perform a symmetric rank-k operation for matrix in RFP format


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


       REAL ALPHA, BETA

       INTEGER K, LDA, N

       CHARACTER*1 TRANS, TRANSR, UPLO

       REAL A(LDA,*), C(*)


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


       REAL ALPHA, BETA

       INTEGER*8 K, LDA, N

       CHARACTER*1 TRANS, TRANSR, UPLO

       REAL A(LDA,*), C(*)


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


       REAL, DIMENSION(:,:) :: A

       INTEGER :: N, K, LDA

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

       REAL, DIMENSION(:) :: C

       REAL :: ALPHA, BETA


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


       REAL, DIMENSION(:,:) :: A

       INTEGER(8) :: N, K, LDA

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

       REAL, DIMENSION(:) :: C

       REAL :: ALPHA, BETA


   C INTERFACE
       #include <sunperf.h>

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


       void ssfrk_64 (char transr, char uplo, char  trans,  long  n,  long  k,
                 float alpha, float *a, long lda, float beta, float *c);


PURPOSE
       ssfrk performs one of the symmetric rank--k operations

       C := alpha*A*A**T + beta*C,

       or

       C := alpha*A**T*A + beta*C,

       where  alpha  and  beta  are  real  scalars, C is an n--by--n symmetric
       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;
                 = 'T':  The 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
                 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**T + beta*C.
                 TRANS = 'T' or 't'   C := alpha*A**T*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 = 'T'
                 or 't', 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 REAL 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)
                 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 REAL array, dimension (NT)
                 NT = N*(N+1)/2. On entry, the symmetric matrix C in RFP
                 Format. RFP Format is described by TRANSR, UPLO and N.




                                  7 Nov 2015                         ssfrk(3P)