This manual relates to an old release of the Library.
The documentation for the current release is also available on this site.

NAG FL Interface
f06vkf (zgeapr)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

f06vkf permutes the rows or columns of a complex rectangular matrix using a real array of permutations.

2 Specification

Fortran Interface
Subroutine f06vkf ( side, trans, n, perm, k, b, ldb)
Integer, Intent (In) :: n, k, ldb
Real (Kind=nag_wp), Intent (In) :: perm(*)
Complex (Kind=nag_wp), Intent (Inout) :: b(ldb,*)
Character (1), Intent (In) :: side, trans
C Header Interface
#include <nag.h>
void  f06vkf_ (const char *side, const char *trans, const Integer *n, const double perm[], const Integer *k, Complex b[], const Integer *ldb, const Charlen length_side, const Charlen length_trans)
The routine may be called by the names f06vkf or nagf_blas_zgeapr.

3 Description

f06vkf performs one of the permutation operations
BPTB, BPB, BBPT  or BBP,  
where B is a complex matrix, and P is a permutation matrix.
P is represented in the form
P=P1,p1P2,p2Pn,pn,  
where Pi,j is the permutation matrix that interchanges items i and j; that is, Pi,j is the unit matrix with rows and columns i and j interchanged. If i=j, Pi,j=I.
Let m denote the number of rows of B if side='L', or the number of columns of B if side='R': the routine does not require m to be passed as an argument, but assumes that mpi, for i=1,2,,n.
This routine requires the indices pi to be supplied in a real array (the routine takes the integer part of the array elements); f06vjf performs the same operation with the indices supplied in an integer array.

4 References

None.

5 Arguments

1: side Character(1) Input
2: trans Character(1) Input
On entry: specifies the operation to be performed.
side='L' and trans='T'
BPTB.
side='L' and trans='N'
BPB.
side='R' and trans='T'
BBPT.
side='R' and trans='N'
BBP.
Constraints:
  • side='L' or 'R';
  • trans='N' or 'T'.
3: n Integer Input
On entry: n, the number of interchanges in the representation of P.
Constraint: n0.
4: perm(*) Real (Kind=nag_wp) array Input
Note: the dimension of the array perm must be at least max(1,n) .
On entry: the n indices pi which define the interchanges in the representation of P. It is usual to have pii, but this is not necessary.
Constraint: 1perm(i)m, where m= maxk{intperm(k)} .
5: k Integer Input
On entry: k, the number of columns of B if side='L', or the number of rows of B if side='R'.
Constraint: k0.
6: b(ldb,*) Complex (Kind=nag_wp) array Input/Output
Note: the second dimension of the array b must be at least max(1,k) if side='L' and at least max(n,maxk{intperm(k)}) if side='R'.
On entry: the original matrix B; B is m×k, where m= maxk{intperm(k)} if side='L', or k×m, where m= maxk{intperm(k)} if side='R'.
On exit: the permuted matrix B.
7: ldb Integer Input
On entry: the first dimension of the array b as declared in the (sub)program from which f06vkf is called.
Constraints:
  • if side='L', ldb max(n,m) ;
  • if side='R', ldb max(1,k) .

6 Error Indicators and Warnings

None.

7 Accuracy

Not applicable.

8 Parallelism and Performance

f06vkf is not threaded in any implementation.

9 Further Comments

None.

10 Example

None.