gghrd#
Functions
-
void sgghrd(const char *compq, const char *compz, const INT n, const INT ilo, const INT ihi, f32 *restrict A, const INT lda, f32 *restrict B, const INT ldb, f32 *restrict Q, const INT ldq, f32 *restrict Z, const INT ldz, INT *info)#
SGGHRD reduces a pair of real matrices (A,B) to generalized upper Hessenberg form using orthogonal transformations, where A is a general matrix and B is upper triangular.
The form of the generalized eigenvalue problem is A*x = lambda*B*x, and B is typically made upper triangular by computing its QR factorization and moving the orthogonal matrix Q to the left side of the equation.
This subroutine simultaneously reduces A to a Hessenberg matrix H: Q**T*A*Z = H and transforms B to another upper triangular matrix T: Q**T*B*Z = T in order to reduce the problem to its standard form H*y = lambda*T*y where y = Z**T*x.
Parameters
incompq= ‘N’: do not compute Q; = ‘I’: Q is initialized to the unit matrix; = ‘V’: Q must contain an orthogonal matrix Q1 on entry.
incompz= ‘N’: do not compute Z; = ‘I’: Z is initialized to the unit matrix; = ‘V’: Z must contain an orthogonal matrix Z1 on entry.
innThe order of the matrices A and B. n >= 0.
iniloSee ihi.
inihiILO and IHI mark the rows and columns of A which are to be reduced. It is assumed that A is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1. ILO and IHI are normally set by a previous call to SGGBAL; otherwise they should be set to 0 and n-1 respectively. 0 <= ilo <= ihi <= n-1, if n > 0; ilo=0 and ihi=-1, if n=0.
inoutAArray of dimension (lda, n). On entry, the N-by-N general matrix. On exit, the upper Hessenberg matrix H.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBArray of dimension (ldb, n). On entry, the upper triangular matrix B. On exit, the upper triangular matrix T.
inldbThe leading dimension of B. ldb >= max(1,n).
inoutQArray of dimension (ldq, n). The orthogonal matrix Q.
inldqThe leading dimension of Q. ldq >= N if COMPQ=’V’ or ‘I’.
inoutZArray of dimension (ldz, n). The orthogonal matrix Z.
inldzThe leading dimension of Z. ldz >= N if COMPZ=’V’ or ‘I’.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void sgghrd(
const char* compq,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
f32* restrict A,
const INT lda,
f32* restrict B,
const INT ldb,
f32* restrict Q,
const INT ldq,
f32* restrict Z,
const INT ldz,
INT* info
);
Functions
-
void dgghrd(const char *compq, const char *compz, const INT n, const INT ilo, const INT ihi, f64 *restrict A, const INT lda, f64 *restrict B, const INT ldb, f64 *restrict Q, const INT ldq, f64 *restrict Z, const INT ldz, INT *info)#
DGGHRD reduces a pair of real matrices (A,B) to generalized upper Hessenberg form using orthogonal transformations, where A is a general matrix and B is upper triangular.
The form of the generalized eigenvalue problem is A*x = lambda*B*x, and B is typically made upper triangular by computing its QR factorization and moving the orthogonal matrix Q to the left side of the equation.
This subroutine simultaneously reduces A to a Hessenberg matrix H: Q**T*A*Z = H and transforms B to another upper triangular matrix T: Q**T*B*Z = T in order to reduce the problem to its standard form H*y = lambda*T*y where y = Z**T*x.
Parameters
incompq= ‘N’: do not compute Q; = ‘I’: Q is initialized to the unit matrix; = ‘V’: Q must contain an orthogonal matrix Q1 on entry.
incompz= ‘N’: do not compute Z; = ‘I’: Z is initialized to the unit matrix; = ‘V’: Z must contain an orthogonal matrix Z1 on entry.
innThe order of the matrices A and B. n >= 0.
iniloSee ihi.
inihiILO and IHI mark the rows and columns of A which are to be reduced. It is assumed that A is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1. ILO and IHI are normally set by a previous call to DGGBAL; otherwise they should be set to 0 and n-1 respectively. 0 <= ilo <= ihi <= n-1, if n > 0; ilo=0 and ihi=-1, if n=0.
inoutAArray of dimension (lda, n). On entry, the N-by-N general matrix. On exit, the upper Hessenberg matrix H.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBArray of dimension (ldb, n). On entry, the upper triangular matrix B. On exit, the upper triangular matrix T.
inldbThe leading dimension of B. ldb >= max(1,n).
inoutQArray of dimension (ldq, n). The orthogonal matrix Q.
inldqThe leading dimension of Q. ldq >= N if COMPQ=’V’ or ‘I’.
inoutZArray of dimension (ldz, n). The orthogonal matrix Z.
inldzThe leading dimension of Z. ldz >= N if COMPZ=’V’ or ‘I’.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void dgghrd(
const char* compq,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
f64* restrict A,
const INT lda,
f64* restrict B,
const INT ldb,
f64* restrict Q,
const INT ldq,
f64* restrict Z,
const INT ldz,
INT* info
);
Functions
-
void cgghrd(const char *compq, const char *compz, const INT n, const INT ilo, const INT ihi, c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, c64 *restrict Q, const INT ldq, c64 *restrict Z, const INT ldz, INT *info)#
CGGHRD reduces a pair of complex matrices (A,B) to generalized upper Hessenberg form using unitary transformations, where A is a general matrix and B is upper triangular.
The form of the generalized eigenvalue problem is A*x = lambda*B*x, and B is typically made upper triangular by computing its QR factorization and moving the unitary matrix Q to the left side of the equation.
This subroutine simultaneously reduces A to a Hessenberg matrix H: Q**H*A*Z = H and transforms B to another upper triangular matrix T: Q**H*B*Z = T in order to reduce the problem to its standard form H*y = lambda*T*y where y = Z**H*x.
The unitary matrices Q and Z are determined as products of Givens rotations. They may either be formed explicitly, or they may be postmultiplied into input matrices Q1 and Z1, so that Q1 * A * Z1**H = (Q1*Q) * H * (Z1*Z)**H Q1 * B * Z1**H = (Q1*Q) * T * (Z1*Z)**H
Parameters
incompq= ‘N’: do not compute Q; = ‘I’: Q is initialized to the unit matrix; = ‘V’: Q must contain a unitary matrix Q1 on entry.
incompz= ‘N’: do not compute Z; = ‘I’: Z is initialized to the unit matrix; = ‘V’: Z must contain a unitary matrix Z1 on entry.
innThe order of the matrices A and B. n >= 0.
iniloSee ihi.
inihiILO and IHI mark the rows and columns of A which are to be reduced. It is assumed that A is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1. ILO and IHI are normally set by a previous call to CGGBAL; otherwise they should be set to 0 and n-1 respectively. 0 <= ilo <= ihi <= n-1, if n > 0; ilo=0 and ihi=-1, if n=0.
inoutAArray of dimension (lda, n). On entry, the N-by-N general matrix. On exit, the upper Hessenberg matrix H.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBArray of dimension (ldb, n). On entry, the upper triangular matrix B. On exit, the upper triangular matrix T.
inldbThe leading dimension of B. ldb >= max(1,n).
inoutQArray of dimension (ldq, n). The unitary matrix Q.
inldqThe leading dimension of Q. ldq >= N if COMPQ=’V’ or ‘I’.
inoutZArray of dimension (ldz, n). The unitary matrix Z.
inldzThe leading dimension of Z. ldz >= N if COMPZ=’V’ or ‘I’.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void cgghrd(
const char* compq,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
c64* restrict A,
const INT lda,
c64* restrict B,
const INT ldb,
c64* restrict Q,
const INT ldq,
c64* restrict Z,
const INT ldz,
INT* info
);
Functions
-
void zgghrd(const char *compq, const char *compz, const INT n, const INT ilo, const INT ihi, c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, c128 *restrict Q, const INT ldq, c128 *restrict Z, const INT ldz, INT *info)#
ZGGHRD reduces a pair of complex matrices (A,B) to generalized upper Hessenberg form using unitary transformations, where A is a general matrix and B is upper triangular.
The form of the generalized eigenvalue problem is A*x = lambda*B*x, and B is typically made upper triangular by computing its QR factorization and moving the unitary matrix Q to the left side of the equation.
This subroutine simultaneously reduces A to a Hessenberg matrix H: Q**H*A*Z = H and transforms B to another upper triangular matrix T: Q**H*B*Z = T in order to reduce the problem to its standard form H*y = lambda*T*y where y = Z**H*x.
The unitary matrices Q and Z are determined as products of Givens rotations. They may either be formed explicitly, or they may be postmultiplied into input matrices Q1 and Z1, so that Q1 * A * Z1**H = (Q1*Q) * H * (Z1*Z)**H Q1 * B * Z1**H = (Q1*Q) * T * (Z1*Z)**H
Parameters
incompq= ‘N’: do not compute Q; = ‘I’: Q is initialized to the unit matrix; = ‘V’: Q must contain a unitary matrix Q1 on entry.
incompz= ‘N’: do not compute Z; = ‘I’: Z is initialized to the unit matrix; = ‘V’: Z must contain a unitary matrix Z1 on entry.
innThe order of the matrices A and B. n >= 0.
iniloSee ihi.
inihiILO and IHI mark the rows and columns of A which are to be reduced. It is assumed that A is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1. ILO and IHI are normally set by a previous call to ZGGBAL; otherwise they should be set to 0 and n-1 respectively. 0 <= ilo <= ihi <= n-1, if n > 0; ilo=0 and ihi=-1, if n=0.
inoutAArray of dimension (lda, n). On entry, the N-by-N general matrix. On exit, the upper Hessenberg matrix H.
inldaThe leading dimension of A. lda >= max(1,n).
inoutBArray of dimension (ldb, n). On entry, the upper triangular matrix B. On exit, the upper triangular matrix T.
inldbThe leading dimension of B. ldb >= max(1,n).
inoutQArray of dimension (ldq, n). The unitary matrix Q.
inldqThe leading dimension of Q. ldq >= N if COMPQ=’V’ or ‘I’.
inoutZArray of dimension (ldz, n). The unitary matrix Z.
inldzThe leading dimension of Z. ldz >= N if COMPZ=’V’ or ‘I’.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void zgghrd(
const char* compq,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
c128* restrict A,
const INT lda,
c128* restrict B,
const INT ldb,
c128* restrict Q,
const INT ldq,
c128* restrict Z,
const INT ldz,
INT* info
);