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, thendiagonal elements of the tridiagonal matrixA. On exit, ifINFO = 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 matrixA, stored in elements1toN-1ofE. On exit, the contents ofEare destroyed. yeah. destroyed. gone. not me being dramatic, that's literally the manpage π«£ZβZ is DOUBLE PRECISION array, dimension (LDZ, N). IfJOBZ = 'V', then ifINFO = 0,Zcontains the orthonormal eigenvectors of the matrixA, with thei-th column ofZholding the eigenvector associated withD(i). IfJOBZ = 'N', thenZis not referenced. she said "don't perceive me" πLDZβLDZ is INTEGER, the leading dimension of the arrayZ.LDZ >= 1, and ifJOBZ = '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)). IfJOBZ = 'N',WORKis not referenced. it's just chilling in the background, unbothered π¦INFOβINFO is INTEGER, the final report card:= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0: ifINFO = i, the algorithm failed to converge;ioff-diagonal elements ofEdid not converge to zero.
β οΈ okay so a positiveINFOis the "it tried its best but no" situation β the algorithm failed to converge andioff-diagonal elements ofEdidn'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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms