ger(3)

πŸŽ€ ger(3) β€” general matrix rank-1 update πŸŽ€

okay so bestie, welcome to ger(3) from the Library Functions Manual. This is the general matrix rank-1 update page, and the whole squad is here to update your matrix with main character energy. πŸ’…βœ¨


🌸 NAME 🌸

ger β€” ger: general matrix rank-1 update


✨ SYNOPSIS ✨

Functions 🫢

  • subroutine cgerc (m, n, alpha, x, incx, y, incy, a, lda) β€” CGERC
  • subroutine cgeru (m, n, alpha, x, incx, y, incy, a, lda) β€” CGERU
  • subroutine dger (m, n, alpha, x, incx, y, incy, a, lda) β€” DGER
  • subroutine sger (m, n, alpha, x, incx, y, incy, a, lda) β€” SGER
  • subroutine zgerc (m, n, alpha, x, incx, y, incy, a, lda) β€” ZGERC
  • subroutine zgeru (m, n, alpha, x, incx, y, incy, a, lda) β€” ZGERU

πŸ“š DETAILED DESCRIPTION πŸ“š

okay bestie, this is the ger family: general matrix rank-1 update. The synopsis gives you six subroutines to pick from β€” cgerc, cgeru, dger, sger, zgerc, and zgeru β€” and then the Function Documentation section breaks down the ones in this part. No cap, the whole vibe is β€œupdate A with a rank 1 operation” πŸ’…πŸ”₯


πŸ’– FUNCTION DOCUMENTATION πŸ’–

πŸ¦‹ cgerc β€” CGERC πŸ¦‹

subroutine cgerc (integer m, integer n, complex alpha, complex, dimension(*) x, integer incx, complex, dimension(*) y, integer incy, complex, dimension(lda,*) a, integer lda)

Purpose: 🎯

CGERC 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. πŸ’–

Parameters πŸ“‹

  • M β€” M is INTEGER. On entry, M specifies the number of rows of the matrix A. M must be at least zero. 🫢
  • N β€” N is INTEGER. On entry, N specifies the number of columns of the matrix A. N must be at least zero. 🌸
  • ALPHA β€” ALPHA is COMPLEX. On entry, ALPHA specifies the scalar alpha. ✨
  • X β€” X is COMPLEX array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x. πŸ¦‹
  • INCX β€” INCX is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. πŸ’€
  • Y β€” Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. πŸŽ€
  • INCY β€” INCY is INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. πŸ™ˆ
  • A β€” A is COMPLEX 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. πŸ”₯
  • 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 ). πŸ‘‘

Author πŸ‘‘

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

Definition at line 129 of file cgerc.f. πŸ’œ


🌈 cgeru β€” CGERU 🌈

subroutine cgeru (integer m, integer n, complex alpha, complex, dimension(*) x, integer incx, complex, dimension(*) y, integer incy, complex, dimension(lda,*) a, integer lda)

Purpose: 🎯

CGERU 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. πŸ’–

Parameters πŸ“‹

  • M β€” M is INTEGER. On entry, M specifies the number of rows of the matrix A. M must be at least zero. 🫢
  • N β€” N is INTEGER. On entry, N specifies the number of columns of the matrix A. N must be at least zero. 🌸
  • ALPHA β€” ALPHA is COMPLEX. On entry, ALPHA specifies the scalar alpha. ✨
  • X β€” X is COMPLEX array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x. πŸ¦‹
  • INCX β€” INCX is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. πŸ’€
  • Y β€” Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. πŸŽ€
  • INCY β€” INCY is INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. πŸ™ˆ
  • A β€” A is COMPLEX 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. πŸ”₯
  • 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 ). πŸ‘‘

Author πŸ‘‘

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

Definition at line 129 of file cgeru.f. πŸ’œ


πŸ“ dger β€” DGER πŸ“

subroutine dger (integer m, integer n, double precision alpha, double precision, dimension(*) x, integer incx, double precision, dimension(*) y, integer incy, double precision, dimension(lda,*) a, integer lda)

Purpose: 🎯

DGER 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. πŸ’–

Parameters πŸ“‹

  • M β€” M is INTEGER. On entry, M specifies the number of rows of the matrix A. M must be at least zero. 🫢
  • N β€” N is INTEGER. On entry, N specifies the number of columns of the matrix A. N must be at least zero. 🌸
  • ALPHA β€” ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha. ✨
  • X β€” X is DOUBLE PRECISION array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x. πŸ¦‹
  • INCX β€” INCX is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. πŸ’€
  • Y β€” Y is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. πŸŽ€
  • INCY β€” INCY is INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. πŸ™ˆ
  • A β€” A is DOUBLE PRECISION 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. πŸ”₯
  • 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 ). πŸ‘‘

