##
ELMHES

The
ELMHES
function reduces a real, nonsymmetric *
n*
by *
n*
array *
A*
to upper Hessenberg form. 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 elements (*
j, i*
) with *
i*
*
<=*
*
j*
+ 1. Elements with *
i*
> *
j*
+ 1 are to be thought of as zero, but are returned with random values.

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.

###
Calling Sequence

Result = ELMHES(*
A*
)

###
Arguments

####
A

An *
n*
by *
n*
real, nonsymmetric array.

###
Keywords

####
DOUBLE

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

####
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).

####
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.

###
Example

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