BLAS/SRC/strmm.f(3)
π BLAS/SRC/strmm.f π
okay bestie, buckle up, because this is the Fortran file that lives at BLAS/SRC/strmm.f and it is lowkey a legend. it's a LAPACK/BLAS situation and it's giving "triangular matrix times matrix" realness. no cap. π¦
β¨ SYNOPSIS β¨
π Functions/Subroutines
subroutine strmm (side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)β this is the one and onlySTRMM, she's the whole moment π
πΈ Function/Subroutine Documentation πΈ
subroutine strmm (character side, character uplo, character transa, character diag, integer m, integer n, real alpha, real, dimension(lda,*) a, integer lda, real, dimension(ldb,*) b, integer ldb)
STRMM
π Purpose:
STRMM performs one of the matrix-matrix operations
B := alpha*op( A )*B, or B := alpha*B*op( A ),
where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T.
so yeah, it's literally the triangular-matrix glow-up machine β¨
π Parameters
SIDEβSIDEisCHARACTER*1. on entry,SIDEspecifies whetherop( A )multipliesBfrom the left or right, like this:SIDE = 'L' or 'l'βB := alpha*op( A )*B.SIDE = 'R' or 'r'βB := alpha*B*op( A ).
UPLOβUPLOisCHARACTER*1. on entry,UPLOspecifies whether the matrixAis an upper or lower triangular matrix, bestie:UPLO = 'U' or 'u'βAis an upper triangular matrix.UPLO = 'L' or 'l'βAis a lower triangular matrix.
TRANSAβTRANSAisCHARACTER*1. on entry,TRANSAspecifies the form ofop( A )to be used in the matrix multiplication, and it goes like:TRANSA = 'N' or 'n'βop( A ) = A.TRANSA = 'T' or 't'βop( A ) = A**T.TRANSA = 'C' or 'c'βop( A ) = A**T.
DIAGβDIAGisCHARACTER*1. on entry,DIAGspecifies whether or notAis unit triangular, as follows:DIAG = 'U' or 'u'βAis assumed to be unit triangular.DIAG = 'N' or 'n'βAis not assumed to be unit triangular.
MβMisINTEGER. on entry,Mspecifies the number of rows ofB.Mmust be at least zero. (zero is the floor, periodt)NβNisINTEGER. on entry,Nspecifies the number of columns ofB.Nmust be at least zero.ALPHAβALPHAisREAL. on entry,ALPHAspecifies the scalaralpha. whenalphais zero thenAis not referenced andBneed not be set before entry. (so you can just... skip the setup? iconic behaviour fr fr π)AβAisREALarray, dimension( LDA, k ), wherekismwhenSIDE = 'L' or 'l'and isnwhenSIDE = 'R' or 'r'.- before entry with
UPLO = 'U' or 'u', the leadingkbykupper triangular part of the arrayAmust contain the upper triangular matrix and the strictly lower triangular part ofAis not referenced. - before entry with
UPLO = 'L' or 'l', the leadingkbyklower triangular part of the arrayAmust contain the lower triangular matrix and the strictly upper triangular part ofAis not referenced. - note that when
DIAG = 'U' or 'u', the diagonal elements ofAare not referenced either, but are assumed to be unity. β¨
- before entry with
LDAβLDAisINTEGER. on entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. whenSIDE = 'L' or 'l'thenLDAmust be at leastmax( 1, m ), whenSIDE = 'R' or 'r'thenLDAmust be at leastmax( 1, n ).BβBisREALarray, dimension( LDB, N ). before entry, the leadingmbynpart of the arrayBmust contain the matrixB, and on exit is overwritten by the transformed matrix. (she gets a whole new look, no cap π )LDBβLDBisINTEGER. on entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program.LDBmust be at leastmax( 1, m ).
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π§ 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.
fr, these four wrote this thing back in 1989 and it's still out here slaying in every BLAS build. main character energy since day one. π«Ά
Definition at line 176 of file strmm.f.
β Author
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole page, bestie π that was LAPACK, Version 3.12.0, dated Tue Nov 28 2023 12:08:41, and yeah it's still BLAS/SRC/strmm.f(3) at the end of the day. go forth and multiply your triangular matrices, but like, correctly. slay β¨π
π¦ where this page comes from
- centos-stream 10: blas 3.12.0-7.el10 Β· BSD-3-Clause-Open-MPI
- fedora 43: blas 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 43: blas 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 44: blas 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- fedora 44: blas 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms