# naginterfaces.library.lapackeig.zgghd3¶

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

zgghd3 reduces a pair of complex matrices , where is upper triangular, to the generalized upper Hessenberg form using unitary transformations.

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

https://www.nag.com/numeric/nl/nagdoc_28.5/flhtml/f08/f08wtf.html

Parameters
compqstr, length 1

Specifies the form of the computed unitary matrix .

Do not compute .

The unitary matrix is returned.

must contain a unitary matrix , and the product is returned.

compzstr, length 1

Specifies the form of the computed unitary matrix .

Do not compute .

must contain a unitary matrix , and the product is returned.

The unitary matrix is returned.

iloint

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

ihiint

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

acomplex, array-like, shape

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

bcomplex, array-like, shape

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

qcomplex, 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 a unitary matrix .

If , is not referenced.

zcomplex, 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 a unitary matrix .

If , is not referenced.

Returns
acomplex, ndarray, shape

is overwritten by the upper Hessenberg matrix .

bcomplex, ndarray, shape

is overwritten by the upper triangular matrix .

qcomplex, ndarray, shape

If , contains the unitary matrix .

Iif , is overwritten by .

zcomplex, ndarray, shape

If , contains the unitary 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

zgghd3 is usually the third step in the solution of the complex generalized eigenvalue problem

The (optional) first step balances the two matrices using zggbal(). In the second step, matrix is reduced to upper triangular form using the factorization function zgeqrf() and this unitary transformation is applied to matrix by calling zunmqr(). The driver, zggev3(), solves the complex generalized eigenvalue problem by combining all the required steps including those just listed.

zgghd3 reduces a pair of complex matrices , where is triangular, to the generalized upper Hessenberg form using unitary transformations. This two-sided transformation is of the form

where is an upper Hessenberg matrix, is an upper triangular matrix and and are unitary 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