larrj(3)

πŸ’… larrj(3) β€” Library Functions Manual

okay bestie, so this is the larrj(3) page from the LAPACK manual, and ngl it's a glow-up page for two little subroutines that do the actual refining work inside stemr. Think of them as the backstage crew β€” nobody claps for them but the show does not go on without them. πŸŽ€


✨ NAME ✨

larrj β€” literally: larrj: step in stemr, refine eigval estimates. That's the whole vibe. It's a step inside stemr, and what it does is refine eigenvalue estimates. Periodt. πŸ’–


🌸 SYNOPSIS 🌸

🫢 Functions

subroutine dlarrj (n, d, e2, ifirst, ilast, rtol, offset, w, werr, work, iwork, pivmin, spdiam, info)

subroutine dlarrj (n, d, e2, ifirst, ilast, rtol, offset, w, werr, work,
    iwork, pivmin, spdiam, info)

DLARRJ performs refinement of the initial estimates of the eigenvalues of the matrix T.

subroutine slarrj (n, d, e2, ifirst, ilast, rtol, offset, w, werr, work, iwork, pivmin, spdiam, info)

subroutine slarrj (n, d, e2, ifirst, ilast, rtol, offset, w, werr, work,
    iwork, pivmin, spdiam, info)

SLARRJ performs refinement of the initial estimates of the eigenvalues of the matrix T.

quick vibe check: d = double precision version, s = single precision version. same energy, different float size. iykyk πŸ’…

πŸ¦‹ DETAILED DESCRIPTION πŸ¦‹

πŸ’« FUNCTION DOCUMENTATION πŸ’«


πŸŽ€ subroutine dlarrj (integer n, double precision, dimension( * ) d, double precision, dimension( * ) e2, integer ifirst, integer ilast, double precision rtol, integer offset, double precision, dimension( * ) w, double precision, dimension( * ) werr, double precision, dimension( * ) work, integer, dimension( * ) iwork, double precision pivmin, double precision spdiam, integer info)

DLARRJ performs refinement of the initial estimates of the eigenvalues of the matrix T. that's the whole assignment, bestie. πŸ’–

πŸ”₯ Purpose πŸ”₯

!>
!> Given the initial eigenvalue approximations of T, DLARRJ
!> does  bisection to refine the eigenvalues of T,
!> W( IFIRST-OFFSET ) through W( ILAST-OFFSET ), to more accuracy. Initial
!> guesses for these eigenvalues are input in W, the corresponding estimate
!> of the error in these guesses in WERR. During bisection, intervals
!> [left, right] are maintained by storing their mid-points and
!> semi-widths in the arrays W and WERR respectively.
!>

so fr fr: you hand it your rough guesses in W and your "how wrong am i probably" numbers in WERR, and it goes to town with bisection until W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are way more accurate. the intervals [left, right] get tracked by stashing their mid-points and semi-widths in W and WERR respectively. iconic behavior honestly. ✨

🌟 Parameters 🌟

  • N β€” N is INTEGER. the order of the matrix. 🧚
  • D β€” D is DOUBLE PRECISION array, dimension (N). the N diagonal elements of T. πŸ“
  • E2 β€” E2 is DOUBLE PRECISION array, dimension (N-1). the Squares of the (N-1) subdiagonal elements of T. πŸ‘‘
  • IFIRST β€” IFIRST is INTEGER. the index of the first eigenvalue to be computed. 🌸
  • ILAST β€” ILAST is INTEGER. the index of the last eigenvalue to be computed. 🌸
  • RTOL β€” RTOL is DOUBLE PRECISION. tolerance for the convergence of the bisection intervals. an interval [LEFT,RIGHT] has converged if RIGHT-LEFT < RTOL*MAX(|LEFT|,|RIGHT|). that's the literal convergence condition, no cap. 🎯
  • OFFSET β€” OFFSET is INTEGER. offset for the arrays W and WERR, i.e., the IFIRST-OFFSET through ILAST-OFFSET elements of these arrays are to be used. lowkey the sneakiest lil parameter here. πŸ™ˆ
  • W β€” W is DOUBLE PRECISION array, dimension (N). on input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are estimates of the eigenvalues of L D L^T indexed IFIRST through ILAST. on output, these estimates are refined. glow-up complete. πŸ’…
  • WERR β€” WERR is DOUBLE PRECISION array, dimension (N). on input, WERR( IFIRST-OFFSET ) through WERR( ILAST-OFFSET ) are the errors in the estimates of the corresponding elements in W. on output, these errors are refined. ✨
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (2*N). workspace. (yes it's 2*N, don't @ me) 🫢
  • IWORK β€” IWORK is INTEGER array, dimension (2*N). workspace. also 2*N. twinning! 🌈
  • PIVMIN β€” PIVMIN is DOUBLE PRECISION. the minimum pivot in the Sturm sequence for T. ⭐
  • SPDIAM β€” SPDIAM is DOUBLE PRECISION. the spectral diameter of T. πŸ’œ
  • INFO β€” INFO is INTEGER. error flag. 😭 (pray you never have to look at it)

