BLAS/SRC/strmv.f(3)

πŸ’– strmv β€” the BLAS girlies' guide to triangular matrix-vector vibes πŸ’–

okay so this is a page from BLAS/SRC/strmv.f in the LAPACK manual and bestie, we are about to become so acquainted with triangular matrices. no cap. πŸ¦‹


✨ NAME ✨

BLAS/SRC/strmv.f β€” it's giving "single precision triangular matrix-vector multiply" and honestly? iconic. πŸ‘‘


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine strmv (uplo, trans, diag, n, a, lda, x, incx) β€” the whole entire vibe, right here. STRMV ✨

Function/Subroutine Documentation

subroutine strmv (character uplo, character trans, character diag, integer
    n, real, dimension(lda,*) a, integer lda, real, dimension(*) x, integer
    incx)

STRMV πŸ’…


πŸŽ€ Purpose πŸŽ€

okay so listen. STRMV performs one of the matrix-vector operations, and there are literally just two of them, pick your fighter:

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

where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix. that's it. that's the whole job. she does one thing and she does it well, periodt. πŸ’–


πŸ’œ Parameters πŸ’œ

  • UPLO β€” CHARACTER*1, bestie. 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 β€” 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**T*x. (yes bestie, same as 'T' for this real-valued routine, no cap) πŸ“
  • DIAG β€” CHARACTER*1. On entry, DIAG specifies whether or not A is unit triangular as follows:
    • DIAG = 'U' or 'u' β€” A is assumed to be unit triangular. ✨
    • DIAG = 'N' or 'n' β€” A is not assumed to be unit triangular. ✨
  • N β€” INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero. (zero is allowed, she's chill like that 😌)
  • A β€” REAL 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 don't go setting them and expecting anything, she's not looking.
  • LDA β€” INTEGER. On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, n ). 🌸
  • X β€” REAL 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. she took your old x and gave you a glow-up, you're welcome πŸ’…
  • INCX β€” INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. fr fr, don't do it. 🚫

πŸ‘‘ Author πŸ‘‘

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

(the academic royalty that brought you this routine, we stan 🫢)


πŸ”₯ 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 OGs wrote this in 1986 and it's still eating, we love to see it ✨

Definition at line 146 of file strmv.f.


πŸ’« Author πŸ’«

Generated automatically by Doxygen for LAPACK from the source code. (yes bestie, even the docs have a ghostwriter πŸ‘»)


and that's the whole page, no crumbs left. πŸŽ€

Version 3.12.0, dated Tue Nov 28 2023 12:08:41, straight outta BLAS/SRC/strmv.f(3) β€” mwah, bye bestie, go multiply something triangular πŸ’–βœ¨πŸ¦‹