BLAS/SRC/zsymm.f(3)

πŸ’– BLAS/SRC/zsymm.f πŸ’–

okay bestie, let me tell you about this iconic BLAS routine, zsymm. it's a manual page for a Fortran subroutine that does symmetric matrix-matrix multiplication, and it's literally the blueprint. no cap.


🌸 NAME 🌸

BLAS/SRC/zsymm.f β€” this whole vibe is the zsymm subroutine, and it's giving symmetric matrix energy. periodt.


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine zsymm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
    ZSYMM

πŸŽ€ Function/Subroutine Documentation πŸŽ€

subroutine zsymm (character side, character uplo, integer m, integer n,
    complex*16 alpha, complex*16, dimension(lda,*) a, integer lda,
    complex*16, dimension(ldb,*) b, integer ldb, complex*16 beta,
    complex*16, dimension(ldc,*) c, integer ldc)

ZSYMM

πŸ’… Purpose πŸ’…

okay so ZSYMM performs one of the matrix-matrix operations, and it's giving iconic linear algebra behavior:

C := alpha*A*B + beta*C,

or

C := alpha*B*A + beta*C,

where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices. it's that simple, bestie.

πŸ¦‹ Parameters πŸ¦‹

  • SIDE β€” SIDE is CHARACTER*1. on entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows:
    • SIDE = 'L' or 'l' β†’ C := alpha*A*B + beta*C,
    • SIDE = 'R' or 'r' β†’ C := alpha*B*A + beta*C,
  • UPLO β€” UPLO is CHARACTER*1. on entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows:
    • UPLO = 'U' or 'u' β†’ Only the upper triangular part of the symmetric matrix is to be referenced.
    • UPLO = 'L' or 'l' β†’ Only the lower triangular part of the symmetric matrix is to be referenced.
  • M β€” M is INTEGER. on entry, M specifies the number of rows of the matrix C. M must be at least zero.
  • N β€” N is INTEGER. on entry, N specifies the number of columns of the matrix C. N must be at least zero.
  • ALPHA β€” ALPHA is COMPLEX*16. on entry, ALPHA specifies the scalar alpha.
  • A β€” A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise. before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
  • LDA β€” LDA is INTEGER. on entry, LDA specifies the first dimension of A as declared in the calling (sub) program. when SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
  • B β€” B is COMPLEX*16 array, dimension ( LDB, N ). before entry, the leading m by n part of the array B must contain the matrix B.
  • LDB β€” LDB is INTEGER. on entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
  • BETA β€” BETA is COMPLEX*16. on entry, BETA specifies the scalar beta. when BETA is supplied as zero then C need not be set on input.
  • C β€” C is COMPLEX*16 array, dimension ( LDC, N ). before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. on exit, the array C is overwritten by the m by n updated matrix.
  • LDC β€” LDC is INTEGER. on entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).

πŸ‘‘ Author πŸ‘‘

shoutout to the authors:

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

they ate, honestly. πŸ’…

🌈 Further Details 🌈

this is a Level 3 Blas routine. fr fr.

-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.

legends only. 🫢


Definition at line 188 of file zsymm.f. πŸ’…


this page was generated automatically by Doxygen for LAPACK from the source code. it's LAPACK Version 3.12.0. so next time you're doing some complex symmetric matrix math, you know who to call. bye bestie! πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from