Routines (alphabetical) > Routines: L > LA_HQR

# LA_HQR

The LA_HQR function uses the multishift QR algorithm to compute all eigenvalues of an n-by-n upper Hessenberg array. The LA_ELMHES routine can be used to reduce a real or complex array to upper Hessenberg form suitable for input to this procedure. LA_HQR may also be used to compute the matrices T and QZ from the Schur decomposition A = (QZ) T (QZ)H.

LA_HQR is based on the following LAPACK routines:

Output Type | LAPACK Routine
Float | shseqr
Double | dhseqr
Complex | chseqr
Double complex | zhseqr

## Examples

See LA_EIGENVEC for an example of using this procedure.

## Syntax

Result = LA_HQR(H [, Q] [, /DOUBLE] [, PERMUTE_RESULT=[ilo, ihi]] [, STATUS=variable] )

## Return Value

The result is an n-element complex vector.

## Arguments

### H

An n-by-n upper Hessenberg array, created by the LA_ELMHES procedure. If argument Q is present, then on return H is replaced by the Schur form T. If argument Q is not present then H is unchanged.

### Q

Set this optional argument to the array Q created by the LA_ELMHES procedure. If argument Q is present, then on return Q is replaced by the Schur vectors QZ.

## Keywords

### DOUBLE

Set this keyword to use double-precision for computations and to return a double-precision (real or complex) result. Set DOUBLE = 0 to use single-precision for computations and to return a single-precision (real or complex) result. The default is /DOUBLE if H is double precision, otherwise the default is DOUBLE = 0.

### PERMUTE_RESULT

Set this keyword to a two-element vector containing the [ilo, ihi] permutation results from the LA_ELMHES procedure. The default is [1, n], indicating that permute balancing was not done on H.

### STATUS

Set this keyword to a named variable that will contain the status of the computation. Possible values are:

- STATUS = 0: The computation was successful.
- STATUS > 0: The algorithm failed to find all eigenvalues in 30*(ihi - ilo + 1) iterations. The STATUS value indicates that eigenvalues ilo:STATUS (starting at index 1) did not converge; all other eigenvalues converged.

Note: If STATUS is not specified, any error messages will output to the screen.

## Version History

5.6 | Introduced

## Resources and References

For details see Anderson et al., LAPACK Users' Guide, 3rd ed., SIAM, 1999.

## See Also

HQR, LA_EIGENVEC, LA_ELMHES