ZGERU(3)

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

πŸ‘‘ NAME πŸ‘‘

okay so bestie, this whole page is about zgeru.f β€” and yeah, the full glow-up path is literally:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/BLAS/SRC/zgeru.f

it's a BLAS girlie living her best life inside LAPACK, and I'm gonna walk you through her whole vibe. no cap. πŸ’…


✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines

she's giving:

subroutine ZGERU (m, n, alpha, x, incx, y, incy, a, lda)

and the function name is literally just ZGERU. main character energy, honestly. πŸŽ€


πŸ’– Function/Subroutine Documentation πŸ’–

okay here's the full signature, typed out exactly because we do not play with types:

subroutine ZGERU (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)

ZGERU

🌸 Purpose:

ok so the goal here is very specific and honestly iconic:

!>
!> ZGERU  performs the rank 1 operation
!>
!>    A := alpha*x*y**T + 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.
!>

translation bestie: it takes your matrix A and updates it β€” alpha (a scalar) times x (m elements) times y**T (n elements), all added onto A. rank 1 update, ate, no crumbs. πŸ”₯


πŸŽ€ Parameters

⭐ M

!>          M is INTEGER
!>           On entry, M specifies the number of rows of the matrix A.
!>           M must be at least zero.
!>

M is an INTEGER, it's the number of rows of A, and it's gotta be at least zero. negative rows? not today. πŸ™ˆ

⭐ N

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

N is an INTEGER, number of columns of A, minimum zero. she's not complicated. πŸ’œ

⭐ ALPHA

!>          ALPHA is COMPLEX*16
!>           On entry, ALPHA specifies the scalar alpha.
!>

ALPHA is COMPLEX*16 and it's just... the scalar alpha. that's it. that's the whole personality. 🫢

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

X is a COMPLEX*16 array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). before you come in, the incremented array X needs to already hold that m-element vector x. lowkey important. ✨

⭐ INCX

!>          INCX is INTEGER
!>           On entry, INCX specifies the increment for the elements of
!>           X. INCX must not be zero.
!>

INCX is an INTEGER and it's the stride between elements of X. and listen β€” INCX must not be zero. do not do it. πŸ’€

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

Y is a COMPLEX*16 array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ), and before entry the incremented array Y must contain the n-element vector y. twin of X, honestly. πŸ¦‹

⭐ INCY

!>          INCY is INTEGER
!>           On entry, INCY specifies the increment for the elements of
!>           Y. INCY must not be zero.
!>

INCY is an INTEGER, stride for Y's elements, and again: INCY must not be zero. same rule, same drama. 😭

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

A is a COMPLEX*16 array, dimension ( LDA, N ). going in, the leading m-by-n chunk of A holds the matrix of coefficients; coming out, A gets overwritten with the updated matrix. she gets a makeover in place. πŸ’…

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

LDA is an INTEGER, the first dimension of A as declared in the calling (sub) program, and it must be at least max( 1, m ). respect the leading dimension bestie. πŸ‘‘


🌈 Author 🌈

shoutout to the whole committee, fr fr:

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

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

it's a Level 2 BLAS routine, written 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 but still slaying. πŸ•°οΈβ­


πŸ’œ Definition πŸ’œ

Definition at line 129 of file zgeru.f.

(go look, she's right there 😌)


🌸 Author 🌸

Generated automatically by Doxygen for LAPACK from the source code.

so nobody hand-wrote this page, Doxygen did it and honestly? good for her. πŸŽ€


okay that's the whole tea, bestie β€” now go do your rank 1 updates responsibly and remember: INCX and INCY are never, ever zero. 🫢

and that's a wrap! πŸ’– this was LAPACK Version 3.12.0, page /home/abui...SRC/zgeru.f(3) β€” mwah, bye! βœ¨πŸ¦‹

πŸ“¦ where this page comes from