SSBGVD(3)
π SSBGVD π
okay bestie, welcome to the LAPACK Library Functions Manual, where the vibes are Fortran and the math is real. today's main character is SSBGVD, and she lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/ssbgvd.f π«Ά
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine SSBGVD(jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz, work, lwork, iwork, liwork, info)β that's her, that's the icon π
subroutine SSBGVD (jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz,
work, lwork, iwork, liwork, info)
π Function/Subroutine Documentation π
subroutine SSBGVD (character jobz, character uplo, integer n, integer ka,
integer kb, real, dimension( ldab, * ) ab, integer ldab, real,
dimension( ldbb, * ) bb, integer ldbb, real, dimension( * ) w, real,
dimension( ldz, * ) z, integer ldz, real, dimension( * ) work, integer
lwork, integer, dimension( * ) iwork, integer liwork, integer info)
πΈ Purpose πΈ
so what does she actually do? SSBGVD computes all the eigenvalues, and optionally the eigenvectors, of a real generalized symmetric-definite banded eigenproblem, of the form A*x=(lambda)*B*x. here A and B are assumed to be symmetric and banded, and B is also positive definite. if eigenvectors are desired, it uses a divide and conquer algorithm. slay algorithm honestly π
π¦ Parameters π¦
JOBZ
JOBZ is CHARACTER*1
= 'N': compute eigenvalues only;= 'V': compute eigenvalues and eigenvectors.
UPLO
UPLO is CHARACTER*1
= 'U': upper triangles ofAandBare stored;= 'L': lower triangles ofAandBare stored.
N
N is INTEGER
the order of the matrices A and B. N >= 0.
KA
KA is INTEGER
the number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KA >= 0.
KB
KB is INTEGER
the number of superdiagonals of the matrix B if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KB >= 0.
AB
AB is REAL array, dimension (LDAB, N)
on entry, the upper or lower triangle of the symmetric band matrix A, stored in the first ka+1 rows of the array. the j-th column of A is stored in the j-th column of the array AB as follows:
if UPLO = 'U', AB(ka+1+i-j,j) = A(i,j) for max(1,j-ka)<=i<=j;
if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+ka).
on exit, the contents of AB are destroyed. gone. reduced to atoms π
LDAB
LDAB is INTEGER
the leading dimension of the array AB. LDAB >= KA+1.
BB
BB is REAL array, dimension (LDBB, N)
on entry, the upper or lower triangle of the symmetric band matrix B, stored in the first kb+1 rows of the array. the j-th column of B is stored in the j-th column of the array BB as follows:
if UPLO = 'U', BB(ka+1+i-j,j) = B(i,j) for max(1,j-kb)<=i<=j;
if UPLO = 'L', BB(1+i-j,j) = B(i,j) for j<=i<=min(n,j+kb).
yes bestie, that iskasitting right there in theBBentry β i'm copying it exactly as the source says it, don't come for me π
on exit, the factor S from the split Cholesky factorization B = S**T*S, as returned by SPBSTF.
LDBB
LDBB is INTEGER
the leading dimension of the array BB. LDBB >= KB+1.
W
W is REAL array, dimension (N)
if INFO = 0, the eigenvalues in ascending order. so tidy, so organized, we love a sorted queen β¨
Z
Z is REAL array, dimension (LDZ, N)
if JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of eigenvectors, with the i-th column of Z holding the eigenvector associated with W(i). the eigenvectors are normalized so Z**T*B*Z = I.
if JOBZ = 'N', then Z is not referenced. she's not even invited to the function call π«Ά
LDZ
LDZ is INTEGER
the leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', LDZ >= max(1,N).
WORK
WORK is REAL array, dimension (MAX(1,LWORK))
on exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is INTEGER
the dimension of the array WORK.
- if
N <= 1,LWORK >= 1. - if
JOBZ = 'N'andN > 1,LWORK >= 3*N. - if
JOBZ = 'V'andN > 1,LWORK >= 1 + 5*N + 2*N**2.
if LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA. it's giving "just asking, not committing" and honestly? same π
IWORK
IWORK is INTEGER array, dimension (MAX(1,LIWORK))
on exit, if LIWORK > 0, IWORK(1) returns the optimal LIWORK.
LIWORK
LIWORK is INTEGER
the dimension of the array IWORK.
- if
JOBZ = 'N'orN <= 1,LIWORK >= 1. - if
JOBZ = 'V'andN > 1,LIWORK >= 3 + 5*N.
if LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit. we love a happy ending π< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = i, andiis:<= N: the algorithm failed to converge:ioff-diagonal elements of an intermediate tridiagonal form did not converge to zero;> N: ifINFO = N + i, for1 <= i <= N, thenSPBSTFreturnedINFO = i:Bis not positive definite. the factorization ofBcould not be completed and no eigenvalues or eigenvectors were computed.
π¨ real talk: that last one is a hard stop. B isn't positive definite, the factorization bails, and you get no eigenvalues and no eigenvectors. not a single one. periodt.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributors:
Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
β Definition
definition at line 219 of file ssbgvd.f.
π Author (the meta one) π
generated automatically by Doxygen for LAPACK from the source code. no cap, a robot wrote the original and i just gave it a personality π
and that's the whole page bestie π§ββοΈ this was LAPACK Version 3.12.0, served fresh from /home/abui...RC/ssbgvd.f(3) β go forth, pass LWORK correctly, and slay π
π¦ 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