CTPMV(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

🌸 NAME 🌸

okay so bestie, this page is literally about /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/ctpmv.f β€” that's the file, that's the whole name section, no notes πŸ’…

It lives in the Library Functions Manual (ikr, fancy), and today's main character is CTPMV ✨


πŸŽ€ SYNOPSIS πŸŽ€

Functions/Subroutines

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

like… that's it, that's the vibe check 🫢


πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

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

πŸ”₯ Purpose:

highkey the whole point, so pay attention bestie:

!>
!> 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.
!>

so it's giving matrix-vector math but the matrix is squished into packed form πŸ¦‹ n 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.
!>
  • 'U' or 'u' β€” A is an upper triangular matrix, queen goes on top πŸ‘‘
  • 'L' or 'l' β€” A is a lower triangular matrix, she's down there πŸ’…

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.
!>
  • 'N' or 'n' β€” literally just x := A*x, no transposing, we're being simple today πŸ™ˆ
  • 'T' or 't' β€” x := A**T*x, transposed era πŸ”„
  • 'C' or 'c' β€” x := A**H*x, conjugate-transposed, the fancy one 🧚

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.
!>
  • 'U' or 'u' β€” A is assumed to be unit triangular (the diagonal is all ones, trust 🀞)
  • 'N' or 'n' β€” A is not assumed to be unit triangular, so like, actually use the diagonal values

N

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

the order of matrix A, bestie. must be at least zero β€” don't come at it with negatives ⭐

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.
!>

okay so this is the packed one, the whole aesthetic πŸ’– dimension is at least ( ( n*( n + 1 ) )/2 ) fr fr.

  • with UPLO = 'U' or 'u': upper triangular, packed sequentially column by column β€” so AP( 1 ) holds a( 1, 1 ), then AP( 2 ) and AP( 3 ) hold a( 1, 2 ) and a( 2, 2 ) respectively, and so on πŸŽ€
  • with UPLO = 'L' or 'l': lower triangular, packed sequentially column by column β€” so AP( 1 ) holds a( 1, 1 ), then AP( 2 ) and AP( 3 ) hold a( 2, 1 ) and a( 3, 1 ) respectively, and so on πŸŽ€
⚠️ heads up bestie: when DIAG = 'U' or 'u', the diagonal elements of A are not referenced β€” they're just assumed to be unity. so don't bother putting anything cute there, nobody's looking πŸ’€

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.
!>

dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). on entry, the incremented array X holds the n element vector x β€” and on exit, X gets overwritten with the transformed vector x. not me being destructive 😭 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.
!>

the increment for the elements of X. must not be zero β€” that's a hard no, zero is not the vibe 🌈


🫢 Author

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

the whole squad really showed up for this one πŸ’œβœ¨


πŸ¦‹ 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.
!>
  • it's a Level 2 Blas routine, periodt πŸ”₯
  • the vector and matrix arguments are not referenced when N = 0, or M = 0 (yes, M, that's literally what it says, iykyk πŸ™ˆ)
  • written on 22-October-1986 by Jack Dongarra (Argonne National Lab.), Jeremy Du Croz (Nag Central Office.), Sven Hammarling (Nag Central Office.), and Richard Hanson (Sandia National Labs.) β€” vintage icon behavior, they were doing this before it was cool πŸ’…

Definition at line 141 of file ctpmv.f.


⭐ Author

Generated automatically by Doxygen for LAPACK from the source code. so like, a robot wrote the docs, but the vibes are immaculate 🧚


and that's the whole page bestie!! this is LAPACK, Version 3.12.0, documented for /home/abui...SRC/ctpmv.f(3) β€” go forth and multiply (matrices) πŸ“πŸ’–βœ¨

πŸ“¦ where this page comes from