csyr2k - perform one of the symmetric rank 2k operations C := alpha*A*B' + alpha*B*A' + beta*C or C := alpha*A'*B + alpha*B'*A + beta*C
SUBROUTINE CSYR2K( UPLO, TRANSA, N, K, ALPHA, A, LDA, B, LDB, BETA, * C, LDC) CHARACTER * 1 UPLO, TRANSA COMPLEX ALPHA, BETA COMPLEX A(LDA,*), B(LDB,*), C(LDC,*) INTEGER N, K, LDA, LDB, LDC
SUBROUTINE CSYR2K_64( UPLO, TRANSA, N, K, ALPHA, A, LDA, B, LDB, * BETA, C, LDC) CHARACTER * 1 UPLO, TRANSA COMPLEX ALPHA, BETA COMPLEX A(LDA,*), B(LDB,*), C(LDC,*) INTEGER*8 N, K, LDA, LDB, LDC
SUBROUTINE SYR2K( UPLO, [TRANSA], [N], [K], ALPHA, A, [LDA], B, [LDB], * BETA, C, [LDC]) CHARACTER(LEN=1) :: UPLO, TRANSA COMPLEX :: ALPHA, BETA COMPLEX, DIMENSION(:,:) :: A, B, C INTEGER :: N, K, LDA, LDB, LDC
SUBROUTINE SYR2K_64( UPLO, [TRANSA], [N], [K], ALPHA, A, [LDA], B, * [LDB], BETA, C, [LDC]) CHARACTER(LEN=1) :: UPLO, TRANSA COMPLEX :: ALPHA, BETA COMPLEX, DIMENSION(:,:) :: A, B, C INTEGER(8) :: N, K, LDA, LDB, LDC
#include <sunperf.h>
void csyr2k(char uplo, char transa, int n, int k, complex alpha, complex *a, int lda, complex *b, int ldb, complex beta, complex *c, int ldc);
void csyr2k_64(char uplo, char transa, long n, long k, complex alpha, complex *a, long lda, complex *b, long ldb, complex beta, complex *c, long ldc);
csyr2k K performs one of the symmetric rank 2k operations C := alpha*A*B' + alpha*B*A' + beta*C or C := alpha*A'*B + alpha*B'*A + beta*C where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
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.
TRANSA = 'N' or 'n' C : = alpha*A*B' + alpha*B*A' + beta*C.
TRANSA = 'T' or 't' C : = alpha*A'*B + alpha*B'*A + beta*C.
Unchanged on exit.
Before entry with UPLO = 'L' or 'l', the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.