1HPL_perm(3) HPL Library Functions HPL_perm(3)
2
3
4
6 HPL_perm - Combine 2 index arrays - Generate the permutation.
7
9 #include "hpl.h"
10
11 void HPL_perm( const int N, int * LINDXA, int * LINDXAU, int * IWORK );
12
14 HPL_perm combines two index arrays and generate the corresponding
15 permutation. First, this function computes the inverse of LINDXA, and
16 then combine it with LINDXAU. Second, in order to be able to perform
17 the permutation in place, LINDXAU is overwritten by the sequence of
18 permutation producing the same result. What we ultimately want to
19 achieve is: U[LINDXAU[i]] := U[LINDXA[i]] for i in [0..N). After the
20 call to this function, this in place permutation can be performed by
21 for i in [0..N) swap U[i] with U[LINDXAU[i]].
22
24 N (global input) const int
25 On entry, N specifies the length of the arrays LINDXA and
26 LINDXAU. N should be at least zero.
27
28 LINDXA (global input/output) int *
29 On entry, LINDXA is an array of dimension N containing the
30 source indexes. On exit, LINDXA contains the combined index
31 array.
32
33 LINDXAU (global input/output) int *
34 On entry, LINDXAU is an array of dimension N containing the
35 target indexes. On exit, LINDXAU contains the sequence of
36 permutation, that should be applied in increasing order to
37 permute the underlying array U in place.
38
39 IWORK (workspace) int *
40 On entry, IWORK is a workarray of dimension N.
41
43 HPL_plindx1 (3), HPL_pdlaswp01N (3), HPL_pdlaswp01T (3).
44
45
46
47HPL 2.2 February 24, 2016 HPL_perm(3)