double_blas_level3(3)
π double_blas_level3 π
okay bestie, so this page lives in section 3 of the manual (that's the library-calls girlies) and it's filed under LAPACK. It's literally the whole double-precision LEVEL 3 BLAS family in one place. Big page, big energy, so buckle up β this is part 1 of 3 π
β¨ NAME β¨
double_blas_level3 β double
like. that's the whole name section. the original just says double. we love a minimalist queen π
πΈ SYNOPSIS πΈ
π«Ά Functions
subroutine dgemm (TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA,
C, LDC)
DGEMM
subroutine dsymm (SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
DSYMM
subroutine dsyr2k (UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C,
LDC)
DSYR2K
subroutine dsyrk (UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
DSYRK
subroutine dtrmm (SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRMM
subroutine dtrsm (SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM
π Detailed Description π
This is the group of double LEVEL 3 BLAS routines. that's it, that's the vibe check. it's a squad, not a single function π
π₯ Function Documentation π₯
π subroutine dgemm π
subroutine dgemm (character TRANSA, character TRANSB, integer M, integer N,
integer K, double precision ALPHA, double precision, dimension(lda,*) A,
integer LDA, double precision, dimension(ldb,*) B, integer LDB, double
precision BETA, double precision, dimension(ldc,*) C, integer LDC)
DGEMM
β Purpose:
okay so DGEMM performs one of the matrix-matrix operations
C := alpha*op( A )*op( B ) + beta*C,
where op( X ) is one of
op( X ) = X or op( X ) = X**T,
alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. no cap, that's the whole thing π§
π Parameters
TRANSAβTRANSAisCHARACTER*1. On entry,TRANSAspecifies the form ofop( A )to be used in the matrix multiplication as follows:TRANSA = 'N' or 'n',op( A ) = A.TRANSA = 'T' or 't',op( A ) = A**T.TRANSA = 'C' or 'c',op( A ) = A**T.
TRANSBβTRANSBisCHARACTER*1. On entry,TRANSBspecifies the form ofop( B )to be used in the matrix multiplication as follows:TRANSB = 'N' or 'n',op( B ) = B.TRANSB = 'T' or 't',op( B ) = B**T.TRANSB = 'C' or 'c',op( B ) = B**T.
MβMisINTEGER. On entry,Mspecifies the number of rows of the matrixop( A )and of the matrixC.Mmust be at least zero.NβNisINTEGER. On entry,Nspecifies the number of columns of the matrixop( B )and the number of columns of the matrixC.Nmust be at least zero.KβKisINTEGER. On entry,Kspecifies the number of columns of the matrixop( A )and the number of rows of the matrixop( B ).Kmust be at least zero.ALPHAβALPHAisDOUBLE PRECISION. On entry,ALPHAspecifies the scalaralpha.AβAisDOUBLE PRECISIONarray, dimension( LDA, ka ), wherekaiskwhenTRANSA = 'N' or 'n', and ismotherwise. Before entry withTRANSA = 'N' or 'n', the leading m by k part of the arrayAmust contain the matrixA, otherwise the leading k by m part of the arrayAmust contain the matrixA.LDAβLDAisINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. WhenTRANSA = 'N' or 'n'thenLDAmust be at leastmax( 1, m ), otherwiseLDAmust be at leastmax( 1, k ).BβBisDOUBLE PRECISIONarray, dimension( LDB, kb ), wherekbisnwhenTRANSB = 'N' or 'n', and iskotherwise. Before entry withTRANSB = 'N' or 'n', the leading k by n part of the arrayBmust contain the matrixB, otherwise the leading n by k part of the arrayBmust contain the matrixB.LDBβLDBisINTEGER. On entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program. WhenTRANSB = 'N' or 'n'thenLDBmust be at leastmax( 1, k ), otherwiseLDBmust be at leastmax( 1, n ).BETAβBETAisDOUBLE PRECISION. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenCneed not be set on input. (free real estate, bestie β¨)CβCisDOUBLE PRECISIONarray, dimension( LDC, N ). Before entry, the leading m by n part of the arrayCmust contain the matrixC, except whenbetais zero, in which caseCneed not be set on entry. On exit, the arrayCis overwritten by the m by n matrix( alpha*op( A )*op( B ) + beta*C ).LDCβLDCisINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust 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.
π¦ subroutine dsymm π¦
subroutine dsymm (character SIDE, character UPLO, integer M, integer N,
double precision ALPHA, double precision, dimension(lda,*) A, integer
LDA, double precision, dimension(ldb,*) B, integer LDB, double precision
BETA, double precision, dimension(ldc,*) C, integer LDC)
DSYMM
β Purpose:
DSYMM performs one of the matrix-matrix operations
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. symmetric queen behavior π
π Parameters
SIDEβSIDEisCHARACTER*1. On entry,SIDEspecifies whether the symmetric matrixAappears 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βUPLOisCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the symmetric matrixAis 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βMisINTEGER. On entry,Mspecifies the number of rows of the matrixC.Mmust be at least zero.NβNisINTEGER. On entry,Nspecifies the number of columns of the matrixC.Nmust be at least zero.ALPHAβALPHAisDOUBLE PRECISION. On entry,ALPHAspecifies the scalaralpha.AβAisDOUBLE PRECISIONarray, dimension( LDA, ka ), wherekaismwhenSIDE = 'L' or 'l'and isnotherwise. Before entry withSIDE = 'L' or 'l', the m by m part of the arrayAmust contain the symmetric matrix, such that whenUPLO = 'U' or 'u', the leading m by m upper triangular part of the arrayAmust contain the upper triangular part of the symmetric matrix and the strictly lower triangular part ofAis not referenced, and whenUPLO = 'L' or 'l', the leading m by m lower triangular part of the arrayAmust contain the lower triangular part of the symmetric matrix and the strictly upper triangular part ofAis not referenced. Before entry withSIDE = 'R' or 'r', the n by n part of the arrayAmust contain the symmetric matrix, such that whenUPLO = 'U' or 'u', the leading n by n upper triangular part of the arrayAmust contain the upper triangular part of the symmetric matrix and the strictly lower triangular part ofAis not referenced, and whenUPLO = 'L' or 'l', the leading n by n lower triangular part of the arrayAmust contain the lower triangular part of the symmetric matrix and the strictly upper triangular part ofAis not referenced.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 ), otherwiseLDAmust be at leastmax( 1, n ).BβBisDOUBLE PRECISIONarray, dimension( LDB, N ). Before entry, the leading m by n part of the arrayBmust contain the matrixB.LDBβLDBisINTEGER. On entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program.LDBmust be at leastmax( 1, m ).BETAβBETAisDOUBLE PRECISION. On entry,BETAspecifies the scalarbeta. WhenBETAis supplied as zero thenCneed not be set on input. (again!! zero beta = no input needed, we stan a low-effort entry condition π«Ά)CβCisDOUBLE PRECISIONarray, dimension( LDC, N ). Before entry, the leading m by n part of the arrayCmust contain the matrixC, except whenbetais zero, in which caseCneed not be set on entry. On exit, the arrayCis overwritten by the m by n updated matrix.LDCβLDCisINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust 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.
subroutine dsyr2k
subroutine dsyr2k (character UPLO, character TRANS, integer N, integer K,
double precision ALPHA, double precision, dimension(lda,*) A, integer
LDA, double precision, dimension(ldb,*) B, integer LDB, double precision
BETA, double precision, dimension(ldc,*) C, integer LDC)
DSYR2K β bestie, this is the one that does the whole symmetric rank 2k glow-up β¨
Purpose:
Okay so DSYR2K performs one of the symmetric rank 2k operations, and you get to pick which one π
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. Two matrices doing a little duet, one symmetric result. Cute. π
Parameters
UPLOβ it'sCHARACTER*1and honestly it's just here to ask which half ofCare we even looking at? π«Ά
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 ofCis to be referenced.UPLO = 'L' or 'l'β Only the lower triangular part ofCis to be referenced.
TRANSβ alsoCHARACTER*1, and this one decides which of the two operations from up top actually happens πΈ
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.TRANS = 'C' or 'c'βC := alpha*A**T*B + alpha*B**T*A + beta*C.
Nβ anINTEGER, and it's giving order of the matrix. On entry,Nspecifies the order of the matrixC.Nmust be at least zero. No negative eras allowed πKβ anINTEGER, and its job description changes depending onTRANS(iconic, honestly). On entry withTRANS = 'N' or 'n',Kspecifies the number of columns of the matricesAandB, and on entry withTRANS = 'T' or 't' or 'C' or 'c',Kspecifies the number of rows of the matricesAandB.Kmust be at least zero.ALPHAβ it'sDOUBLE PRECISION.On entry,ALPHAspecifies the scalar alpha. Yes bestie, it's just alpha. That's the whole thing. πAβ aDOUBLE PRECISIONarray, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N' or 'n', and isnotherwise.
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. Context-dependent queen β¨
LDAβ anINTEGER. 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 ).Bβ aDOUBLE PRECISIONarray, dimension( LDB, kb ), wherekbiskwhenTRANS = 'N' or 'n', and isnotherwise.
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. Same energy as A, but make it B π
LDBβ anINTEGER. 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 ).BETAβDOUBLE PRECISION.On entry,BETAspecifies the scalar beta. The other scalar. The second half of the duo. πCβ aDOUBLE PRECISIONarray, 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.
Not referenced means NOT REFERENCED, bestie. Don't go reading that half, it's not part of the conversation π
LDCβ anINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ).
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
Level 3 Blas routine. Yes ma'am, certified Level 3 π
-- 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.
subroutine dsyrk
subroutine dsyrk (character UPLO, character TRANS, integer N, integer K,
double precision ALPHA, double precision, dimension(lda,*) A, integer
LDA, double precision BETA, double precision, dimension(ldc,*) C,
integer LDC)
DSYRK β the solo version of the one above. One matrix, one rank k, zero drama π¦
Purpose:
DSYRK performs one of the symmetric rank k operations:
C := alpha*A*A**T + beta*C,
or
C := alpha*A**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case. One girl, two possible lewks π
Parameters
UPLOβCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayCis to be referenced as follows: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βCHARACTER*1. On entry,TRANSspecifies the operation to be performed as follows:TRANS = 'N' or 'n'βC := alpha*A*A**T + beta*C.TRANS = 'T' or 't'βC := alpha*A**T*A + beta*C.TRANS = 'C' or 'c'βC := alpha*A**T*A + beta*C.
Real talk:'T'and'C'land you in the exact same place here π₯
Nβ anINTEGER. On entry,Nspecifies the order of the matrixC.Nmust be at least zero.Kβ anINTEGER, and again its whole personality depends onTRANS. On entry withTRANS = 'N' or 'n',Kspecifies the number of columns of the matrixA, and on entry withTRANS = 'T' or 't' or 'C' or 'c',Kspecifies the number of rows of the matrixA.Kmust be at least zero.ALPHAβDOUBLE PRECISION.On entry,ALPHAspecifies the scalar alpha. Just alpha. Living its truth πAβ aDOUBLE PRECISIONarray, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N' or 'n', and isnotherwise.
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β anINTEGER. 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 ).BETAβDOUBLE PRECISION.On entry,BETAspecifies the scalar beta.Cβ aDOUBLE PRECISIONarray, 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.
Half ofCis off-limits depending onUPLO. Respect the boundary, bestie π«Ά
LDCβ anINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ).
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.
subroutine dtrmm
subroutine dtrmm (character SIDE, character UPLO, character TRANSA,
character DIAG, integer M, integer N, double precision ALPHA, double
precision, dimension(lda,*) A, integer LDA, double precision,
dimension(ldb,*) B, integer LDB)
DTRMM β triangular matrix Γ matrix, and it goes both ways π
Purpose:
DTRMM 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
okay so we're mid-dtrmm right now and the very last crumb of its Purpose equation is op( A ) = A or op( A ) = A**T. β got it? good. now the parameters, bestie, and there are eleven of them so hydrate first π§
β¨ Parameters β¨
SIDEβSIDEisCHARACTER*1. on entry,SIDEtells you whetherop( A )multipliesBfrom the left or the 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,UPLOspills whetherAis upper or lower triangular:UPLO = 'U'or'u'βAis an upper triangular matrix.UPLO = 'L'or'l'βAis a lower triangular matrix.
TRANSAβTRANSAisCHARACTER*1. on entry,TRANSAsays which form ofop( A )gets used in the matrix multiplication: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,DIAGsays whetherAis unit triangular or not: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,Mis the number of rows ofB.Mmust be at least zero. periodt.NβNisINTEGER. on entry,Nis the number of columns ofB.Nmust be at least zero.ALPHAβALPHAisDOUBLE PRECISION.on entry,ALPHAis the scalar alpha. and here's the slay: when alpha is zero thenAis not referenced andBneed not be set before entry. free real estate πAβAisDOUBLE PRECISION array, 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. iconic behaviour honestly.
- 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βBisDOUBLE PRECISION array, dimension ( LDB, N ). before entry, the leadingmbynpart of the arrayBmust contain the matrixB, and on exit is overwritten by the transformed matrix. it's giving glow-up β¨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.
π subroutine dtrsm π
subroutine dtrsm (character SIDE, character UPLO, character TRANSA,
character DIAG, integer M, integer N, double precision ALPHA, double
precision, dimension(lda,*) A, integer LDA, double precision,
dimension(ldb,*) B, integer LDB)
Purpose:
DTRSM solves one of the matrix equations
op( A )*X = alpha*B, or X*op( A ) = alpha*B,
where alpha is a scalar, X and B are m by n matrices, 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.
The matrix X is overwritten on B. π
Parameters
SIDEβSIDEisCHARACTER*1. on entry,SIDEspecifies whetherop( A )appears on the left or right ofXas follows:SIDE = 'L'or'l'βop( A )*X = alpha*B.SIDE = 'R'or'r'βX*op( A ) = alpha*B.
UPLOβUPLOisCHARACTER*1. on entry,UPLOspecifies whether the matrixAis an upper or lower triangular matrix as follows: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 as follows: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.NβNisINTEGER. on entry,Nspecifies the number of columns ofB.Nmust be at least zero.ALPHAβALPHAisDOUBLE PRECISION.on entry,ALPHAspecifies the scalar alpha. when alpha is zero thenAis not referenced andBneed not be set before entry.AβAisDOUBLE PRECISION array, dimension ( LDA, k ),- where
kismwhenSIDE = 'L'or'l'andkisnwhenSIDE = '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.
- where
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βBisDOUBLE PRECISION array, dimension ( LDB, N ). before entry, the leadingmbynpart of the arrayBmust contain the right-hand side matrixB, and on exit is overwritten by the solution matrixX. the transformation arc π¦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.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. (not a human, just vibes π€π)
and that's the whole page bestie!! you read all of double_blas_level3(3) and honestly? ate. this little legend came from Version 3.11.0, dated Sun Nov 27 2022, and the man page name is literally double_blas_level3(3) β go forth and multiply your triangular matrices, mwah π
πβ¨
π¦ where this page comes from
- debian bookworm: liblapack-doc 3.11.0-2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms