BLAS/SRC/csyr2k.f(3)

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

okay bestie, sit DOWN, because we're about to talk about a LAPACK BLAS routine and honestly? she's iconic. this is the page for BLAS/SRC/csyr2k.f from the LAPACK manual, and by the end of this you're gonna be obsessed. no cap. πŸ¦‹


✨ NAME ✨

BLAS/SRC/csyr2k.f β€” the file itself, the source, the moment. πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine csyr2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
    • CSYR2K

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

subroutine csyr2k (character uplo, character trans, integer n, integer k, complex alpha, complex, dimension(lda,*) a, integer lda, complex, dimension(ldb,*) b, integer ldb, complex beta, complex, dimension(ldc,*) c, integer ldc)

CSYR2K


πŸ’œ Purpose:

okay so here's the tea, CSYR2K performs one of the symmetric rank 2k operations, and there are two of them, so pick your fighter:

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

or

   C := alpha*A**T*B + alpha*B**T*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. literally that's it, that's the whole vibe check. ✨


πŸ”₯ Parameters

  • UPLO β€” 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.
  • TRANS β€” TRANS is CHARACTER*1 on entry, TRANS specifies the operation to be performed as follows:
   TRANS = 'N' or 'n'    C := alpha*A*B**T + alpha*B*A**T +
                              beta*C.

   TRANS = 'T' or 't'    C := alpha*A**T*B + alpha*B**T*A +
                              beta*C.
  • N β€” N is INTEGER on entry, N specifies the order of the matrix C. N must be at least zero. (zero is allowed bestie, she's inclusive like that πŸ’…)
  • K β€” K is INTEGER on entry with TRANS = 'N' or 'n', K specifies the number of columns of the matrices A and B, and on entry with TRANS = 'T' or 't', K specifies the number of rows of the matrices A and B. K must be at least zero. periodt.
  • ALPHA β€” ALPHA is COMPLEX on entry, ALPHA specifies the scalar alpha. she's just a girl. πŸŽ€
  • A β€” A is COMPLEX 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.
  • LDA β€” 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 ).
  • B β€” B is COMPLEX array, dimension ( LDB, kb ), where kb 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 B must contain the matrix B, otherwise the leading k 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. when TRANS = 'N' or 'n' then LDB must be at least max( 1, n ), otherwise LDB must be at least max( 1, k ).
  • BETA β€” BETA is COMPLEX on entry, BETA specifies the scalar beta. her too. πŸ’œ
  • C β€” C is COMPLEX array, dimension ( LDC, N ) before entry with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. on exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix.

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.

  • 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, n ).

πŸ‘‘ Author

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

look at that lineup. main character energy from FOUR institutions. we love a collaborative slay. 🌈


🧚 Further Details:

  Level 3 Blas routine.

  -- 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.

okay 1989?? the way this routine is older than basically everyone reading this and she STILL serves. not me getting emotional over Fortran. πŸ˜­πŸ’–


πŸ“Œ Definition at line 187 of file csyr2k.f.


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code. (yes bestie, the docs wrote themselves, we're just here for the vibes πŸ¦‹)


and that's the whole page, fr fr β€” nothing skipped, nothing invented, every flag and every scalar accounted for. πŸ’…

Version 3.12.0 β€” Tue Nov 28 2023 12:08:41. mwah, xoxo, go call CSYR2K responsibly. πŸ’œβœ¨