DragonFly On-Line Manual Pages
    
    
	
HPL_perm(3)                  HPL Library Functions                 HPL_perm(3)
NAME
       HPL_perm - Combine 2 index arrays - Generate the permutation.
SYNOPSIS
       #include "hpl.h"
       void HPL_perm( const int N, int * LINDXA, int * LINDXAU, int * IWORK );
DESCRIPTION
       HPL_perm combines  two  index  arrays  and generate the corresponding
       permutation. First, this function computes the inverse of LINDXA, and
       then combine it with LINDXAU.  Second, in order to be able to perform
       the permutation in place,  LINDXAU  is overwritten by the sequence of
       permutation  producing  the  same result.  What we ultimately want to
       achieve is:  U[LINDXAU[i]] := U[LINDXA[i]] for i in [0..N). After the
       call to this function,  this in place permutation can be performed by
       for i in [0..N) swap U[i] with U[LINDXAU[i]].
ARGUMENTS
       N       (global input)          const int
               On entry,  N  specifies the length of the arrays  LINDXA  and
               LINDXAU. N should be at least zero.
       LINDXA  (global input/output)   int *
               On entry,  LINDXA  is an array of dimension N  containing the
               source indexes. On exit,  LINDXA  contains the combined index
               array.
       LINDXAU (global input/output)   int *
               On entry,  LINDXAU is an array of dimension N  containing the
               target indexes.  On exit,  LINDXAU  contains  the sequence of
               permutation,  that  should be applied  in increasing order to
               permute the underlying array U in place.
       IWORK   (workspace)             int *
               On entry, IWORK is a workarray of dimension N.
SEE ALSO
       HPL_plindx1 (3), HPL_pdlaswp01N (3), HPL_pdlaswp01T (3).
HPL 2.1                        October 26, 2012                    HPL_perm(3)