NAG Library Routine Document
f06qrf performs a or factorization (as a sequence of plane rotations) of a real upper Hessenberg matrix.
|Integer, Intent (In)||:: ||n, k1, k2, lda|
|Real (Kind=nag_wp), Intent (Inout)||:: ||c(k2-1), s(k2-1), a(lda,*)|
|Character (1), Intent (In)||:: ||side|C Header Interface
f06qrf_ (const char *side, const Integer *n, const Integer *k1, const Integer *k2, double c, double s, double a, const Integer *lda, const Charlen length_side)|
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: – 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: – IntegerInput
On entry: , the order of the matrix .
- 3: – IntegerInput
- 4: – IntegerInput
: the values
If or or , an immediate return is effected.
- 5: – Real (Kind=nag_wp) arrayOutput
On exit: holds , the cosine of the rotation , for .
- 6: – 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: – 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: – IntegerInput
: the first dimension of the array a
as declared in the (sub)program from which f06qrf
Error Indicators and Warnings
Parallelism and Performance
f06qrf is not threaded in any implementation.