# naginterfaces.library.lapackeig.dgghd3¶

naginterfaces.library.lapackeig.dgghd3(compq, compz, ilo, ihi, a, b, q, z)[source]

dgghd3 reduces a pair of real matrices , where is upper triangular, to the generalized upper Hessenberg form using orthogonal transformations.

For full information please refer to the NAG Library document for f08wf

https://support.nag.com/numeric/nl/nagdoc_30.1/flhtml/f08/f08wff.html

Parameters
compqstr, length 1

Specifies the form of the computed orthogonal matrix .

Do not compute .

The orthogonal matrix is returned.

must contain an orthogonal matrix , and the product is returned.

compzstr, length 1

Specifies the form of the computed orthogonal matrix .

Do not compute .

The orthogonal matrix is returned.

must contain an orthogonal matrix , and the product is returned.

iloint

and as determined by a previous call to dggbal(). Otherwise, they should be set to and , respectively.

ihiint

and as determined by a previous call to dggbal(). Otherwise, they should be set to and , respectively.

afloat, array-like, shape

The matrix of the matrix pair . Usually, this is the matrix returned by dormqr().

bfloat, array-like, shape

The upper triangular matrix of the matrix pair . Usually, this is the matrix returned by the factorization function dgeqrf().

qfloat, array-like, shape

Note: the required extent for this argument in dimension 1 is determined as follows: if : ; if : ; otherwise: .

Note: the required extent for this argument in dimension 2 is determined as follows: if : ; if : ; otherwise: .

If , must contain an orthogonal matrix .

If , is not referenced.

zfloat, array-like, shape

Note: the required extent for this argument in dimension 1 is determined as follows: if : ; if : ; otherwise: .

Note: the required extent for this argument in dimension 2 is determined as follows: if : ; if : ; otherwise: .

If , must contain an orthogonal matrix .

If , is not referenced.

Returns
afloat, ndarray, shape

is overwritten by the upper Hessenberg matrix .

bfloat, ndarray, shape

is overwritten by the upper triangular matrix .

qfloat, ndarray, shape

If , contains the orthogonal matrix .

If , is overwritten by .

zfloat, ndarray, shape

If , contains the orthogonal matrix .

If , is overwritten by .

Raises
NagValueError
(errno )

On entry, error in parameter .

Constraint: , or .

(errno )

On entry, error in parameter .

Constraint: , or .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: and .

Notes

dgghd3 is the third step in the solution of the real generalized eigenvalue problem

The (optional) first step balances the two matrices using dggbal(). In the second step, matrix is reduced to upper triangular form using the factorization function dgeqrf() and this orthogonal transformation is applied to matrix by calling dormqr(). The driver, dggev3(), solves the real generalized eigenvalue problem by combining all the required steps including those just listed.

dgghd3 reduces a pair of real matrices , where is upper triangular, to the generalized upper Hessenberg form using orthogonal transformations. This two-sided transformation is of the form

where is an upper Hessenberg matrix, is an upper triangular matrix and and are orthogonal matrices determined as products of Givens rotations. They may either be formed explicitly, or they may be postmultiplied into input matrices and , so that

References

Golub, G H and Van Loan, C F, 2012, Matrix Computations, (4th Edition), Johns Hopkins University Press, Baltimore

Moler, C B and Stewart, G W, 1973, An algorithm for generalized matrix eigenproblems, SIAM J. Numer. Anal. (10), 241–256