NAG FL Interface
f06qxf (dgesrc)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

f06qxf applies a sequence of plane rotations to a real rectangular matrix.

2 Specification

Fortran Interface
Subroutine f06qxf ( side, pivot, direct, m, n, k1, k2, c, s, a, lda)
Integer, Intent (In) :: m, n, k1, k2, lda
Real (Kind=nag_wp), Intent (In) :: c(k2-1), s(k2-1)
Real (Kind=nag_wp), Intent (Inout) :: a(lda,*)
Character (1), Intent (In) :: side, pivot, direct
C Header Interface
#include <nag.h>
void  f06qxf_ (const char *side, const char *pivot, const char *direct, const Integer *m, const Integer *n, const Integer *k1, const Integer *k2, const double c[], const double s[], double a[], const Integer *lda, const Charlen length_side, const Charlen length_pivot, const Charlen length_direct)
The routine may be called by the names f06qxf or nagf_blas_dgesrc.

3 Description

f06qxf performs the transformation
APA   or   AAPT ,  
where A is an m×n real matrix and P is a real orthogonal matrix, defined as a sequence of plane rotations, Pk, applied in planes k1 to k2.
The 2×2 plane rotation part of Pk is assumed to have the form
( ck sk -sk ck ) .  

4 References

None.

5 Arguments

1: side Character(1) Input
On entry: specifies whether A is operated on from the left or the right.
side='L'
A is pre-multiplied from the left.
side='R'
A is post-multiplied from the right.
Constraint: side='L' or 'R'.
2: pivot Character(1) Input
On entry: specifies the plane rotated by Pk.
pivot='V' (variable pivot)
Pk rotates the (k,k+1) plane.
pivot='T' (top pivot)
Pk rotates the (k1,k+1) plane.
pivot='B' (bottom pivot)
Pk rotates the (k,k2) plane.
Constraint: pivot='V', 'T' or 'B'.
3: direct Character(1) Input
On entry: specifies the sequence direction.
direct='F' (forward sequence)
P=Pk2-1Pk1+1Pk1.
direct='B' (backward sequence)
P=Pk1Pk1+1Pk2-1.
Constraint: direct='F' or 'B'.
4: m Integer Input
On entry: m, the number of rows of the matrix A.
If m<1, an immediate return is effected.
Constraint: m0.
5: n Integer Input
On entry: n, the number of columns of the matrix A.
If n<1, an immediate return is effected.
Constraint: n0.
6: k1 Integer Input
7: k2 Integer Input
On entry: the values k1 and k2.
If k1<1 or k2k1, or side='L' and k2>m, or side='R' and k2>n, an immediate return is effected.
8: c(k2-1) Real (Kind=nag_wp) array Input
On entry: c(k) must hold ck, the cosine of the rotation Pk, for k=k1,,k2-1.
9: s(k2-1) Real (Kind=nag_wp) array Input
On entry: s(k) must hold sk, the sine of the rotation Pk, for k=k1,,k2-1.
10: a(lda,*) Real (Kind=nag_wp) array Input/Output
Note: the second dimension of the array a must be at least n.
On entry: the m×n matrix A.
On exit: the transformed matrix A.
11: lda Integer Input
On entry: the first dimension of the array a as declared in the (sub)program from which f06qxf is called.
Constraint: lda max(1,m) .

6 Error Indicators and Warnings

None.

7 Accuracy

Not applicable.

8 Parallelism and Performance

Background information to multithreading can be found in the Multithreading documentation.
f06qxf is not threaded in any implementation.

9 Further Comments

None.

10 Example

None.