single_blas_level3(3)

πŸ“¦
version 3.11.0 Β· 2 versions
, in debian bookworm

πŸ’… single_blas_level3 β€” real πŸ’…

okay bestie, pull up a chair because this is the single_blas_level3(3) page from LAPACK and it's a WHOLE vibe. it's giving "level 3 BLAS but make it single precision" and honestly? iconic. ✨


✨ NAME ✨

single_blas_level3 β€” real πŸ“

like. that's it. that's the name. it's the real (single-precision, REAL-typed) family of LEVEL 3 BLAS routines. slay.


🌸 SYNOPSIS 🌸

πŸ¦‹ Functions πŸ¦‹

  • subroutine sgemm (TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC) β€” SGEMM πŸ’–
  • subroutine ssymm (SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC) β€” SSYMM πŸ’–
  • subroutine ssyr2k (UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC) β€” SSYR2K πŸ’–
  • subroutine ssyrk (UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC) β€” SSYRK πŸ’–
  • subroutine strmm (SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB) β€” STRMM πŸ’–
  • subroutine strsm (SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB) β€” STRSM πŸ’–

πŸ‘‘ Detailed Description πŸ‘‘

this is the group of real LEVEL 3 BLAS routines. that's the whole lore. periodt. πŸ’…


🧚 Function Documentation 🧚

⭐ subroutine sgemm ⭐

subroutine sgemm (character TRANSA, character TRANSB, integer M, integer N,
    integer K, real ALPHA, real, dimension(lda,*) A, integer LDA, real,
    dimension(ldb,*) B, integer LDB, real BETA, real, dimension(ldc,*) C,
    integer LDC)

SGEMM ✨

πŸŽ€ Purpose: πŸŽ€

SGEMM 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. literally the classic. no cap. πŸ”₯

πŸ’œ Parameters πŸ’œ

  • TRANSA β€” TRANSA is CHARACTER*1. on entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication, like this:
    • TRANSA = 'N' or 'n', op( A ) = A.
    • TRANSA = 'T' or 't', op( A ) = A**T.
    • TRANSA = 'C' or 'c', op( A ) = A**T.
  • TRANSB β€” TRANSB is CHARACTER*1. on entry, TRANSB specifies the form of op( 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 β€” M is INTEGER. on entry, M specifies the number of rows of the matrix op( A ) and of the matrix C. M must be at least zero.
  • N β€” N is INTEGER. on entry, N specifies the number of columns of the matrix op( B ) and the number of columns of the matrix C. N must be at least zero.
  • K β€” K is INTEGER. on entry, K specifies the number of columns of the matrix op( A ) and the number of rows of the matrix op( B ). K must be at least zero.
  • ALPHA β€” ALPHA is REAL. on entry, ALPHA specifies the scalar alpha.
  • A β€” A is REAL array, dimension ( LDA, ka ), where ka is k when TRANSA = 'N' or 'n', and is m otherwise. before entry with TRANSA = 'N' or 'n', the leading m by k part of the array A must contain the matrix A, otherwise the leading k by m 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 TRANSA = 'N' or 'n' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, k ).
  • B β€” B is REAL array, dimension ( LDB, kb ), where kb is n when TRANSB = 'N' or 'n', and is k otherwise. before entry with TRANSB = 'N' or 'n', the leading k by n part of the array B must contain the matrix B, otherwise the leading n by k 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 TRANSB = 'N' or 'n' then LDB must be at least max( 1, k ), otherwise LDB must be at least max( 1, n ).
  • BETA β€” BETA is REAL. on entry, BETA specifies the scalar beta. when BETA is supplied as zero then C need not be set on input. 🫢
  • C β€” C is REAL array, dimension ( LDC, N ). before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. on exit, the array C is overwritten by the m by n matrix ( alpha*op( A )*op( B ) + beta*C ).
  • 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, 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 ssymm ⭐

subroutine ssymm (character SIDE, character UPLO, integer M, integer N, real
    ALPHA, real, dimension(lda,*) A, integer LDA, real, dimension(ldb,*) B,
    integer LDB, real BETA, real, dimension(ldc,*) C, integer LDC)

SSYMM ✨

πŸŽ€ Purpose: πŸŽ€

SSYMM 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 honestly. πŸ‘‘

πŸ’œ Parameters πŸ’œ

  • SIDE β€” SIDE is CHARACTER*1. on entry, SIDE specifies whether the symmetric matrix A appears 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 β€” UPLO is CHARACTER*1. on entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is 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 β€” M is INTEGER. on entry, M specifies the number of rows of the matrix C. M must be at least zero.
  • N β€” N is INTEGER. on entry, N specifies the number of columns of the matrix C. N must be at least zero.
  • ALPHA β€” ALPHA is REAL. on entry, ALPHA specifies the scalar alpha.
  • A β€” A is REAL array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise. before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
  • LDA β€” LDA is INTEGER. on entry, LDA specifies the first dimension of A as declared in the calling (sub) program. when SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
  • B β€” B is REAL array, dimension ( LDB, N ). before entry, the leading m 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. LDB must be at least max( 1, m ).
  • BETA β€” BETA is REAL. on entry, BETA specifies the scalar beta. when BETA is supplied as zero then C need not be set on input. 🫢
  • C β€” C is REAL array, dimension ( LDC, N ). before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. on exit, the array C is overwritten by the m by n 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, 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.

ssyr2k</p> πŸ¦‹

subroutine ssyr2k (character UPLO, character TRANS, integer N, integer K,
    real ALPHA, real, dimension(lda,*) A, integer LDA, real,
    dimension(ldb,*) B, integer LDB, real BETA, real, dimension(ldc,*) C,
    integer LDC)

Purpose πŸ’…

SSYR2K does one of the symmetric rank 2k operations, and bestie, there's two of them so pay attention:

   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, one symmetric glow-up, that's the whole vibe. ✨

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, like so:

  • 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, and here are your options, no cap:

  • 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

N is INTEGER. On entry, N specifies the order of the matrix C. N must be at least zero. (Zero is allowed, bestie, it's not a crime.)

  • K

K is INTEGER. On entry with TRANS = 'N' or 'n', K specifies the number of columns of the matrices A and B. On entry with TRANS = 'T' or 't' or 'C' or 'c', K specifies the number of rows of the matrices A and B. Either way, K must be at least zero.

  • ALPHA

ALPHA is REAL. On entry, ALPHA specifies the scalar alpha. The main character of the scaling world. πŸ‘‘

  • A

A is REAL 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 REAL 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 REAL. On entry, BETA specifies the scalar beta. The other scalars could never. πŸ’…

  • C

C is REAL 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.

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.

ssyrk πŸ’œ

subroutine ssyrk (character UPLO, character TRANS, integer N, integer K,
    real ALPHA, real, dimension(lda,*) A, integer LDA, real BETA, real,
    dimension(ldc,*) C, integer LDC)

Purpose ⭐

SSYRK does one of the symmetric rank k operations, and it's giving "one matrix, two moods":

   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.

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, and the menu is short but iconic:

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

N is INTEGER. On entry, N specifies the order of the matrix C. N must be at least zero.

  • K

K is INTEGER. On entry with TRANS = 'N' or 'n', K specifies the number of columns of the matrix A, and on entry with TRANS = 'T' or 't' or 'C' or 'c', K specifies the number of rows of the matrix A. K must be at least zero.

  • ALPHA

ALPHA is REAL. On entry, ALPHA specifies the scalar alpha.

  • A

A is REAL 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 ).

  • BETA

BETA is REAL. On entry, BETA specifies the scalar beta.

  • C

C is REAL 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.

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.

strmm πŸ”₯

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)

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 basically A can slide in on the left or the right, and it can be transposed or not β€” main character energy, truly. ✨

Parameters πŸ’–

  • SIDE

SIDE is CHARACTER*1. On entry, SIDE specifies whether op( A ) multiplies B from 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

UPLO is CHARACTER*1

