The routine may be called by the names f06qkf or nagf_blas_dgeapr.
f06qkf performs one of the permutation operations
where is a real matrix, and is a permutation matrix.
is represented in the form
where is the permutation matrix that interchanges items and ; that is, is the unit matrix with rows and columns and interchanged. If , .
Let denote the number of rows of if , or the number of columns of if : the routine does not require to be passed as an argument, but assumes that , for .
This routine requires the indices to be supplied in a real array (the routine takes the integer part of the array elements); f06qjf performs the same operation with the indices supplied in an integer array.
1: – Character(1)Input
2: – Character(1)Input
On entry: specifies the operation to be performed.
3: – IntegerInput
On entry: , the number of interchanges in the representation of .
4: – Real (Kind=nag_wp) arrayInput
Note: the dimension of the array perm
must be at least
On entry: the indices which define the interchanges in the representation of . It is usual to have , but this is not necessary.
, where .
5: – IntegerInput
On entry: , the number of columns of if , or the number of rows of if .
6: – Real (Kind=nag_wp) arrayInput/Output
Note: the second dimension of the array b
must be at least
if and at least if .
On entry: the original matrix ; is , where if , or , where if .
On exit: the permuted matrix .
7: – IntegerInput
On entry: the first dimension of the array b as declared in the (sub)program from which f06qkf is called.
if , ;
if , .
6Error Indicators and Warnings
8Parallelism and Performance
Background information to multithreading can be found in the Multithreading documentation.