Note: before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.
F06TRF transforms an by 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 by plane rotation part of has the form
with real.
4 References
None.
5 Parameters
1: SIDE – CHARACTER(1)Input
On entry: specifies whether is operated on from the left or the right.
is pre-multiplied from the left.
is post-multiplied from the right.
Constraint:
or .
2: N – INTEGERInput
On entry: , the order of the matrix .
Constraint:
.
3: K1 – INTEGERInput
4: K2 – INTEGERInput
On entry: the dimension of the array C as declared in the (sub)program from which F06TRF is called.
The values and .