Library "FunctionLAPACKdsyrk" subroutine part of LAPACK: Linear Algebra Package, 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 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. . reference: netlib.org/lapack/explore-html/dc/d05/dsyrk_8f_source.html
dsyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc) 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 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. . Parameters: uplo: string 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. . trans: string 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. TRANS = 'C' or 'c' C := alpha*A**T*A + beta*C. . n: int specifies the order of the matrix C. N must be at least zero. k: int On entry with: TRANS = 'N' or 'n', K specifies the number of columns of the matrix A. TRANS = 'T' or 't' or 'C' or 'c', K specifies the number of rows of the matrix A. K must be at least zero. . alpha: float scalar. a: matrix<float> matrix A. lda: int specifies the first dimension of A. beta: float scalar. c: matrix<float> matrix C, is overwritten by the lower triangular part of the updated matrix. ldc: int specifies the first dimension of C Returns: void, C is overwritten by the lower triangular part of the updated matrix.