naginterfaces.library.blas.zuhqr

naginterfaces.library.blas.zuhqr(side, k1, k2, s, a)[source]

zuhqr performs a or factorization (as a sequence of plane rotations) of a complex upper Hessenberg matrix.

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

https://support.nag.com/numeric/nl/nagdoc_30.2/flhtml/f06/f06trf.html

Parameters
sidestr, length 1

Specifies whether is operated on from the left or the right.

is pre-multiplied from the left.

is post-multiplied from the right.

k1int

The value .

k2int

The value .

sfloat, array-like, shape

The nonzero subdiagonal elements of : must hold , for .

acomplex, array-like, shape

The upper triangular part of the upper Hessenberg matrix .

Returns
ccomplex, ndarray, shape

holds , the cosine of the rotation , for ; holds , the th diagonal element of , if , or , the th diagonal element of , if .

sfloat, ndarray, shape

holds , the sine of the rotation , for .

acomplex, ndarray, shape

The upper triangular matrix . The imaginary parts of the diagonal elements are set to zero.

Raises
NagValueError
(errno )

On entry, error in parameter .

Constraint: or .

(errno )

On entry, error in parameter .

Constraint: .

Notes

No equivalent traditional C interface for this routine exists in the NAG Library.

zuhqr transforms an complex upper Hessenberg matrix to upper triangular form by applying a unitary matrix from the left or the right. is assumed to have real nonzero subdiagonal elements , for , only; has real diagonal elements. is formed as a sequence of plane rotations in planes to .

If , the rotations are applied from the left:

where and with .

If , the rotations are applied from the right:

where and with .

In either case, is a rotation in the plane, chosen to annihilate .

The plane rotation part of has the form

with real.