SRC/dstev.f(3)

πŸ’– SRC/dstev.f πŸ’–

okay bestie, welcome to dstev.f, part of the Library Functions Manual β€” this is a Fortran LAPACK gem and honestly it's kind of iconic. it's giving "quiet math baddie who does all the work." let's get into it ✨


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine dstev (jobz, n, d, e, z, ldz, work, info) β€” DSTEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

✨ subroutine dstev (character jobz, integer n, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( ldz, * ) z, integer ldz, double precision, dimension( * ) work, integer info) ✨

DSTEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices β€” no cap, that's literally what it does 🫢

πŸŽ€ Purpose:

!>
!> DSTEV computes all eigenvalues and, optionally, eigenvectors of a
!> real symmetric tridiagonal matrix A.
!>

so yeah, it's out here solving the whole eigenvalue problem for a real symmetric tridiagonal matrix A. all of them. every single one. main character energy πŸ’…


πŸ’œ Parameters

  • JOBZ β€” JOBZ is CHARACTER*1, and it's the vibe check for what you actually want:
    • = 'N': Compute eigenvalues only;
    • = 'V': Compute eigenvalues and eigenvectors.
  • N β€” N is INTEGER, the order of the matrix. N >= 0. that's it, that's the size 🌈
  • D β€” D is DOUBLE PRECISION array, dimension (N). On entry, the n diagonal elements of the tridiagonal matrix A. On exit, if INFO = 0, the eigenvalues in ascending order. so it enters as input and leaves as a whole glow-up 😭✨
  • E β€” E is DOUBLE PRECISION array, dimension (N-1). On entry, the (n-1) subdiagonal elements of the tridiagonal matrix A, stored in elements 1 to N-1 of E. On exit, the contents of E are destroyed. yeah. destroyed. gone. not me being dramatic, that's literally the manpage 🫣
  • Z β€” Z is DOUBLE PRECISION array, dimension (LDZ, N). If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal eigenvectors of the matrix A, with the i-th column of Z holding the eigenvector associated with D(i). If JOBZ = 'N', then Z is not referenced. she said "don't perceive me" πŸ™ˆ
  • LDZ β€” LDZ is INTEGER, the leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', LDZ >= max(1,N). read that constraint twice bestie, it's not optional πŸ’…
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (max(1,2*N-2)). If JOBZ = 'N', WORK is not referenced. it's just chilling in the background, unbothered πŸ¦‹
  • INFO β€” INFO is INTEGER, the final report card:
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, the algorithm failed to converge; i off-diagonal elements of E did not converge to zero.
⚠️ okay so a positive INFO is the "it tried its best but no" situation β€” the algorithm failed to converge and i off-diagonal elements of E didn't hit zero. not a vibe, but now you know πŸ’€

πŸ‘‘ Author

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

🌟 Definition at line 115 of file dstev.f.


🧚 Author (the meta one)

Generated automatically by Doxygen for LAPACK from the source code. so this page wasn't even hand-written, it was born this way πŸ’–


and that's the whole page, bestie β€” <rainbow>LAPACK, Version 3.12.0, page SRC/dstev.f(3)</rainbow> πŸŽ€ thanks for coming to my TED talk, go compute some eigenvalues, ily πŸ«Άβœ¨πŸ’œ

πŸ“¦ where this page comes from