NAG Library Routine Document
F06QRF performs a or factorization (as a sequence of plane rotations) of a real upper Hessenberg matrix.
||N, K1, K2, LDA
||C(K2-1), S(K2-1), A(LDA,*)
F06QRF transforms an by real upper Hessenberg matrix to upper triangular form by applying an orthogonal matrix from the left or the right. is assumed to have nonzero subdiagonal elements , for , only. is formed as a sequence of plane rotations in planes to .
, the rotations are applied from the left:
, the rotations are applied from the right:
In either case, is a rotation in the plane, chosen to annihilate .
plane rotation part of
has the form
- 1: SIDE – CHARACTER(1)Input
: specifies whether
is operated on from the left or the right.
- is pre-multiplied from the left.
- is post-multiplied from the right.
- 2: N – INTEGERInput
On entry: , the order of the matrix .
- 3: K1 – INTEGERInput
- 4: K2 – INTEGERInput
: the values
If or or , an immediate return is effected.
- 5: C() – REAL (KIND=nag_wp) arrayOutput
On exit: holds , the cosine of the rotation , for .
- 6: S() – REAL (KIND=nag_wp) arrayInput/Output
On entry: the nonzero subdiagonal elements of :
must hold , for .
On exit: holds , the sine of the rotation , for .
- 7: A(LDA,) – REAL (KIND=nag_wp) arrayInput/Output
the second dimension of the array A
must be at least
On entry: the upper triangular part of the by upper Hessenberg matrix .
On exit: the upper triangular matrix .
- 8: LDA – INTEGERInput
: the first dimension of the array A
as declared in the (sub)program from which F06QRF is called.
6 Error Indicators and Warnings