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*16array, 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 leastmax( 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*16array, 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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms