laein(3)

πŸ’… NAME πŸ’…

laein β€” okay so this is the laein family of routines from the Library Functions Manual (that's the manual name, bestie, folding it in right here), and it's all about eigvec by Hessenberg inverse iteration. Periodt. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

✨ Functions ✨

  • subroutine claein (rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info) β€” CLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. πŸ’–
  • subroutine dlaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info) β€” DLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. πŸ”₯
  • subroutine slaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info) β€” SLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. 🌸
  • subroutine zlaein (rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info) β€” ZLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. ⭐

🧚 Detailed Description 🧚

okay so like. that's it. that's the whole detailed description. moving on bestie, the real tea is below πŸ’€


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’œ subroutine claein

subroutine claein (logical rightv, logical noinit, integer n, complex,
    dimension( ldh, * ) h, integer ldh, complex w, complex, dimension( * )
    v, complex, dimension( ldb, * ) b, integer ldb, real, dimension( * )
    rwork, real eps3, real smlnum, integer info)

CLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. 🫢

🌈 Purpose:

!>
!> CLAEIN uses inverse iteration to find a right or left eigenvector
!> corresponding to the eigenvalue W of a complex upper Hessenberg
!> matrix H.
!>

🌸 Parameters

  • RIGHTV
!>          RIGHTV is LOGICAL
!>          = .TRUE. : compute right eigenvector;
!>          = .FALSE.: compute left eigenvector.
!>
  • NOINIT
!>          NOINIT is LOGICAL
!>          = .TRUE. : no initial vector supplied in V
!>          = .FALSE.: initial vector supplied in V.
!>
  • N
!>          N is INTEGER
!>          The order of the matrix H.  N >= 0.
!>
  • H
!>          H is COMPLEX array, dimension (LDH,N)
!>          The upper Hessenberg matrix H.
!>
  • LDH
!>          LDH is INTEGER
!>          The leading dimension of the array H.  LDH >= max(1,N).
!>
  • W
!>          W is COMPLEX
!>          The eigenvalue of H whose corresponding right or left
!>          eigenvector is to be computed.
!>
  • V
!>          V is COMPLEX array, dimension (N)
!>          On entry, if NOINIT = .FALSE., V must contain a starting
!>          vector for inverse iteration; otherwise V need not be set.
!>          On exit, V contains the computed eigenvector, normalized so
!>          that the component of largest magnitude has magnitude 1; here
!>          the magnitude of a complex number (x,y) is taken to be
!>          |x| + |y|.
!>
  • B
!>          B is COMPLEX array, dimension (LDB,N)
!>
  • LDB
!>          LDB is INTEGER
!>          The leading dimension of the array B.  LDB >= max(1,N).
!>
  • RWORK
!>          RWORK is REAL array, dimension (N)
!>
  • EPS3
!>          EPS3 is REAL
!>          A small machine-dependent value which is used to perturb
!>          close eigenvalues, and to replace zero pivots.
!>
  • SMLNUM
!>          SMLNUM is REAL
!>          A machine-dependent value close to the underflow threshold.
!>
  • INFO
!>          INFO is INTEGER
!>          = 0:  successful exit
!>          = 1:  inverse iteration did not converge; V is set to the
!>                last iterate.
!>

πŸŽ€ Author

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

Definition at line 147 of file claein.f. ✨


πŸ”₯ subroutine dlaein

subroutine dlaein (logical rightv, logical noinit, integer n, double
    precision, dimension( ldh, * ) h, integer ldh, double precision wr,
    double precision wi, double precision, dimension( * ) vr, double
    precision, dimension( * ) vi, double precision, dimension( ldb, * ) b,
    integer ldb, double precision, dimension( * ) work, double precision
    eps3, double precision smlnum, double precision bignum, integer info)

DLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. πŸ’–

🌈 Purpose:

!>
!> DLAEIN uses inverse iteration to find a right or left eigenvector
!> corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg
!> matrix H.
!>

🌸 Parameters

  • RIGHTV
!>          RIGHTV is LOGICAL
!>          = .TRUE. : compute right eigenvector;
!>          = .FALSE.: compute left eigenvector.
!>
  • NOINIT
!>          NOINIT is LOGICAL
!>          = .TRUE. : no initial vector supplied in (VR,VI).
!>          = .FALSE.: initial vector supplied in (VR,VI).
!>
  • N
!>          N is INTEGER
!>          The order of the matrix H.  N >= 0.
!>
  • H
!>          H is DOUBLE PRECISION array, dimension (LDH,N)
!>          The upper Hessenberg matrix H.
!>
  • LDH
!>          LDH is INTEGER
!>          The leading dimension of the array H.  LDH >= max(1,N).
!>
  • WR
!>          WR is DOUBLE PRECISION
!>
  • WI
!>          WI is DOUBLE PRECISION
!>          The real and imaginary parts of the eigenvalue of H whose
!>          corresponding right or left eigenvector is to be computed.
!>
  • VR
!>          VR is DOUBLE PRECISION array, dimension (N)
!>
  • VI
!>          VI is DOUBLE PRECISION array, dimension (N)
!>          On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain
!>          a real starting vector for inverse iteration using the real
!>          eigenvalue WR; if NOINIT = .FALSE. and WI.ne.0.0, VR and VI
!>          must contain the real and imaginary parts of a complex
!>          starting vector for inverse iteration using the complex
!>          eigenvalue (WR,WI); otherwise VR and VI need not be set.
!>          On exit, if WI = 0.0 (real eigenvalue), VR contains the
!>          computed real eigenvector; if WI.ne.0.0 (complex eigenvalue),
!>          VR and VI contain the real and imaginary parts of the
!>          computed complex eigenvector. The eigenvector is normalized
!>          so that the component of largest magnitude has magnitude 1;
!>          here the magnitude of a complex number (x,y) is taken to be
!>          |x| + |y|.
!>          VI is not referenced if WI = 0.0.
!>
  • B
!>          B is DOUBLE PRECISION array, dimension (LDB,N)
!>
  • LDB
!>          LDB is INTEGER
!>          The leading dimension of the array B.  LDB >= N+1.
!>
πŸ’€ careful bestie β€” that's LDB >= N+1 here, not max(1,N) like in the complex version. iykyk.
  • WORK
!>          WORK is DOUBLE PRECISION array, dimension (N)
!>
  • EPS3
!>          EPS3 is DOUBLE PRECISION
!>          A small machine-dependent value which is used to perturb
!>          close eigenvalues, and to replace zero pivots.
!>
  • SMLNUM
!>          SMLNUM is DOUBLE PRECISION
!>          A machine-dependent value close to the underflow threshold.
!>
  • BIGNUM
!>          BIGNUM is DOUBLE PRECISION
!>          A machine-dependent value close to the overflow threshold.
!>
  • INFO
!>          INFO is INTEGER
!>          = 0:  successful exit
!>          = 1:  inverse iteration did not converge; VR is set to the
!>                last iterate, and so is VI if WI.ne.0.0.
!>

πŸŽ€ Author

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

Definition at line 170 of file dlaein.f. ✨


🌸 subroutine slaein

subroutine slaein (logical rightv, logical noinit, integer n, real,
    dimension( ldh, * ) h, integer ldh, real wr, real wi, real, dimension( *
    ) vr, real, dimension( * ) vi, real, dimension( ldb, * ) b, integer ldb,
    real, dimension( * ) work, real eps3, real smlnum, real bignum, integer
    info)

SLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. 🌷

🌈 Purpose:

!>
!> SLAEIN uses inverse iteration to find a right or left eigenvector
!> corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg
!> matrix H.
!>

🌸 Parameters

  • RIGHTV
!>          RIGHTV is LOGICAL
!>          = .TRUE. : compute right eigenvector;
!>          = .FALSE.: compute left eigenvector.
!>
  • NOINIT
!>          NOINIT is LOGICAL
!>          = .TRUE. : no initial vector supplied in (VR,VI).
!>          = .FALSE.: initial vector supplied in (VR,VI).
!>
  • N
!>          N is INTEGER
!>          The order of the matrix H.  N >= 0.
!>
  • H
!>          H is REAL array, dimension (LDH,N)
!>          The upper Hessenberg matrix H.
!>
  • LDH
!>          LDH is INTEGER
!>          The leading dimension of the array H.  LDH >= max(1,N).
!>
  • WR
!>          WR is REAL
!>
  • WI
!>          WI is REAL
!>          The real and imaginary parts of the eigenvalue of H whose
!>          corresponding right or left eigenvector is to be computed.
!>
  • VR
!>          VR is REAL array, dimension (N)
!>
  • VI
  • VI β€” it’s a REAL array, dimension (N). okay so entry lore: if NOINIT = .FALSE. and WI = 0.0, then VR must contain a real starting vector for inverse iteration using the real eigenvalue WR; if NOINIT = .FALSE. and WI.ne.0.0, then VR and VI must contain the real and imaginary parts of a complex starting vector for inverse iteration using the complex eigenvalue (WR,WI); otherwise VR and VI need not be set. on exit, if WI = 0.0 (real eigenvalue), VR contains the computed real eigenvector; if WI.ne.0.0 (complex eigenvalue), VR and VI contain the real and imaginary parts of the computed complex eigenvector. The eigenvector is normalized so that the component of largest magnitude has magnitude 1; here the magnitude of a complex number (x,y) is taken to be |x| + |y|. and bestie, VI is not referenced if WI = 0.0. ✨
  • B β€” B is a REAL array, dimension (LDB,N). that’s the whole vibe here. 🫢
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= N+1. no cap, that bound matters. πŸ’…
  • WORK β€” WORK is a REAL array, dimension (N). iconic little workspace behavior. πŸŽ€
  • EPS3 β€” EPS3 is REAL. A small machine-dependent value which is used to perturb close eigenvalues, and to replace zero pivots. lowkey important. 🌸
  • SMLNUM β€” SMLNUM is REAL. A machine-dependent value close to the underflow threshold. yep, that’s the underflow-adjacent one. πŸ¦‹
  • BIGNUM β€” BIGNUM is REAL. A machine-dependent value close to the overflow threshold. highkey the overflow-side twin. πŸ”₯
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit
    • = 1: inverse iteration did not converge; VR is set to the last iterate, and so is VI if WI.ne.0.0.
bestie, please note: INFO = 1 means inverse iteration did not converge β€” VR is the last iterate, and VI too if WI.ne.0.0. that’s the caveat, periodt. πŸ’€

πŸ‘‘ Author

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

Definition at line 170 of file slaein.f.


πŸ¦‹ subroutine zlaein

   subroutine zlaein (logical rightv, logical noinit, integer n, complex*16,
       dimension( ldh, * ) h, integer ldh, complex*16 w, complex*16, dimension(
       * ) v, complex*16, dimension( ldb, * ) b, integer ldb, double precision,
       dimension( * ) rwork, double precision eps3, double precision smlnum,
       integer info)

ZLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. okayyyyy, that’s the whole main-character summary. πŸ’œ

🎯 Purpose

okay so ZLAEIN uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue W of a complex upper Hessenberg matrix H. that’s the tea, and it’s exact. ✨

🌸 Parameters

  • RIGHTV β€” RIGHTV is LOGICAL:
    • = .TRUE. : compute right eigenvector;
    • = .FALSE.: compute left eigenvector.
  • NOINIT β€” NOINIT is LOGICAL:
    • = .TRUE. : no initial vector supplied in V
    • = .FALSE.: initial vector supplied in V.
  • N β€” N is INTEGER. The order of the matrix H. N >= 0. slay, nonnegative order. πŸ‘‘
  • H β€” H is a COMPLEX*16 array, dimension (LDH,N). The upper Hessenberg matrix H. that’s the star of the show. ⭐
  • LDH β€” LDH is INTEGER. The leading dimension of the array H. LDH >= max(1,N). πŸ’…
  • W β€” W is COMPLEX*16. The eigenvalue of H whose corresponding right or left eigenvector is to be computed. this is the eigenvalue in question, bestie. 🌈
  • V β€” V is a COMPLEX*16 array, dimension (N). On entry, if NOINIT = .FALSE., V must contain a starting vector for inverse iteration; otherwise V need not be set. On exit, V contains the computed eigenvector, normalized so that the component of largest magnitude has magnitude 1; here the magnitude of a complex number (x,y) is taken to be |x| + |y|. πŸŽ€
  • B β€” B is a COMPLEX*16 array, dimension (LDB,N). that’s it, that’s the array. 🫢
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N). πŸ¦‹
  • RWORK β€” RWORK is a DOUBLE PRECISION array, dimension (N). real workspace for the complex function, iykyk. 🌸
  • EPS3 β€” EPS3 is DOUBLE PRECISION. A small machine-dependent value which is used to perturb close eigenvalues, and to replace zero pivots. πŸ”₯
  • SMLNUM β€” SMLNUM is DOUBLE PRECISION. A machine-dependent value close to the underflow threshold. πŸ’€
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit
    • = 1: inverse iteration did not converge; V is set to the last iterate.
warning bestie: if INFO = 1, inverse iteration did not converge; V is set to the last iterate. no cap, that’s your signal. πŸ™ˆ

πŸ‘‘ Author

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

Definition at line 147 of file zlaein.f.

πŸ“œ Author

Generated automatically by Doxygen for LAPACK from the source code.

πŸ’– and that’s the page, bestie β€” footer says this is LAPACK, Version 3.12.0, page laein(3), so you know exactly where this lore came from. mwah πŸ’‹

πŸ“¦ where this page comes from