/home/abui...C/zsyr2k.f(3)
π ZSYR2K π
okay so this is straight out of the Library Functions Manual (the LAPACK one, bestie) and the file it lives in is literally called /home/abui...C/zsyr2k.f(3) β cute, right? anyway. sit down. we're doing symmetric rank-2k updates and honestly? it's giving iconic. π¦
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/zsyr2k.f
yes bestie that is the whole name, it's a whole ass path, do not come for me, that's just how the build directory is set up. π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZSYR2K (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)β that's the one. that's ZSYR2K. main character energy fr fr π
π«Ά Function/Subroutine Documentation π«Ά
subroutine ZSYR2K (character uplo, character trans, integer n, integer k,
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)
ZSYR2K. (yes it's just its own name up there, it's a whole thing, we don't question it π)
π Purpose π
okay so lowkey here's the whole vibe. ZSYR2K 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. no cap, that's the whole thing. π₯
π Parameters π
UPLOβUPLOisCHARACTER*1. on entry,UPLOspecifies whether the upper or lower triangular part of the arrayCis to be referenced, like this:UPLO = 'U' or 'u'β only the upper triangular part ofCis to be referenced. βUPLO = 'L' or 'l'β only the lower triangular part ofCis to be referenced. β
TRANSβTRANSisCHARACTER*1. on entry,TRANSspecifies 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βNisINTEGER. on entry,Nspecifies the order of the matrixC.Nmust be at least zero. (at least zero, bestie, we do not do negative orders here π)KβKisINTEGER. on entry withTRANS = 'N' or 'n',Kspecifies the number of columns of the matricesAandB, and on entry withTRANS = 'T' or 't',Kspecifies the number of rows of the matricesAandB.Kmust be at least zero. same energy, also at least zero πALPHAβALPHAisCOMPLEX*16. on entry,ALPHAspecifies the scalar alpha. that's it. that's the whole parameter. slay πΈAβAisCOMPLEX*16 array, dimension ( LDA, ka ), wherekaiskwhenTRANS = 'N' or 'n', and isnotherwise. before entry withTRANS = 'N' or 'n', the leadingnbykpart of the arrayAmust contain the matrixA; otherwise the leadingkbynpart of the arrayAmust contain the matrixA. literally just put the matrix in the matrix, iykyk π¦LDAβLDAisINTEGER. on entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. whenTRANS = 'N' or 'n'thenLDAmust be at leastmax( 1, n ), otherwiseLDAmust be at leastmax( 1, k ). write that down. πBβBisCOMPLEX*16 array, dimension ( LDB, kb ), wherekbiskwhenTRANS = 'N' or 'n', and isnotherwise. before entry withTRANS = 'N' or 'n', the leadingnbykpart of the arrayBmust contain the matrixB; otherwise the leadingkbynpart of the arrayBmust contain the matrixB. yes it's the exact same deal asA, it's a matching set, they're twins πLDBβLDBisINTEGER. on entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program. whenTRANS = 'N' or 'n'thenLDBmust be at leastmax( 1, n ), otherwiseLDBmust be at leastmax( 1, k ). twins again, obsessed. β¨BETAβBETAisCOMPLEX*16. on entry,BETAspecifies the scalar beta. that's the whole description, it's short and it knows it. πCβCisCOMPLEX*16 array, dimension ( LDC, N ).- before entry with
UPLO = 'U' or 'u', the leadingnbynupper triangular part of the arrayCmust contain the upper triangular part of the symmetric matrix, and the strictly lower triangular part ofCis not referenced. on exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. (so like. it gets rewritten. be aware. π) - before entry with
UPLO = 'L' or 'l', the leadingnbynlower triangular part of the arrayCmust contain the lower triangular part of the symmetric matrix, and the strictly upper triangular part ofCis not referenced. on exit, the lower triangular part of the arrayCis overwritten by the lower triangular part of the updated matrix.
- before entry with
LDCβLDCisINTEGER. on entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ). that's non-negotiable bestie π«Ά
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
look at that lineup. four whole legends. we stan. π
β 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?? they were doing this before i was even a thought. respect. genuinely iconic behaviour. π§
Definition at line 187 of file zsyr2k.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. yes it wrote itself basically, it's self-made, it's independent, we love that for it. π
and that's the page, bestie!! brought to you by LAPACK, Version 3.12.0 β and the header was all like /home/abui...C/zsyr2k.f(3), which is the file, in case you were wondering. mwah. π go forth and multiply your matrices. π
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms