BLAS/SRC/ztrmv.f(3)

✨ NAME ✨

BLAS/SRC/ztrmv.f β€” bestie, this is the home of ztrmv, a BLAS Level 2 routine that does triangular matrix-vector multiplication and does it flawlessly πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine ztrmv (uplo, trans, diag, n, a, lda, x, incx)
    ZTRMV

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine ztrmv β€” the whole signature, no cap

subroutine ztrmv (character uplo, character trans, character diag, integer
    n, complex*16, dimension(lda,*) a, integer lda, complex*16, dimension(*)
    x, integer incx)

ZTRMV


πŸŽ€ Purpose πŸŽ€

okay so. ZTRMV performs one of the matrix-vector operations

x := A*x,   or   x := A**T*x,   or   x := A**H*x,

where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix. it's giving linear algebra main character energy fr fr πŸ‘‘


πŸ’– Parameters πŸ’–

  • UPLO β€” bestie, this one is CHARACTER*1. On entry, UPLO specifies whether the matrix is an upper or lower triangular matrix as follows:
    • UPLO = 'U' or 'u' β†’ A is an upper triangular matrix. πŸ‘†
    • UPLO = 'L' or 'l' β†’ A is a lower triangular matrix. πŸ‘‡
  • TRANS β€” also CHARACTER*1. On entry, TRANS specifies the operation to be performed as follows:
    • TRANS = 'N' or 'n' β†’ x := A*x. ✨
    • TRANS = 'T' or 't' β†’ x := A**T*x. πŸ”„
    • TRANS = 'C' or 'c' β†’ x := A**H*x. πŸͺ„
  • DIAG β€” yep, CHARACTER*1 again. On entry, DIAG specifies whether or not A is unit triangular as follows:
    • DIAG = 'U' or 'u' β†’ A is assumed to be unit triangular. (diagonal is just vibes, aka ones 🫢)
    • DIAG = 'N' or 'n' β†’ A is not assumed to be unit triangular. (the diagonal is real and it counts πŸ’€)
  • N β€” this one's an INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero. no negatives, we don't do that here πŸ™ˆ
  • A β€” A is COMPLEX*16 array, dimension ( LDA, N ).
    • Before entry with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array 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 n by n lower triangular part of the array 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 like, they're off living their own life, untouched, iconic πŸ’…
  • LDA β€” INTEGER girlie. On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, n ). don't play with this one ⚠️
  • X β€” X is COMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ).
    • Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x. glow up complete, bestie 🌈
  • INCX β€” INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. zero is NOT the move here, fr. 🚫

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🧚 Further Details 🧚

  • Level 2 Blas routine.
  • The vector and matrix arguments are not referenced when N = 0, or M = 0
  • -- Written on 22-October-1986.
Jack Dongarra, Argonne National Lab.
Jeremy Du Croz, Nag Central Office.
Sven Hammarling, Nag Central Office.
Richard Hanson, Sandia National Labs.
the way this routine has been serving since 1986 and still ate... legends only πŸ‘‘

⭐ Definition ⭐

Definition at line 146 of file ztrmv.f.


🌸 Author (yes, again) 🌸

Generated automatically by Doxygen for LAPACK from the source code. she's automated, she's efficient, she's literally built different πŸ€–βœ¨


Version 3.12.0 Β· Tue Nov 28 2023 12:08:41 β€” and that's the whole page bestie, tysm for reading, go call ztrmv responsibly, mwah πŸ’–πŸ¦‹πŸŽ€