ZUNGHR(3)

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

πŸ¦‹ zunghr.f(3) β€” like, the Library Functions Manual page for ZUNGHR πŸ’…

okay so this one lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zunghr.f β€” that's the whole NAME situation, bestie, it's literally just the file path. iconic of Fortran, honestly.


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine ZUNGHR (n, ilo, ihi, a, lda, tau, work, lwork, info)

ZUNGHR 🫢


🌸 Function/Subroutine Documentation 🌸

subroutine ZUNGHR (integer n, integer ilo, integer ihi, complex*16,
    dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau,
    complex*16, dimension( * ) work, integer lwork, integer info)

ZUNGHR πŸ‘‘

Purpose:

!> !> ZUNGHR generates a complex unitary matrix Q which is defined as the !> product of IHI-ILO elementary reflectors of order N, as returned by !> ZGEHRD: !> !> Q = H(ilo) H(ilo+1) . . . H(ihi-1). !>

so basically, bestie, this routine builds you a complex unitary matrix Q out of IHI-ILO elementary reflectors of order N, exactly the way ZGEHRD handed them to you. no cap. πŸ”₯


πŸ’– Parameters πŸ’–

  • N β€” N is INTEGER Β· the order of the matrix Q. gotta satisfy N >= 0. ✨
  • ILO β€” ILO is INTEGER πŸŽ€
  • IHI β€” IHI is INTEGER πŸŽ€

ILO and IHI must have the same values as in the previous call of ZGEHRD. like, don't go changing them on me, it will not slay. Q is equal to the unit matrix except in the submatrix Q(ilo+1:ihi,ilo+1:ihi). also 1 <= ILO <= IHI <= N, if N > 0; and ILO=1 and IHI=0, if N=0. ✨

  • A β€” A is COMPLEX*16 array, dimension (LDA,N) πŸ¦‹

on entry? the vectors which define the elementary reflectors, as returned by ZGEHRD. on exit? the N-by-N unitary matrix Q. glow-up of the century, honestly. πŸ’…

  • LDA β€” LDA is INTEGER 🌸

the leading dimension of the array A. needs LDA >= max(1,N). ⭐

  • TAU β€” TAU is COMPLEX*16 array, dimension (N-1) 🧚

TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by ZGEHRD. 🫢

  • WORK β€” WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) 🌈

on exit, if INFO = 0, WORK(1) returns the optimal LWORK. it's giving "workspace, but make it self-aware". πŸ”₯

  • LWORK β€” LWORK is INTEGER πŸ‘‘

the dimension of the array WORK. minimum is LWORK >= IHI-ILO. for optimum performance LWORK >= (IHI-ILO)*NB, where NB is the optimal blocksize. πŸ’œ

and here's the little trick, iykyk: if LWORK = -1, then a workspace query is assumed. the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. sneaky but legal. πŸ™ˆ

  • INFO β€” INFO is INTEGER πŸ’€
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value 😭

πŸ‘‘ Author πŸ‘‘

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.


πŸŽ€ Definition πŸŽ€

Definition at line 125 of file zunghr.f. slay. ⭐


πŸ“ Author (the other one) πŸ“

Generated automatically by Doxygen for LAPACK from the source code.


that's the whole page, bestie β€” and fr fr, this was LAPACK Version 3.12.0 doing its thing, straight out of /home/abui...RC/zunghr.f(3). mwah πŸ’‹ 🫢✨

πŸ“¦ where this page comes from