ggevx#
Functions
-
void sggevx(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, 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, INT *ilo, INT *ihi, f32 *restrict lscale, f32 *restrict rscale, f32 *abnrm, f32 *bbnrm, f32 *restrict rconde, f32 *restrict rcondv, f32 *restrict work, const INT lwork, INT *restrict iwork, INT *restrict bwork, INT *info)#
SGGEVX 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.
Optionally also, it computes a balancing transformation to improve the conditioning of the eigenvalues and eigenvectors (ILO, IHI, LSCALE, RSCALE, ABNRM, and BBNRM), reciprocal condition numbers for the eigenvalues (RCONDE), and reciprocal condition numbers for the right eigenvectors (RCONDV).
Parameters
inbalancSpecifies the balance option to be performed. = ‘N’: do not diagonally scale or permute; = ‘P’: permute only; = ‘S’: scale only; = ‘B’: both permute and scale.
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.
insenseDetermines which reciprocal condition numbers are computed. = ‘N’: none are computed; = ‘E’: computed for eigenvalues only; = ‘V’: computed for eigenvectors only; = ‘B’: computed for eigenvalues and 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.
outVRIf jobvr = ‘V’, the right eigenvectors.
inldvrThe leading dimension of VR.
outiloSee ihi.
outihiILO and IHI are integer values such that on exit A(i,j) = 0 and B(i,j) = 0 if i > j and j = 0,…,ILO-1 or i = IHI+1,…,N-1. If balanc = ‘N’ or ‘S’, ILO = 0 and IHI = N-1.
outlscaleArray of dimension (n). Details of the permutations and scaling factors applied to the left side of A and B. If PL(j) is the index of the row interchanged with row j, and DL(j) is the scaling factor applied to row j, then lscale[j] = PL(j) for j = 0,…,ILO-1 = DL(j) for j = ILO,…,IHI = PL(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outrscaleArray of dimension (n). Details of the permutations and scaling factors applied to the right side of A and B. If PR(j) is the index of the column interchanged with column j, and DR(j) is the scaling factor applied to column j, then rscale[j] = PR(j) for j = 0,…,ILO-1 = DR(j) for j = ILO,…,IHI = PR(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outabnrmThe one-norm of the balanced matrix A.
outbbnrmThe one-norm of the balanced matrix B.
outrcondeReciprocal condition numbers for eigenvalues.
outrcondvReciprocal condition numbers for eigenvectors.
outworkWorkspace array.
inlworkThe dimension of work.
outiworkInteger workspace array.
outbworkInteger array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: errors from QZ iteration or eigenvector computation
void sggevx(
const char* balanc,
const char* jobvl,
const char* jobvr,
const char* sense,
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,
INT* ilo,
INT* ihi,
f32* restrict lscale,
f32* restrict rscale,
f32* abnrm,
f32* bbnrm,
f32* restrict rconde,
f32* restrict rcondv,
f32* restrict work,
const INT lwork,
INT* restrict iwork,
INT* restrict bwork,
INT* info
);
Functions
-
void dggevx(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, 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, INT *ilo, INT *ihi, f64 *restrict lscale, f64 *restrict rscale, f64 *abnrm, f64 *bbnrm, f64 *restrict rconde, f64 *restrict rcondv, f64 *restrict work, const INT lwork, INT *restrict iwork, INT *restrict bwork, INT *info)#
DGGEVX 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.
Optionally also, it computes a balancing transformation to improve the conditioning of the eigenvalues and eigenvectors (ILO, IHI, LSCALE, RSCALE, ABNRM, and BBNRM), reciprocal condition numbers for the eigenvalues (RCONDE), and reciprocal condition numbers for the right eigenvectors (RCONDV).
Parameters
inbalancSpecifies the balance option to be performed. = ‘N’: do not diagonally scale or permute; = ‘P’: permute only; = ‘S’: scale only; = ‘B’: both permute and scale.
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.
insenseDetermines which reciprocal condition numbers are computed. = ‘N’: none are computed; = ‘E’: computed for eigenvalues only; = ‘V’: computed for eigenvectors only; = ‘B’: computed for eigenvalues and 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.
outVRIf jobvr = ‘V’, the right eigenvectors.
inldvrThe leading dimension of VR.
outiloSee ihi.
outihiILO and IHI are integer values such that on exit A(i,j) = 0 and B(i,j) = 0 if i > j and j = 0,…,ILO-1 or i = IHI+1,…,N-1. If balanc = ‘N’ or ‘S’, ILO = 0 and IHI = N-1.
outlscaleArray of dimension (n). Details of the permutations and scaling factors applied to the left side of A and B. If PL(j) is the index of the row interchanged with row j, and DL(j) is the scaling factor applied to row j, then lscale[j] = PL(j) for j = 0,…,ILO-1 = DL(j) for j = ILO,…,IHI = PL(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outrscaleArray of dimension (n). Details of the permutations and scaling factors applied to the right side of A and B. If PR(j) is the index of the column interchanged with column j, and DR(j) is the scaling factor applied to column j, then rscale[j] = PR(j) for j = 0,…,ILO-1 = DR(j) for j = ILO,…,IHI = PR(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outabnrmThe one-norm of the balanced matrix A.
outbbnrmThe one-norm of the balanced matrix B.
outrcondeReciprocal condition numbers for eigenvalues.
outrcondvReciprocal condition numbers for eigenvectors.
outworkWorkspace array.
inlworkThe dimension of work.
outiworkInteger workspace array.
outbworkInteger array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: errors from QZ iteration or eigenvector computation
void dggevx(
const char* balanc,
const char* jobvl,
const char* jobvr,
const char* sense,
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,
INT* ilo,
INT* ihi,
f64* restrict lscale,
f64* restrict rscale,
f64* abnrm,
f64* bbnrm,
f64* restrict rconde,
f64* restrict rcondv,
f64* restrict work,
const INT lwork,
INT* restrict iwork,
INT* restrict bwork,
INT* info
);
Functions
-
void cggevx(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, const INT n, c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, c64 *restrict alpha, c64 *restrict beta, c64 *restrict VL, const INT ldvl, c64 *restrict VR, const INT ldvr, INT *ilo, INT *ihi, f32 *restrict lscale, f32 *restrict rscale, f32 *abnrm, f32 *bbnrm, f32 *restrict rconde, f32 *restrict rcondv, c64 *restrict work, const INT lwork, f32 *restrict rwork, INT *restrict iwork, INT *restrict bwork, INT *info)#
CGGEVX 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.
Optionally, it also computes a balancing transformation to improve the conditioning of the eigenvalues and eigenvectors (ILO, IHI, LSCALE, RSCALE, ABNRM, and BBNRM), reciprocal condition numbers for the eigenvalues (RCONDE), and reciprocal condition numbers for the right eigenvectors (RCONDV).
Parameters
inbalancSpecifies the balance option to be performed. = ‘N’: do not diagonally scale or permute; = ‘P’: permute only; = ‘S’: scale only; = ‘B’: both permute and scale.
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.
insenseDetermines which reciprocal condition numbers are computed. = ‘N’: none are computed; = ‘E’: computed for eigenvalues only; = ‘V’: computed for eigenvectors only; = ‘B’: computed for eigenvalues and 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=0,…,n-1, will be the generalized eigenvalues.
outVLIf jobvl = ‘V’, the left eigenvectors.
inldvlThe leading dimension of VL.
outVRIf jobvr = ‘V’, the right eigenvectors.
inldvrThe leading dimension of VR.
outiloSee ihi.
outihiILO and IHI are integer values such that on exit A(i,j) = 0 and B(i,j) = 0 if i > j and j = 0,…,ILO-1 or i = IHI+1,…,N-1. If balanc = ‘N’ or ‘S’, ILO = 0 and IHI = N-1.
outlscaleArray of dimension (n). Details of the permutations and scaling factors applied to the left side of A and B. If PL(j) is the index of the row interchanged with row j, and DL(j) is the scaling factor applied to row j, then lscale[j] = PL(j) for j = 0,…,ILO-1 = DL(j) for j = ILO,…,IHI = PL(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outrscaleArray of dimension (n). Details of the permutations and scaling factors applied to the right side of A and B. If PR(j) is the index of the column interchanged with column j, and DR(j) is the scaling factor applied to column j, then rscale[j] = PR(j) for j = 0,…,ILO-1 = DR(j) for j = ILO,…,IHI = PR(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outabnrmThe one-norm of the balanced matrix A.
outbbnrmThe one-norm of the balanced matrix B.
outrcondeReciprocal condition numbers for eigenvalues.
outrcondvReciprocal condition numbers for eigenvectors.
outworkComplex workspace array.
inlworkThe dimension of work.
outrworkSingle precision workspace array.
outiworkInteger workspace array.
outbworkInteger array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: errors from QZ iteration or eigenvector computation
void cggevx(
const char* balanc,
const char* jobvl,
const char* jobvr,
const char* sense,
const INT n,
c64* restrict A,
const INT lda,
c64* restrict B,
const INT ldb,
c64* restrict alpha,
c64* restrict beta,
c64* restrict VL,
const INT ldvl,
c64* restrict VR,
const INT ldvr,
INT* ilo,
INT* ihi,
f32* restrict lscale,
f32* restrict rscale,
f32* abnrm,
f32* bbnrm,
f32* restrict rconde,
f32* restrict rcondv,
c64* restrict work,
const INT lwork,
f32* restrict rwork,
INT* restrict iwork,
INT* restrict bwork,
INT* info
);
Functions
-
void zggevx(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, const INT n, c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, c128 *restrict alpha, c128 *restrict beta, c128 *restrict VL, const INT ldvl, c128 *restrict VR, const INT ldvr, INT *ilo, INT *ihi, f64 *restrict lscale, f64 *restrict rscale, f64 *abnrm, f64 *bbnrm, f64 *restrict rconde, f64 *restrict rcondv, c128 *restrict work, const INT lwork, f64 *restrict rwork, INT *restrict iwork, INT *restrict bwork, INT *info)#
ZGGEVX 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.
Optionally, it also computes a balancing transformation to improve the conditioning of the eigenvalues and eigenvectors (ILO, IHI, LSCALE, RSCALE, ABNRM, and BBNRM), reciprocal condition numbers for the eigenvalues (RCONDE), and reciprocal condition numbers for the right eigenvectors (RCONDV).
Parameters
inbalancSpecifies the balance option to be performed. = ‘N’: do not diagonally scale or permute; = ‘P’: permute only; = ‘S’: scale only; = ‘B’: both permute and scale.
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.
insenseDetermines which reciprocal condition numbers are computed. = ‘N’: none are computed; = ‘E’: computed for eigenvalues only; = ‘V’: computed for eigenvectors only; = ‘B’: computed for eigenvalues and 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=0,…,n-1, will be the generalized eigenvalues.
outVLIf jobvl = ‘V’, the left eigenvectors.
inldvlThe leading dimension of VL.
outVRIf jobvr = ‘V’, the right eigenvectors.
inldvrThe leading dimension of VR.
outiloSee ihi.
outihiILO and IHI are integer values such that on exit A(i,j) = 0 and B(i,j) = 0 if i > j and j = 0,…,ILO-1 or i = IHI+1,…,N-1. If balanc = ‘N’ or ‘S’, ILO = 0 and IHI = N-1.
outlscaleArray of dimension (n). Details of the permutations and scaling factors applied to the left side of A and B. If PL(j) is the index of the row interchanged with row j, and DL(j) is the scaling factor applied to row j, then lscale[j] = PL(j) for j = 0,…,ILO-1 = DL(j) for j = ILO,…,IHI = PL(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outrscaleArray of dimension (n). Details of the permutations and scaling factors applied to the right side of A and B. If PR(j) is the index of the column interchanged with column j, and DR(j) is the scaling factor applied to column j, then rscale[j] = PR(j) for j = 0,…,ILO-1 = DR(j) for j = ILO,…,IHI = PR(j) for j = IHI+1,…,N-1. The order in which the interchanges are made is N-1 to IHI+1, then 0 to ILO-1.
outabnrmThe one-norm of the balanced matrix A.
outbbnrmThe one-norm of the balanced matrix B.
outrcondeReciprocal condition numbers for eigenvalues.
outrcondvReciprocal condition numbers for eigenvectors.
outworkComplex workspace array.
inlworkThe dimension of work.
outrworkDouble precision workspace array.
outiworkInteger workspace array.
outbworkInteger array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: errors from QZ iteration or eigenvector computation
void zggevx(
const char* balanc,
const char* jobvl,
const char* jobvr,
const char* sense,
const INT n,
c128* restrict A,
const INT lda,
c128* restrict B,
const INT ldb,
c128* restrict alpha,
c128* restrict beta,
c128* restrict VL,
const INT ldvl,
c128* restrict VR,
const INT ldvr,
INT* ilo,
INT* ihi,
f64* restrict lscale,
f64* restrict rscale,
f64* abnrm,
f64* bbnrm,
f64* restrict rconde,
f64* restrict rcondv,
c128* restrict work,
const INT lwork,
f64* restrict rwork,
INT* restrict iwork,
INT* restrict bwork,
INT* info
);