Routines (alphabetical) > Routines: E > ELMHES

# ELMHES

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