The ELMHES function reduces a real, nonsymmetric n by n array A to upper Hessenberg form. ELMHES is based on the routine elmhes described in section 11.5 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission.

Note: If you are working with complex inputs, use the LA_ELMHES function instead.

Examples


See the description of the HQR for an example using this function.

Syntax


Result = ELMHES( A [, /COLUMN] [, /DOUBLE] [, /NO_BALANCE] )

Return Value


The result is an upper Hessenberg array with eigenvalues that are identical to those of the original array A. The Hessenberg array is stored in the upper triangle and the first subdiagonal. Elements below the subdiagonal should be ignored but are not automatically set to zero.

Arguments


A

An n by n real, nonsymmetric array.

Keywords


COLUMN

Set this keyword if the input array A is in column-major format (composed of column vectors) rather than in row-major format (composed of row vectors).

DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

NO_BALANCE

Set this keyword to disable balancing. By default, a balancing algorithm is applied to A. Balancing a nonsymmetric array is recommended to reduce the sensitivity of eigenvalues to rounding errors.

Version History


4.0

Introduced

See Also


EIGENVEC, HQR, LA_ELMHES, TRIQL, TRIRED