…and that's exactly where this chunk runs out, bestie β€” UPLO's whole situation keeps going, so hold that thought 🫢

  • UPLO is a CHARACTER*1 β€” okay so on entry, it's the vibe check for whether A is upper or lower triangular, and it goes like this:
    • UPLO = 'U' or 'u' β†’ A is an upper triangular matrix. πŸ‘‘
    • UPLO = 'L' or 'l' β†’ A is a lower triangular matrix. πŸ¦‹
  • TRANSA is a CHARACTER*1 β€” on entry, it tells you what form of op( A ) is being used in the matrix multiplication, bestie:
    • TRANSA = 'N' or 'n' β†’ op( A ) = A.
    • TRANSA = 'T' or 't' β†’ op( A ) = A**T.
    • TRANSA = 'C' or 'c' β†’ op( A ) = A**T.
  • DIAG is a CHARACTER*1 β€” on entry, it spills whether A is unit triangular or not:
    • DIAG = 'U' or 'u' β†’ A is assumed to be unit triangular.
    • DIAG = 'N' or 'n' β†’ A is not assumed to be unit triangular.
  • M is an INTEGER β€” on entry, M is the number of rows of B. It must be at least zero. No negative vibes allowed. πŸ’€
  • N is an INTEGER β€” on entry, N is the number of columns of B. It must be at least zero. Periodt. ✨
  • ALPHA is a REAL β€” on entry, ALPHA is the scalar alpha. When alpha is zero, A is not referenced and B doesn't need to be set before entry. It's giving "we don't need that". πŸ™ˆ
  • A is a REAL array, dimension ( LDA, k ), where k is m when SIDE = 'L' or 'l' and is n when SIDE = 'R' or 'r'.
    • Before entry with UPLO = 'U' or 'u', the leading k by k upper triangular part of A must contain the upper triangular matrix, and the strictly lower triangular part of A is not referenced.
    • Before entry with UPLO = 'L' or 'l', the leading k by k lower triangular part of A must contain the lower triangular matrix, and the strictly upper triangular part of A is not referenced.
    • Note that when DIAG = 'U' or 'u', the diagonal elements of A are not referenced either, but are assumed to be unity. So don't even worry about them, bestie. πŸ’…
  • LDA is an INTEGER β€” on entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = 'L' or 'l', LDA must be at least max( 1, m ); when SIDE = 'R' or 'r', LDA must be at least max( 1, n ).
  • B is a REAL array, dimension ( LDB, N ) β€” before entry, the leading m by n part of B must contain the matrix B, and on exit it's overwritten by the transformed matrix. So it's a glow-up, basically. ✨
  • LDB is an INTEGER β€” on entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 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 strsm (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)

STRSM

Purpose:

STRSM 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. So B comes in as B and leaves as X. It's a transformation, no cap. πŸ’«

Parameters

  • SIDE is a CHARACTER*1 β€” on entry, SIDE specifies whether op( A ) appears on the left or right of X:
    • SIDE = 'L' or 'l' β†’ op( A )*X = alpha*B.
    • SIDE = 'R' or 'r' β†’ X*op( A ) = alpha*B.
  • UPLO is a CHARACTER*1 β€” on entry, UPLO specifies whether A is an upper or lower triangular matrix:
    • UPLO = 'U' or 'u' β†’ A is an upper triangular matrix.
    • UPLO = 'L' or 'l' β†’ A is a lower triangular matrix.
  • TRANSA is a CHARACTER*1 β€” on entry, TRANSA specifies the form of op( A ):
    • TRANSA = 'N' or 'n' β†’ op( A ) = A.
    • TRANSA = 'T' or 't' β†’ op( A ) = A**T.
    • TRANSA = 'C' or 'c' β†’ op( A ) = A**T.
  • DIAG is a CHARACTER*1 β€” on entry, DIAG specifies whether A is unit triangular:
    • DIAG = 'U' or 'u' β†’ A is assumed to be unit triangular.
    • DIAG = 'N' or 'n' β†’ A is not assumed to be unit triangular.
  • M is an INTEGER β€” on entry, M specifies the number of rows of B. M must be at least zero.
  • N is an INTEGER β€” on entry, N specifies the number of columns of B. N must be at least zero.
  • ALPHA is a REAL β€” on entry, ALPHA specifies the scalar alpha. When alpha is zero, A is not referenced and B need not be set before entry.
  • A is a REAL array, dimension ( LDA, k ), where k is m when SIDE = 'L' or 'l' and k is n when SIDE = 'R' or 'r'.
    • Before entry with UPLO = 'U' or 'u', the leading k by k upper triangular part of A must contain the upper triangular matrix, and the strictly lower triangular part of A is not referenced.
    • Before entry with UPLO = 'L' or 'l', the leading k by k lower triangular part of A must contain the lower triangular matrix, and the strictly upper triangular part of A is not referenced.
    • Note that when DIAG = 'U' or 'u', the diagonal elements of A are not referenced either, but are assumed to be unity.
  • LDA is an INTEGER β€” on entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = 'L' or 'l', LDA must be at least max( 1, m ); when SIDE = 'R' or 'r', LDA must be at least max( 1, n ).
  • B is a REAL array, dimension ( LDB, N ) β€” before entry, the leading m by n part of B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
  • LDB is an INTEGER β€” on entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 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.


That's the whole tea, bestie! This is single_blas_level3(3) from LAPACK version 3.11.0, dated Sun Nov 27 2022. Go forth and solve those triangular systems β€” you absolutely ate. πŸ’–βœ¨πŸ¦‹
πŸ“¦ where this page comes from