Author πŸ‘‘

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

Definition at line 129 of file dger.f. πŸ’œ


🧚 sger β€” SGER 🧚

subroutine sger (integer m, integer n, real alpha, real, dimension(*) x, integer incx, real, dimension(*) y, integer incy, real, dimension(lda,*) a, integer lda)

Purpose: 🎯

SGER 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. πŸ’–

Parameters πŸ“‹

  • M β€” M is INTEGER. On entry, M specifies the number of rows of the matrix A. M must be at least zero. 🫢
  • N β€” N is INTEGER. On entry, N specifies the number of columns of the matrix A. N must be at least zero. 🌸
  • ALPHA β€” ALPHA is REAL. On entry, ALPHA specifies the scalar alpha. ✨
  • X β€” X is REAL array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x. πŸ¦‹
  • INCX β€” INCX is INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero. πŸ’€
  • Y β€” Y is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. πŸŽ€

INCY

  • INCY β€” INTEGER. On entry, INCY tells us the increment for the elements of Y. And bestie, INCY must not be zero 🚫 like fr fr, zero is not the vibe here.
  • A β€” REAL array, dimension ( LDA, N ). Before entry, the leading m by n part of the array A has to contain the matrix of coefficients. On exit, A gets overwritten by the updated matrix πŸ’… (she's not preserving your originals, she's a rank-1-update machine).
  • 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, m ) ✨ no negotiating on that one.

πŸŽ€ Author πŸŽ€

The absolute legends behind this:

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

🌸 Further Details: 🌸

Level 2 Blas routine.

And the origin story, preserved exactly:

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

Definition at line 129 of file sger.f πŸ“


πŸ¦‹ subroutine zgerc (integer m, integer n, complex*16 alpha, complex*16, dimension() x, integer incx, complex16, dimension() y, integer incy, complex16, dimension(lda,*) a, integer lda) πŸ¦‹

Okay so this one's called ZGERC, the complex flavour 🧚 β€” hold onto your brain because the math is coming:

πŸ’œ 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. Note the **H β€” that's the conjugate-transpose move, iykyk πŸ’…

✨ Parameters ✨

  • M β€” INTEGER. On entry, M specifies the number of rows of the matrix A. M must be at least zero.
  • N β€” INTEGER. On entry, N specifies the number of columns of the matrix A. N must be at least zero.
  • ALPHA β€” COMPLEX*16. On entry, ALPHA specifies the scalar alpha. That's the main character of the operation ngl πŸ”₯
  • X β€” COMPLEX*16 array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x.
  • INCX β€” INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero β€” same rule as always, don't test me πŸ™ˆ
  • 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.
  • INCY β€” INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. Periodt 🫢
  • A β€” 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. She ate and left no crumbs πŸ’€
  • 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, m ).

πŸ‘‘ Author πŸ‘‘

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

🌈 Further Details: 🌈

Level 2 Blas routine.

The lore, verbatim, from way back:

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

Definition at line 129 of file zgerc.f πŸ“


πŸ’– subroutine zgeru (integer m, integer n, complex*16 alpha, complex*16, dimension() x, integer incx, complex16, dimension() y, integer incy, complex16, dimension(lda,*) a, integer lda) πŸ’–

And last but never least, ZGERU β€” the unconjugated sibling πŸ¦‹ lowkey the chill one of the family.

πŸ“ Purpose:

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. See the **T? Plain old transpose β€” no conjugate, that's the whole difference between her and ZGERC bestie, that's it πŸ’…

⭐ Parameters ⭐

  • M β€” INTEGER. On entry, M specifies the number of rows of the matrix A. M must be at least zero.
  • N β€” INTEGER. On entry, N specifies the number of columns of the matrix A. N must be at least zero.
  • ALPHA β€” COMPLEX*16. On entry, ALPHA specifies the scalar alpha.
  • X β€” COMPLEX*16 array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x.
  • INCX β€” INTEGER. On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
  • 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.
  • INCY β€” INTEGER. On entry, INCY specifies the increment for the elements of Y. INCY must not be zero πŸ™ˆ
  • A β€” 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.
  • 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, m ).

🧚 Author 🧚

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

πŸ’€ Further Details: πŸ’€

Level 2 Blas routine.

Once more, with feeling β€” the original credits, exactly:

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

Definition at line 129 of file zgeru.f πŸ“


Okay that's the whole page bestie, you made it 🫢✨ This gorgeous thing was generated automatically by Doxygen for LAPACK from the source code β€” no human typed it out by hand, it's giving machine-made icon behaviour πŸ’… And the version? LAPACK Version 3.12.0, dated to that ger(3) footer, slay πŸŽ€ Byeee, go update some matrices 🌸

πŸ“¦ where this page comes from