BLAS/SRC/dtpmv.f(3)

✨ NAME ✨

BLAS/SRC/dtpmv.f β€” bestie, it's the Level 2 BLAS routine that does triangular matrix-vector multiplication with the matrix all packed up πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine dtpmv (uplo, trans, diag, n, ap, x, incx)
    DTPMV

πŸ’– Function/Subroutine Documentation πŸ’–

subroutine dtpmv (character uplo, character trans, character diag, integer n, double precision, dimension(*) ap, double precision, dimension(*) x, integer incx)

DTPMV πŸ‘‘

🌸 Purpose 🌸

okay so here's the whole vibe: DTPMV performs one of the matrix-vector operations

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, supplied in packed form. it's giving efficient, it's giving compact, no cap πŸ’…


🫢 Parameters 🫢

  • UPLO β€” UPLO 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 β€” TRANS is 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.
  • DIAG β€” DIAG is 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 β€” N is INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero. (zero is allowed bestie, we don't gatekeep 🌈)
  • AP β€” AP is DOUBLE PRECISION array, dimension at least ( ( n*( n + 1 ) )/2 ).

Before entry with UPLO = 'U' or 'u', the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on.

Before entry with UPLO = 'L' or 'l', the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on.

Note that when DIAG = 'U' or 'u', the diagonal elements of A are not referenced, but are assumed to be unity. πŸ‘€
  • X β€” X is DOUBLE PRECISION 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 on the way out ✨

  • INCX β€” INCX is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. 🚫

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

⭐ Definition ⭐

Definition at line 141 of file dtpmv.f.


Author: Generated automatically by Doxygen for LAPACK from the source code.


okay and that's the whole page, bestie πŸ’– β€” this one's straight from LAPACK Version 3.12.0, dated Tue Nov 28 2023 12:08:41, filed under BLAS/SRC/dtpmv.f(3). go forth and multiply (triangularly) πŸ¦‹βœ¨