DORGHR(3)

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

πŸŽ€ NAME πŸŽ€

So like, bestie, this whole page is about one file β€” literally the source file itself, and it lives at:

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

That's the main character. That's what we're looking at. Anyway, this is the dorghr.f page from the Library Functions Manual, so buckle up. πŸ’…


✨ SYNOPSIS ✨

🫢 Functions/Subroutines

  • subroutine DORGHR (n, ilo, ihi, a, lda, tau, work, lwork, info) β€” yup, that's the one. DORGHR.

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

subroutine DORGHR (integer n, integer ilo, integer ihi, double precision,
    dimension( lda, * ) a, integer lda, double precision, dimension( * )
    tau, double precision, dimension( * ) work, integer lwork, integer info)

DORGHR πŸ¦‹

🌸 Purpose:

okay so here's the vibe β€” this routine is:

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

So it literally builds Q out of those elementary reflectors that DGEHRD handed you. Iconic behavior, no cap. ✨

πŸŽ€ Parameters

  • N β€” N is INTEGER. The order of the matrix Q. N >= 0. That's it, that's the vibe check.
!>          N is INTEGER
!>          The order of the matrix Q. N >= 0.
!>
  • ILO β€” ILO is INTEGER.
!>          ILO is INTEGER
!>
  • IHI β€” IHI is INTEGER. And here's the important part, bestie, listen up: ILO and IHI must have the same values as in the previous call of DGEHRD. Q is equal to the unit matrix except in the submatrix Q(ilo+1:ihi,ilo+1:ihi). And the rules are 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0. Don't mess with those, fr fr. 😭
!>          IHI is INTEGER
!>
!>          ILO and IHI must have the same values as in the previous call
!>          of DGEHRD. Q is equal to the unit matrix except in the
!>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
!>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
!>
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). On entry? Those vectors that define the elementary reflectors, as returned by DGEHRD. On exit? Boom, you got the N-by-N orthogonal matrix Q. Glow-up arc. πŸ”₯
!>          A is DOUBLE PRECISION array, dimension (LDA,N)
!>          On entry, the vectors which define the elementary reflectors,
!>          as returned by DGEHRD.
!>          On exit, the N-by-N orthogonal matrix Q.
!>
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N). Respect the leading dimension or perish πŸ™ˆ
!>          LDA is INTEGER
!>          The leading dimension of the array A. LDA >= max(1,N).
!>
  • TAU β€” TAU is DOUBLE PRECISION array, dimension (N-1). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by DGEHRD.
!>          TAU is DOUBLE PRECISION array, dimension (N-1)
!>          TAU(i) must contain the scalar factor of the elementary
!>          reflector H(i), as returned by DGEHRD.
!>
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. cute little bonus value πŸ’–
!>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
!>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
!>
  • LWORK β€” LWORK is INTEGER. The dimension of the array WORK. LWORK >= IHI-ILO. For optimum performance LWORK >= (IHI-ILO)*NB, where NB is the optimal blocksize.
And the big one, bestie: 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. That's the -1 cheat code, iykyk. ⭐
!>          LWORK is INTEGER
!>          The dimension of the array WORK. LWORK >= IHI-ILO.
!>          For optimum performance LWORK >= (IHI-ILO)*NB, where NB is
!>          the optimal blocksize.
!>
!>          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.
!>
  • INFO β€” INFO is INTEGER. = 0: successful exit πŸŽ‰. < 0: if INFO = -i, the i-th argument had an illegal value πŸ’€.
!>          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.

Legends, all of them. 🫢

🌈 Definition at line 125 of file dorghr.f.

That's the spot. Line 125 of dorghr.f. Go look. 🧚


πŸ’œ Author

Generated automatically by Doxygen for LAPACK from the source code. Not written by a human hand, just robot magic ✨


and that's the whole page, bestie β€” LAPACK Version 3.12.0, dated /home/abui...RC/dorghr.f(3), and honestly? She ate. periodt. πŸ“πŸ’…

πŸ“¦ where this page comes from