BLAS/SRC/ztrmv.f(3)

πŸ’… BLAS/SRC/ztrmv.f β€” Library Functions Manual

okay so bestie, welcome to the glow-up era of BLAS/SRC/ztrmv.f, straight out of the Library Functions Manual ✨ this is the whole page, no cap, every last flag and footnote included 🫢


🌸 NAME

BLAS/SRC/ztrmv.f β€” that's the file, that's the vibe πŸŽ€


✨ SYNOPSIS

Functions/Subroutines

  • subroutine ztrmv (uplo, trans, diag, n, a, lda, x, incx) β€” literally ZTRMV, the main character πŸ‘‘

πŸ’– Function/Subroutine Documentation

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

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

so basically it's giving matrix-vector multiplication but make it triangular πŸ’… A is either unit or non-unit, and either upper or lower triangular β€” pick your fighter.


πŸŽ€ Parameters

  • UPLO β€” CHARACTER*1. On entry, UPLO specifies whether the matrix is an upper or lower triangular matrix as follows:
!>          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 β€” CHARACTER*1. On entry, TRANS specifies the operation to be performed as follows:
!>          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.
!>

no transpose, transpose, or conjugate transpose β€” pick your era πŸ”₯

  • DIAG β€” CHARACTER*1. On entry, DIAG specifies whether or not A is unit triangular as follows:
!>          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 β€” INTEGER. On entry, N specifies the order of the matrix A. N must be at least zero.
!>          N is INTEGER
!>           On entry, N specifies the order of the matrix A.
!>           N must be at least zero.
!>
  • A β€” COMPLEX*16 array, dimension ( LDA, N ).
!>          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.
!>

key deets: the other triangle is literally not referenced (it's invisible, it's not invited to the party πŸ™ˆ), and when DIAG = 'U' or 'u' the diagonal isn't referenced either β€” it's just assumed to be unity. icon behavior tbh.

  • 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 ).
!>          LDA is 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 β€” COMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ).
!>          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.
!>

bestie she gets overwritten on exit with the transformed vector β€” it's a makeover, not a copy πŸ’…

  • INCX β€” INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
!>          INCX is INTEGER
!>           On entry, INCX specifies the increment for the elements of
!>           X. INCX must not be zero.
!>
⚠️ fr fr, INCX must not be zero. do not do it. zero is not the vibe here πŸ’€

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

level 2 BLAS routine, periodt 🧚 and yes β€” the vector and matrix arguments are not referenced when N = 0, or M = 0 (that's the source text exactly, M and all, iykyk 🌈).


πŸ“ Definition at line 146 of file ztrmv.f.


πŸ’œ Author

Generated automatically by Doxygen for LAPACK from the source code. (yes the robots did this, we just gave it ✨flavor✨)


okay that's the whole page, you ate that 🫢 LAPACK, Version 3.12.0, and the source is BLAS/SRC/ztrmv.f β€” later bestie, go multiply something triangular 😭 πŸ’–

πŸ“¦ where this page comes from