{S,D,C,Z}SYRK ( uplo, trans, n, k, alpha, a, lda, beta, c, ldc )
uplo character*1 On entry, specifies whether the upper- or lower- triangular part of the symmetric matrix C is to be referenced: If uplo = 'U' or 'u', the upper-triangular part of C is to be referenced. If uplo = 'L' or 'l', the lower-triangular part of C is to be referenced. On exit, uplo is unchanged. trans character*1 On entry, specifies the operation to be performed: If trans = 'N' or 'n', C = alpha * A*transp(A) + beta*C If trans = 'T' or 't', C = alpha * transp(A)A + beta*C On exit, trans is unchanged. n integer*4 On entry, specifies the order of the matrix C; n >= 0 On exit, n is unchanged. k integer*4 On entry, the number of columns of the matrix A when trans = 'N' or the number of rows of the matrix A when trans = 'T' or On exit, k is unchanged. alpha real*4 | real*8 | complex*8 | complex*16 On entry, specifies the scalar alpha. On exit, alpha is unchanged. a real*4 | real*8 | complex*8 | complex*16 On entry, a two-dimensional array A with dimensions lda by ka. For trans = 'N' or leading n by k portion of the array A contains the matrix A. For trans = 'T' or ka >= n and the leading k by n part of the array A contains the matrix A. On exit, a is unchanged. lda integer*4 On entry, the first dimension of array A. For trans = 'N' or lda >= MAX(1,n). For trans = 'T', lda >= MAX(1,k). On exit, lda is unchanged. beta real*4 | real*8 | complex*8 | complex*16 On entry, specifies the scalar beta. On exit, beta is unchanged. c real*4 | real*8 | complex*8 | complex*16 On entry, a two-dimensional array C of dimensions ldc by at least n. If uplo specifies the upper part, the leading n by n upper-triangular part of the array C must contain the upper-triangular part of the symmetric matrix C, and the strictly lower-triangular part of C is not referenced. If uplo specifies the lower part, the leading n by n lower-triangular part of the array C must contain the lower-triangular part of the symmetric matrix C, and the strictly upper-triangular part of C is not referenced. On exit, c is overwritten; the triangular part of the array C is overwritten by the triangular part of the updated matrix. ldc integer*4 On entry, the first dimension of array C; ldc >= MAX(1,n) On exit, ldc is unchanged.
The _SYRK routines perform the rank-k update of a symmetric matrix: C = alpha * A*transp(A) + beta*C C = alpha * transp(A)A + beta*C alpha and beta are scalars, C is an n by n symmetric matrix. In the first case, A is an n by k matrix, and in the second case, A is a k by n matrix.
REAL*4 A(40,20), C(20,20), alpha, beta LDA = 40 LDC = 20 N = 10 K = 15 alpha = 1.0 beta = 2.0 CALL SSYRK ('U','N',N,K,alpha,A,LDA,beta,C,LDC) This FORTRAN code computes the rank-k update of the real symmetric matrix C: C = alpha * A*transp(A) + beta*C. C is a 10 by 10 matrix, and A is a 10 by 15 matrix. Only the upper-triangular part of C is referenced. The leading 10 by 15 part of array A contains the matrix A. The leading 10 by 10 upper-triangular part of array C contains the upper-triangular matrix C.