BLAS/SRC/zgerc.f(3)
π BLAS/SRC/zgerc.f(3)
okay so this is a page from the Library Functions Manual β specifically it's BLAS/SRC/zgerc.f(3), and bestie, it's a whole vibe. It's a Fortran subroutine doc, auto-generated and everything. Let's get into it β¨
β¨ NAME β¨
BLAS/SRC/zgerc.f β that's literally the name, that's the whole name, and honestly? Iconic for that. π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine zgerc (m, n, alpha, x, incx, y, incy, a, lda)β this right here is theZGERCsubroutine, she's the main character of this whole page π
π Function/Subroutine Documentation π
subroutine zgerc (integer m, integer n, complex*16 alpha, complex*16, dimension(*) x, integer incx, complex*16, dimension(*) y, integer incy, complex*16, dimension(lda,*) a, integer lda)
ZGERC π« β here's her full signature, copy it exactly bestie, don't you dare typo it.
πΈ Purpose:
!>
!> ZGERC performs the rank 1 operation
!>
!> A := alpha*x*y**H + A,
!>
!> where alpha is a scalar, x is an m element vector, y is an n element
!> vector and A is an m by n matrix.
!>
So basically: she does a rank 1 operation and updates A with alpha*x*y**H + A. Simple, clean, slays. Note that y**H is the conjugate transpose of y β that's the "c" in zgerc, iykyk π§
π Parameters
M
!> M is INTEGER
!> On entry, M specifies the number of rows of the matrix A.
!> M must be at least zero.
!>
The number of rows of A. It's an INTEGER, and it must be at least zero β no negatives, she said what she said π
ββοΈ
N
!> N is INTEGER
!> On entry, N specifies the number of columns of the matrix A.
!> N must be at least zero.
!>
The number of columns of A. Also an INTEGER, also must be at least zero. Symmetry, we love to see it π
ALPHA
!> ALPHA is COMPLEX*16
!> On entry, ALPHA specifies the scalar alpha.
!>
It's COMPLEX*16 and it's the scalar alpha. That's it, that's her whole job. Lowkey the easiest gig on this page π
X
!> X is COMPLEX*16 array, dimension at least
!> ( 1 + ( m - 1 )*abs( INCX ) ).
!> Before entry, the incremented array X must contain the m
!> element vector x.
!>
A COMPLEX*16 array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before you call her, the incremented array X must contain the m element vector x. Note the abs( INCX ) β the incx can be negative and she still handles it, queen behavior π«Ά
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. INCX must not be zero β like, do not do that, it's giving undefined chaos π
Y
!> Y is COMPLEX*16 array, dimension at least
!> ( 1 + ( n - 1 )*abs( INCY ) ).
!> Before entry, the incremented array Y must contain the n
!> element vector y.
!>
COMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. Yes the bound uses INCY, not INCX β she's careful like that β¨
INCY
!> INCY is INTEGER
!> On entry, INCY specifies the increment for the elements of
!> Y. INCY must not be zero.
!>
The increment for Y's elements. And yeah β INCY must not be zero either. Two for two on the "must not be zero" rule, periodt π―
A
!> A is COMPLEX*16 array, dimension ( LDA, N )
!> Before entry, the leading m by n part of the array A must
!> contain the matrix of coefficients. On exit, A is
!> overwritten by the updated matrix.
!>
COMPLEX*16 array, dimension ( LDA, N ). Before entry, the leading m by n part of A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix β so heads up bestie, she's mutating your baby, not returning a cute new one π
LDA
!> 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, m ).
!>
The first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, m ) β that max( 1, m ) is doing real work for the m=0 case, we stan a defensive queen π
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Four institutions, one icon. The academic collab of the century fr fr ππ
π₯ Further Details:
!>
!> Level 2 Blas routine.
!>
!> -- 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 β that's the classification, put some respect on it β
And the origin story: 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). Literally older than most of the internet and still out here doing rank 1 updates π
Definition at line 129 of file zgerc.f. If you're out here grepping for where she lives in the source, that's the spot π
π§ Author
Generated automatically by Doxygen for LAPACK from the source code. Yeah, a robot wrote the docs, but the drip? handcrafted π
okay that's the whole page bestie, you're basically a BLAS girlie now π
LAPACK βΏ Version 3.12.0 βΏ BLAS/SRC/zgerc.f(3) β mwah, that's the sign-off, go forth and conjugate your transposes π«Άπ
π¦ 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