sbgv#
Functions
-
void ssbgv(const char *jobz, const char *uplo, const INT n, const INT ka, const INT kb, f32 *restrict AB, const INT ldab, f32 *restrict BB, const INT ldbb, f32 *restrict W, f32 *restrict Z, const INT ldz, f32 *restrict work, INT *info)#
SSBGV 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.
Parameters
injobz= ‘N’: Compute eigenvalues only = ‘V’: Compute eigenvalues and eigenvectors
inuplo= ‘U’: Upper triangles of A and B are stored = ‘L’: Lower triangles of A and B are stored
innThe order of the matrices A and B. n >= 0.
inkaThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of A. ka >= 0.
inkbThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of B. kb >= 0.
inoutABThe banded matrix A. Array of dimension (ldab, n). On exit, contents are destroyed.
inldabThe leading dimension of AB. ldab >= ka+1.
inoutBBThe banded matrix B. Array of dimension (ldbb, n). On exit, the split Cholesky factor S from spbstf.
inldbbThe leading dimension of BB. ldbb >= kb+1.
outWThe eigenvalues in ascending order. Array of dimension (n).
outZIf jobz=’V’, the eigenvectors. Array of dimension (ldz, n).
inldzThe leading dimension of Z. ldz >= 1, and if jobz=’V’, ldz >= n.
outworkWorkspace array of dimension (3*n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, for i <= n, the algorithm failed to converge if info = n + i, spbstf returned info = i (B not positive definite)
void ssbgv(
const char* jobz,
const char* uplo,
const INT n,
const INT ka,
const INT kb,
f32* restrict AB,
const INT ldab,
f32* restrict BB,
const INT ldbb,
f32* restrict W,
f32* restrict Z,
const INT ldz,
f32* restrict work,
INT* info
);
Functions
-
void dsbgv(const char *jobz, const char *uplo, const INT n, const INT ka, const INT kb, f64 *restrict AB, const INT ldab, f64 *restrict BB, const INT ldbb, f64 *restrict W, f64 *restrict Z, const INT ldz, f64 *restrict work, INT *info)#
DSBGV 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.
Parameters
injobz= ‘N’: Compute eigenvalues only = ‘V’: Compute eigenvalues and eigenvectors
inuplo= ‘U’: Upper triangles of A and B are stored = ‘L’: Lower triangles of A and B are stored
innThe order of the matrices A and B. n >= 0.
inkaThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of A. ka >= 0.
inkbThe number of superdiagonals (if uplo=’U’) or subdiagonals (if uplo=’L’) of B. kb >= 0.
inoutABThe banded matrix A. Array of dimension (ldab, n). On exit, contents are destroyed.
inldabThe leading dimension of AB. ldab >= ka+1.
inoutBBThe banded matrix B. Array of dimension (ldbb, n). On exit, the split Cholesky factor S from dpbstf.
inldbbThe leading dimension of BB. ldbb >= kb+1.
outWThe eigenvalues in ascending order. Array of dimension (n).
outZIf jobz=’V’, the eigenvectors. Array of dimension (ldz, n).
inldzThe leading dimension of Z. ldz >= 1, and if jobz=’V’, ldz >= n.
outworkWorkspace array of dimension (3*n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, for i <= n, the algorithm failed to converge if info = n + i, dpbstf returned info = i (B not positive definite)
void dsbgv(
const char* jobz,
const char* uplo,
const INT n,
const INT ka,
const INT kb,
f64* restrict AB,
const INT ldab,
f64* restrict BB,
const INT ldbb,
f64* restrict W,
f64* restrict Z,
const INT ldz,
f64* restrict work,
INT* info
);