ssfrk - k operation for matrix in RFP format
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);
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)