1HPL_perm(3)                  HPL Library Functions                 HPL_perm(3)
2
3
4

NAME

6       HPL_perm - Combine 2 index arrays - Generate the permutation.
7

SYNOPSIS

9       #include "hpl.h"
10
11       void HPL_perm( const int N, int * LINDXA, int * LINDXAU, int * IWORK );
12

DESCRIPTION

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

ARGUMENTS

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

SEE ALSO

43       HPL_plindx1 (3), HPL_pdlaswp01N (3), HPL_pdlaswp01T (3).
44
45
46
47HPL 2.2                        February 24, 2016                   HPL_perm(3)
Impressum