ggev3#
Functions
-
void sggev3(const char *jobvl, const char *jobvr, const INT n, f32 *restrict A, const INT lda, f32 *restrict B, const INT ldb, f32 *restrict alphar, f32 *restrict alphai, f32 *restrict beta, f32 *restrict VL, const INT ldvl, f32 *restrict VR, const INT ldvr, f32 *restrict work, const INT lwork, INT *info)#
SGGEV3 computes for a pair of N-by-N real nonsymmetric matrices (A,B) the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors.
A generalized eigenvalue for a pair of matrices (A,B) is a scalar lambda or a ratio alpha/beta = lambda, such that A - lambda*B is singular. It is usually represented as the pair (alpha,beta), as there is a reasonable interpretation for beta=0, and even for both being zero.
The right eigenvector v(j) corresponding to the eigenvalue lambda(j) of (A,B) satisfies A * v(j) = lambda(j) * B * v(j).
The left eigenvector u(j) corresponding to the eigenvalue lambda(j) of (A,B) satisfies u(j)**H * A = lambda(j) * u(j)**H * B .
where u(j)**H is the conjugate-transpose of u(j).
Parameters
injobvl= ‘N’: do not compute the left generalized eigenvectors; = ‘V’: compute the left generalized eigenvectors.
injobvr= ‘N’: do not compute the right generalized eigenvectors; = ‘V’: compute the right generalized eigenvectors.
innThe order of the matrices A, B, VL, and VR. n >= 0.
inoutAOn entry, the matrix A in the pair (A,B). On exit, A has been overwritten.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBOn entry, the matrix B in the pair (A,B). On exit, B has been overwritten.
inldbThe leading dimension of B. ldb >= max(1,n).
outalpharReal parts of generalized eigenvalues.
outalphaiImaginary parts of generalized eigenvalues.
outbetaBeta values of generalized eigenvalues.
outVLIf jobvl = ‘V’, the left eigenvectors.
inldvlThe leading dimension of VL. ldvl >= 1, and if jobvl = ‘V’, ldvl >= n.
outVRIf jobvr = ‘V’, the right eigenvectors.
inldvrThe leading dimension of VR. ldvr >= 1, and if jobvr = ‘V’, ldvr >= n.
outworkWorkspace array, dimension (max(1,lwork)).
inlworkThe dimension of work. lwork >= max(1,8*n). If lwork = -1, a workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1,…,n: the QZ iteration failed
> n: other errors
void sggev3(
const char* jobvl,
const char* jobvr,
const INT n,
f32* restrict A,
const INT lda,
f32* restrict B,
const INT ldb,
f32* restrict alphar,
f32* restrict alphai,
f32* restrict beta,
f32* restrict VL,
const INT ldvl,
f32* restrict VR,
const INT ldvr,
f32* restrict work,
const INT lwork,
INT* info
);
Functions
-
void dggev3(const char *jobvl, const char *jobvr, const INT n, f64 *restrict A, const INT lda, f64 *restrict B, const INT ldb, f64 *restrict alphar, f64 *restrict alphai, f64 *restrict beta, f64 *restrict VL, const INT ldvl, f64 *restrict VR, const INT ldvr, f64 *restrict work, const INT lwork, INT *info)#
DGGEV3 computes for a pair of N-by-N real nonsymmetric matrices (A,B) the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors.
A generalized eigenvalue for a pair of matrices (A,B) is a scalar lambda or a ratio alpha/beta = lambda, such that A - lambda*B is singular. It is usually represented as the pair (alpha,beta), as there is a reasonable interpretation for beta=0, and even for both being zero.
The right eigenvector v(j) corresponding to the eigenvalue lambda(j) of (A,B) satisfies A * v(j) = lambda(j) * B * v(j).
The left eigenvector u(j) corresponding to the eigenvalue lambda(j) of (A,B) satisfies u(j)**H * A = lambda(j) * u(j)**H * B .
where u(j)**H is the conjugate-transpose of u(j).
Parameters
injobvl= ‘N’: do not compute the left generalized eigenvectors; = ‘V’: compute the left generalized eigenvectors.
injobvr= ‘N’: do not compute the right generalized eigenvectors; = ‘V’: compute the right generalized eigenvectors.
innThe order of the matrices A, B, VL, and VR. n >= 0.
inoutAOn entry, the matrix A in the pair (A,B). On exit, A has been overwritten.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBOn entry, the matrix B in the pair (A,B). On exit, B has been overwritten.
inldbThe leading dimension of B. ldb >= max(1,n).
outalpharReal parts of generalized eigenvalues.
outalphaiImaginary parts of generalized eigenvalues.
outbetaBeta values of generalized eigenvalues.
outVLIf jobvl = ‘V’, the left eigenvectors.
inldvlThe leading dimension of VL. ldvl >= 1, and if jobvl = ‘V’, ldvl >= n.
outVRIf jobvr = ‘V’, the right eigenvectors.
inldvrThe leading dimension of VR. ldvr >= 1, and if jobvr = ‘V’, ldvr >= n.
outworkWorkspace array, dimension (max(1,lwork)).
inlworkThe dimension of work. lwork >= max(1,8*n). If lwork = -1, a workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1,…,n: the QZ iteration failed
> n: other errors
void dggev3(
const char* jobvl,
const char* jobvr,
const INT n,
f64* restrict A,
const INT lda,
f64* restrict B,
const INT ldb,
f64* restrict alphar,
f64* restrict alphai,
f64* restrict beta,
f64* restrict VL,
const INT ldvl,
f64* restrict VR,
const INT ldvr,
f64* restrict work,
const INT lwork,
INT* info
);
Functions
-
void cggev3(const char *jobvl, const char *jobvr, const INT n, c64 *A, const INT lda, c64 *B, const INT ldb, c64 *alpha, c64 *beta, c64 *VL, const INT ldvl, c64 *VR, const INT ldvr, c64 *work, const INT lwork, f32 *rwork, INT *info)#
CGGEV3 computes for a pair of N-by-N complex nonsymmetric matrices (A,B), the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors.
A generalized eigenvalue for a pair of matrices (A,B) is a scalar lambda or a ratio alpha/beta = lambda, such that A - lambda*B is singular. It is usually represented as the pair (alpha,beta), as there is a reasonable interpretation for beta=0, and even for both being zero.
The right generalized eigenvector v(j) corresponding to the generalized eigenvalue lambda(j) of (A,B) satisfies
A * v(j) = lambda(j) * B * v(j).
The left generalized eigenvector u(j) corresponding to the generalized eigenvalues lambda(j) of (A,B) satisfies
u(j)**H * A = lambda(j) * u(j)**H * B
where u(j)**H is the conjugate-transpose of u(j).
Parameters
injobvl= ‘N’: do not compute the left generalized eigenvectors; = ‘V’: compute the left generalized eigenvectors.
injobvr= ‘N’: do not compute the right generalized eigenvectors; = ‘V’: compute the right generalized eigenvectors.
innThe order of the matrices A, B, VL, and VR. n >= 0.
inoutAOn entry, the matrix A in the pair (A,B). On exit, A has been overwritten.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBOn entry, the matrix B in the pair (A,B). On exit, B has been overwritten.
inldbThe leading dimension of B. ldb >= max(1,n).
outalphaComplex array, dimension (n).
outbetaComplex array, dimension (n). On exit, ALPHA(j)/BETA(j), j=1,…,N, will be the generalized eigenvalues.
outVLIf jobvl = ‘V’, the left eigenvectors u(j) are stored one after another in the columns of VL.
inldvlThe leading dimension of VL. ldvl >= 1, and if jobvl = ‘V’, ldvl >= n.
outVRIf jobvr = ‘V’, the right eigenvectors v(j) are stored one after another in the columns of VR.
inldvrThe leading dimension of VR. ldvr >= 1, and if jobvr = ‘V’, ldvr >= n.
outworkComplex workspace array, dimension (max(1,lwork)). On exit, if info = 0, work[0] returns optimal lwork.
inlworkThe dimension of work. lwork >= max(1,2*n). If lwork = -1, a workspace query is assumed.
outrworkSingle precision array, dimension (8*n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1,…,n: the QZ iteration failed
> n: other errors
void cggev3(
const char* jobvl,
const char* jobvr,
const INT n,
c64* A,
const INT lda,
c64* B,
const INT ldb,
c64* alpha,
c64* beta,
c64* VL,
const INT ldvl,
c64* VR,
const INT ldvr,
c64* work,
const INT lwork,
f32* rwork,
INT* info
);
Functions
-
void zggev3(const char *jobvl, const char *jobvr, const INT n, c128 *A, const INT lda, c128 *B, const INT ldb, c128 *alpha, c128 *beta, c128 *VL, const INT ldvl, c128 *VR, const INT ldvr, c128 *work, const INT lwork, f64 *rwork, INT *info)#
ZGGEV3 computes for a pair of N-by-N complex nonsymmetric matrices (A,B), the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors.
A generalized eigenvalue for a pair of matrices (A,B) is a scalar lambda or a ratio alpha/beta = lambda, such that A - lambda*B is singular. It is usually represented as the pair (alpha,beta), as there is a reasonable interpretation for beta=0, and even for both being zero.
The right generalized eigenvector v(j) corresponding to the generalized eigenvalue lambda(j) of (A,B) satisfies
A * v(j) = lambda(j) * B * v(j).
The left generalized eigenvector u(j) corresponding to the generalized eigenvalues lambda(j) of (A,B) satisfies
u(j)**H * A = lambda(j) * u(j)**H * B
where u(j)**H is the conjugate-transpose of u(j).
Parameters
injobvl= ‘N’: do not compute the left generalized eigenvectors; = ‘V’: compute the left generalized eigenvectors.
injobvr= ‘N’: do not compute the right generalized eigenvectors; = ‘V’: compute the right generalized eigenvectors.
innThe order of the matrices A, B, VL, and VR. n >= 0.
inoutAOn entry, the matrix A in the pair (A,B). On exit, A has been overwritten.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBOn entry, the matrix B in the pair (A,B). On exit, B has been overwritten.
inldbThe leading dimension of B. ldb >= max(1,n).
outalphaComplex array, dimension (n).
outbetaComplex array, dimension (n). On exit, ALPHA(j)/BETA(j), j=1,…,N, will be the generalized eigenvalues.
outVLIf jobvl = ‘V’, the left eigenvectors u(j) are stored one after another in the columns of VL.
inldvlThe leading dimension of VL. ldvl >= 1, and if jobvl = ‘V’, ldvl >= n.
outVRIf jobvr = ‘V’, the right eigenvectors v(j) are stored one after another in the columns of VR.
inldvrThe leading dimension of VR. ldvr >= 1, and if jobvr = ‘V’, ldvr >= n.
outworkComplex workspace array, dimension (max(1,lwork)). On exit, if info = 0, work[0] returns optimal lwork.
inlworkThe dimension of work. lwork >= max(1,2*n). If lwork = -1, a workspace query is assumed.
outrworkDouble precision array, dimension (8*n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
= 1,…,n: the QZ iteration failed
> n: other errors
void zggev3(
const char* jobvl,
const char* jobvr,
const INT n,
c128* A,
const INT lda,
c128* B,
const INT ldb,
c128* alpha,
c128* beta,
c128* VL,
const INT ldvl,
c128* VR,
const INT ldvr,
c128* work,
const INT lwork,
f64* rwork,
INT* info
);