dsfrk - k operation for matrix in RFP format
SUBROUTINE DSFRK( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C ) DOUBLE PRECISION ALPHA, BETA INTEGER K, LDA, N CHARACTER*1 TRANS, TRANSR, UPLO DOUBLE PRECISION A(LDA,*), C(*) SUBROUTINE DSFRK_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 PRECISION A(LDA,*), C(*) F95 INTERFACE SUBROUTINE SFRK( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C ) INTEGER :: N, K, LDA CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS REAL(8), DIMENSION(:,:) :: A REAL(8), DIMENSION(:) :: C REAL(8) :: ALPHA, BETA SUBROUTINE SFRK_64( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C ) INTEGER(8) :: N, K, LDA CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS REAL(8), DIMENSION(:,:) :: A REAL(8), DIMENSION(:) :: C REAL(8) :: ALPHA, BETA C INTERFACE #include <sunperf.h> void dsfrk (char transr, char uplo, char trans, int n, int k, double alpha, double *a, int lda, double beta, double *c); void dsfrk_64 (char transr, char uplo, char trans, long n, long k, dou- ble alpha, double *a, long lda, double beta, double *c);
Oracle Solaris Studio Performance Library dsfrk(3P) NAME dsfrk - perform a symmetric rank-k operation for matrix in RFP format SYNOPSIS SUBROUTINE DSFRK( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C ) DOUBLE PRECISION ALPHA, BETA INTEGER K, LDA, N CHARACTER*1 TRANS, TRANSR, UPLO DOUBLE PRECISION A(LDA,*), C(*) SUBROUTINE DSFRK_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 PRECISION A(LDA,*), C(*) F95 INTERFACE SUBROUTINE SFRK( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C ) INTEGER :: N, K, LDA CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS REAL(8), DIMENSION(:,:) :: A REAL(8), DIMENSION(:) :: C REAL(8) :: ALPHA, BETA SUBROUTINE SFRK_64( TRANSR, UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C ) INTEGER(8) :: N, K, LDA CHARACTER(LEN=1) :: TRANSR, UPLO, TRANS REAL(8), DIMENSION(:,:) :: A REAL(8), DIMENSION(:) :: C REAL(8) :: ALPHA, BETA C INTERFACE #include <sunperf.h> void dsfrk (char transr, char uplo, char trans, int n, int k, double alpha, double *a, int lda, double beta, double *c); void dsfrk_64 (char transr, char uplo, char trans, long n, long k, dou- ble alpha, double *a, long lda, double beta, double *c); PURPOSE dsfrk 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 DOUBLE PRECISION On entry, ALPHA specifies the scalar alpha. Unchanged on exit. A (input) A is DOUBLE PRECISION 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 DOUBLE PRECISION On entry, BETA specifies the scalar beta. Unchanged on exit. C (input/output) C is DOUBLE PRECISION 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 dsfrk(3P)