SSPEVD(3)
π SSPEVD(3) π
okay so bestie, welcome to SSPEVD β a LAPACK routine, living in the LAPACK manual (that's the manual name, mwah π). Like, the actual source file it's documented from is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sspevd.f β yes that's a whole path, yes I typed it all out, you're welcome π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sspevd.f
that's the file. that's the whole NAME section. iconic of it honestly π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine SSPEVD (jobz, uplo, n, ap, w, z, ldz, work, lwork, iwork,
liwork, info)
SSPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices π«Ά
πΈ Function/Subroutine Documentation πΈ
subroutine SSPEVD
here's the whole signature, character for character, no cap:
subroutine SSPEVD (character jobz, character uplo, integer n, real,
dimension( * ) ap, real, dimension( * ) w, real, dimension( ldz, * ) z,
integer ldz, real, dimension( * ) work, integer lwork, integer,
dimension( * ) iwork, integer liwork, integer info)
SSPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices β¨
π§ Purpose:
!>!> SSPEVD computes all the eigenvalues and, optionally, eigenvectors!> of a real symmetric matrix A in packed storage. If eigenvectors are!> desired, it uses a divide and conquer algorithm.!>!>
so like, either you want just the eigenvalues or you want the eigenvectors too β and if you want the eigenvectors it goes full divide-and-conquer mode, which is the fancy algorithm, periodt πβ¨
π Parameters
JOBZβJOBZ is CHARACTER*1and it's literally the vibe check for what you want back π= 'N': Compute eigenvalues only;= 'V': Compute eigenvalues and eigenvectors.
UPLOβUPLO is CHARACTER*1, tells the routine which triangle of A you actually bothered to store π= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβN is INTEGER, the order of the matrix A. Constraint:N >= 0. (zero is allowed, she's flexible π )APβAP is REAL array, dimension (N*(N+1)/2). and here's the tea, bestie, on entry:- the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array π
- the j-th column of A is stored in the array
APas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
- if
- on exit,
APis overwritten by values generated during the reduction to tridiagonal form π so like, don't expect your original data back, she ate it:- if
UPLO = 'U', the diagonal and first superdiagonal of the tridiagonal matrix T overwrite the corresponding elements of A - if
UPLO = 'L', the diagonal and first subdiagonal of T overwrite the corresponding elements of A
- if
WβW is REAL array, dimension (N). ifINFO = 0, this is where the eigenvalues live, in ascending order π₯ZβZ is REAL array, dimension (LDZ, N). ifJOBZ = 'V', then ifINFO = 0,Zcontains the orthonormal eigenvectors of the matrix A, with the i-th column ofZholding the eigenvector associated withW(i)π. ifJOBZ = 'N', thenZis not referenced β she's not even invited to the party πLDZβLDZ is INTEGER, the leading dimension of the arrayZ. RequiresLDZ >= 1, and ifJOBZ = 'V', thenLDZ >= max(1,N)πWORKβWORK is REAL array, dimension (MAX(1,LWORK)). on exit, ifINFO = 0,WORK(1)returns the requiredLWORKπ«ΆLWORKβLWORK is INTEGER, the dimension of the arrayWORK. the rules, fr fr:- If
N <= 1,LWORKmust be at least 1. - If
JOBZ = 'N'andN > 1,LWORKmust be at least2*N. - If
JOBZ = 'V'andN > 1,LWORKmust be at least1 + 6*N + N**2. - If
LWORK = -1, then a workspace query is assumed β the routine only calculates the required sizes of theWORKandIWORKarrays, returns these values as the first entries of theWORKandIWORKarrays, and no error message related toLWORKorLIWORKis issued byXERBLAπ (like, she's just peeking, not committing, iykyk)
- If
IWORKβIWORK is INTEGER array, dimension (MAX(1,LIWORK)). on exit, ifINFO = 0,IWORK(1)returns the requiredLIWORKβLIWORKβLIWORK is INTEGER, the dimension of the arrayIWORK. rules again, no skipping π:- If
JOBZ = 'N'orN <= 1,LIWORKmust be at least 1. - If
JOBZ = 'V'andN > 1,LIWORKmust be at least3 + 5*N. - If
LIWORK = -1, then a workspace query is assumed β the routine only calculates the required sizes of theWORKandIWORKarrays, returns these values as the first entries of theWORKandIWORKarrays, and no error message related toLWORKorLIWORKis issued byXERBLAπ
- If
INFOβINFO is INTEGER, the receipts π:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value π¬> 0: ifINFO = i, the algorithm failed to converge; i off-diagonal elements of an intermediate tridiagonal form did not converge to zero ππ
π§ Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 170 of file sspevd.f. π
π Author (yes, again)
Generated automatically by Doxygen for LAPACK from the source code. π€β¨
and that's the whole page bestie β this one's from LAPACK, Version 3.12.0, and the file path in the footer is /home/abui...RC/sspevd.f(3) π«Ά go forth and compute those eigenvalues, you absolute icon ππ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms