/home/abui...C/csyr2k.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ¦‹ /home/abui...C/csyr2k.f(3) β€” ok bestie, this one's from the Library Functions Manual and it's lowkey iconic πŸ’…

So this page is literally documenting /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/csyr2k.f and no cap, it's a whole vibe β€” a Level 3 BLAS routine that lives rent-free in LAPACK. Let's get into it πŸŽ€


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine CSYR2K (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
    ldc)
  • CSYR2K β€” that's her, that's the girl 🌸

πŸ’– 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 β€” okay so here's what she does, bestie πŸ‘‘

🫢 Purpose

!>
!> CSYR2K  performs one of the symmetric rank 2k operations
!>
!>    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.
!>

Like, she's doing a symmetric rank 2k operation β€” two of them actually, pick your fighter. The math is right there, don't shoot the messenger 😭

🌈 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 flexible πŸ’…)
  • 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.
  • ALPHA β€” ALPHA is COMPLEX. On entry, ALPHA specifies the scalar alpha. That's it, that's the whole description πŸŽ€
  • 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. Same energy as ALPHA, honestly 🫢
  • 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.
Ngl bestie, pay attention to which half you're filling. The other half gets straight-up ignored β€” not read, not touched, not her problem πŸ’€
  • 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.

Give it up for the institutions, periodt 🌟

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

She's a Level 3 BLAS routine, written on 8-February-1989 by:

  • Jack Dongarra, Argonne National Laboratory.
  • Iain Duff, AERE Harwell.
  • Jeremy Du Croz, Numerical Algorithms Group Ltd.
  • Sven Hammarling, Numerical Algorithms Group Ltd.

1989?? Vintage. Antique. Main character energy fr fr πŸ”₯


Definition at line 187 of file csyr2k.f. Go look, she's literally right there πŸ¦‹


🌸 Author 🌸

Generated automatically by Doxygen for LAPACK from the source code. Not a human, just vibes and a doc generator ✨


πŸ’œ mwah, that's the page! Sending you off with the cutest little sign-off ever: this icon is from LAPACK, Version 3.12.0, and she said see you later bestie πŸŽ€πŸ’…πŸ«Ά
πŸ“¦ where this page comes from