BLAS/SRC/ctpmv.f(3)

πŸ’– BLAS/SRC/ctpmv.f β€” the CTPMV glow-up πŸ’–

okay bestie, welcome to the <pink>LAPACK</pink> BLAS pages, this one's BLAS/SRC/ctpmv.f and she's a real one πŸ’…


✨ NAME ✨

BLAS/SRC/ctpmv.f β€” no cap, that's the whole name, she's lowkey mysterious like that πŸ¦‹


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine ctpmv (uplo, trans, diag, n, ap, x, incx)

CTPMV β€” that's her, that's the icon πŸ‘‘


πŸ’œ Function/Subroutine Documentation πŸ’œ

subroutine ctpmv (character uplo, character trans, character diag, integer
    n, complex, dimension(*) ap, complex, dimension(*) x, integer incx)

CTPMV 🫢

πŸŽ€ Purpose πŸŽ€

so like, CTPMV 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, supplied in packed form. literally packed, she's traveling light βœˆοΈπŸ’–


⭐ 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**H*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, she's chill like that πŸ™ˆ)
  • AP β€” AP is COMPLEX 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. she's not even looking at them, she just knows πŸ’…

  • X β€” X is COMPLEX 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. yeah she ate and left no crumbs 😭

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

🧚 Author 🧚

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

the whole squad showed up, main character energy across four institutions πŸ‘‘πŸ‘‘πŸ‘‘πŸ‘‘


🌈 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.
okay so fun fact, N = 0 or M = 0 and she literally does not reference the vector and matrix arguments at all. nothing. ghosted. iconic behaviour honestly πŸ’€βœ¨

Definition at line 141 of file ctpmv.f.


πŸ¦‹ Author πŸ¦‹

Generated automatically by Doxygen for LAPACK from the source code. (yes bestie, a robot wrote the docs, we stan automation πŸ€–πŸ’–)


Version 3.12.0 β€” Tue Nov 28 2023 12:08:41 β€” BLAS/SRC/ctpmv.f(3)

and that's the whole page, bestie!! go forth and pack your triangular matrices, stay hydrated, and remember: INCX is never zero πŸ’…πŸ’–βœ¨πŸ¦‹πŸŒΈπŸŽ€πŸ«ΆπŸ”₯πŸ‘‘πŸŒˆβ­πŸ’œ