🧚 Author 🧚

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

πŸ’– Contributors: πŸ’–

  • Beresford Parlett, University of California, Berkeley, USA
  • Jim Demmel, University of California, Berkeley, USA
  • Inderjit Dhillon, University of Texas, Austin, USA
  • Osni Marques, LBNL/NERSC, USA
  • Christof Voemel, University of California, Berkeley, USA
Definition at line 165 of file dlarrj.f.

πŸŽ€ subroutine slarrj (integer n, real, dimension( * ) d, real, dimension( * ) e2, integer ifirst, integer ilast, real rtol, integer offset, real, dimension( * ) w, real, dimension( * ) werr, real, dimension( * ) work, integer, dimension( * ) iwork, real pivmin, real spdiam, integer info)

SLARRJ performs refinement of the initial estimates of the eigenvalues of the matrix T. same assignment, single precision edition. πŸ¦‹

πŸ”₯ Purpose πŸ”₯

!>
!> Given the initial eigenvalue approximations of T, SLARRJ
!> does  bisection to refine the eigenvalues of T,
!> W( IFIRST-OFFSET ) through W( ILAST-OFFSET ), to more accuracy. Initial
!> guesses for these eigenvalues are input in W, the corresponding estimate
!> of the error in these guesses in WERR. During bisection, intervals
!> [left, right] are maintained by storing their mid-points and
!> semi-widths in the arrays W and WERR respectively.
!>

same story bestie: rough guesses in W, error estimates in WERR, bisection does its thing until W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are more accurate, and the [left, right] intervals keep their mid-points and semi-widths in W and WERR respectively. πŸ”₯

🌟 Parameters 🌟

  • N β€” N is INTEGER. the order of the matrix. 🧚
  • D β€” D is REAL array, dimension (N). the N diagonal elements of T. πŸ“
  • E2 β€” E2 is REAL array, dimension (N-1). the Squares of the (N-1) subdiagonal elements of T. πŸ‘‘
  • IFIRST β€” IFIRST is INTEGER. the index of the first eigenvalue to be computed. 🌸
  • ILAST β€” ILAST is INTEGER. the index of the last eigenvalue to be computed. 🌸
  • RTOL β€” RTOL is REAL. tolerance for the convergence of the bisection intervals. an interval [LEFT,RIGHT] has converged if RIGHT-LEFT < RTOL*MAX(|LEFT|,|RIGHT|). 🎯
  • OFFSET β€” OFFSET is INTEGER. offset for the arrays W and WERR, i.e., the IFIRST-OFFSET through ILAST-OFFSET elements of these arrays are to be used. πŸ™ˆ
  • W β€” W is REAL array, dimension (N). on input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are estimates of the eigenvalues of L D L^T indexed IFIRST through ILAST. on output, these estimates are refined. πŸ’…
  • WERR β€” WERR is REAL array, dimension (N). on input, WERR( IFIRST-OFFSET ) through WERR( ILAST-OFFSET ) are the errors in the estimates of the corresponding elements in W. on output, these errors are refined. ✨
  • WORK β€” WORK is REAL array, dimension (2*N). workspace. 🫢
  • IWORK β€” IWORK is INTEGER array, dimension (2*N). workspace. 🌈
  • PIVMIN β€” PIVMIN is REAL. the minimum pivot in the Sturm sequence for T. ⭐
  • SPDIAM β€” SPDIAM is REAL. the spectral diameter of T. πŸ’œ
  • INFO β€” INFO is INTEGER. error flag. 😭

🧚 Author 🧚

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

πŸ’– Contributors: πŸ’–

  • Beresford Parlett, University of California, Berkeley, USA
  • Jim Demmel, University of California, Berkeley, USA
  • Inderjit Dhillon, University of Texas, Austin, USA
  • Osni Marques, LBNL/NERSC, USA
  • Christof Voemel, University of California, Berkeley, USA
Definition at line 165 of file slarrj.f.

πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code. (not me writing it by hand, the robots did it, and honestly? they ate. πŸ€–βœ¨)


and that's the page, bestie! 🫢 this was LAPACK, Version 3.12.0, and you were reading larrj(3) β€” go forth and refine those eigenvalues, you absolute main character πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from