Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Macros | Functions
sarray_sort.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define sarray_permute_   PREFIXED_NAME(sarray_permute_)
 
#define sarray_permute_buf_   PREFIXED_NAME(sarray_permute_buf_)
 
#define sarray_permute(T, A, n, perm, work)   sarray_permute_(sizeof(T),A,n, perm, work)
 
#define sarray_permute_buf(T, A, n, buf)   sarray_permute_buf_(ALIGNOF(T),sizeof(T),A,n,buf)
 
#define sarray_sort_field(T, A, n, field, is_long, buf, keep)
 
#define sarray_sort(T, A, n, field, is_long, buf)
 
#define sarray_sort_2(T, A, n, field1, is_long1, field2, is_long2, buf)
 
#define sarray_sort_3(T, A, n, field1, is_long1, field2, is_long2, field3, is_long3, buf)
 
#define sarray_sort_4(T, A, n, field1, is_long1, field2, is_long2, field3, is_long3, field4, is_long4, buf)
 

Functions

void sarray_permute_ (size_t size, void *A, size_t n, uint *perm, void *work)
 
void sarray_permute_buf_ (size_t align, size_t size, void *A, size_t n, buffer *buf)
 
static void sarray_perm_invert (uint *const pinv, const uint *const perm, const uint n)
 

Macro Definition Documentation

#define sarray_permute (   T,
  A,
  n,
  perm,
  work 
)    sarray_permute_(sizeof(T),A,n, perm, work)

Definition at line 43 of file sarray_sort.h.

#define sarray_permute_   PREFIXED_NAME(sarray_permute_)

Definition at line 36 of file sarray_sort.h.

#define sarray_permute_buf (   T,
  A,
  n,
  buf 
)    sarray_permute_buf_(ALIGNOF(T),sizeof(T),A,n,buf)

Definition at line 45 of file sarray_sort.h.

Referenced by discover_dofs().

#define sarray_permute_buf_   PREFIXED_NAME(sarray_permute_buf_)

Definition at line 37 of file sarray_sort.h.

#define sarray_sort (   T,
  A,
  n,
  field,
  is_long,
  buf 
)
Value:
do { \
sarray_sort_field(T,A,n, field,is_long, buf,0); \
} while (0)
double T
Definition: gs_test.c:14
n
Definition: xxt_test.m:73
ulong A[NUM][SI]
Definition: sort_test.c:17
#define sarray_sort_field(T, A, n, field, is_long, buf, keep)
Definition: sarray_sort.h:48
#define sarray_permute_buf(T, A, n, buf)
Definition: sarray_sort.h:45

Definition at line 55 of file sarray_sort.h.

Referenced by cr_setup_aux(), crl_work_label(), findpts(), findpts_eval(), main(), make_topology_unique(), map_points_to_els(), nonzero_ids(), pw_map_setup(), shared_ids_aux(), and table_from_hash().

#define sarray_sort_2 (   T,
  A,
  n,
  field1,
  is_long1,
  field2,
  is_long2,
  buf 
)
Value:
do { \
sarray_sort_field(T,A,n, field2,is_long2, buf,0); \
sarray_sort_field(T,A,n, field1,is_long1, buf,1); \
} while (0)
double T
Definition: gs_test.c:14
n
Definition: xxt_test.m:73
ulong A[NUM][SI]
Definition: sort_test.c:17
#define sarray_sort_field(T, A, n, field, is_long, buf, keep)
Definition: sarray_sort.h:48
#define sarray_permute_buf(T, A, n, buf)
Definition: sarray_sort.h:45

Definition at line 60 of file sarray_sort.h.

Referenced by condense_matrix(), cr_learn(), crl_maps(), crl_work_label(), main(), make_topology_unique(), nonzero_ids(), pw_comm_setup(), and shared_ids().

#define sarray_sort_3 (   T,
  A,
  n,
  field1,
  is_long1,
  field2,
  is_long2,
  field3,
  is_long3,
  buf 
)
Value:
do { \
sarray_sort_field(T,A,n, field3,is_long3, buf,0); \
sarray_sort_field(T,A,n, field2,is_long2, buf,1); \
sarray_sort_field(T,A,n, field1,is_long1, buf,1); \
} while (0)
double T
Definition: gs_test.c:14
n
Definition: xxt_test.m:73
ulong A[NUM][SI]
Definition: sort_test.c:17
#define sarray_sort_field(T, A, n, field, is_long, buf, keep)
Definition: sarray_sort.h:48
#define sarray_permute_buf(T, A, n, buf)
Definition: sarray_sort.h:45

Definition at line 66 of file sarray_sort.h.

Referenced by main().

#define sarray_sort_4 (   T,
  A,
  n,
  field1,
  is_long1,
  field2,
  is_long2,
  field3,
  is_long3,
  field4,
  is_long4,
  buf 
)
Value:
do { \
sarray_sort_field(T,A,n, field4,is_long4, buf,0); \
sarray_sort_field(T,A,n, field3,is_long3, buf,1); \
sarray_sort_field(T,A,n, field2,is_long2, buf,1); \
sarray_sort_field(T,A,n, field1,is_long1, buf,1); \
} while (0)
double T
Definition: gs_test.c:14
n
Definition: xxt_test.m:73
ulong A[NUM][SI]
Definition: sort_test.c:17
#define sarray_sort_field(T, A, n, field, is_long, buf, keep)
Definition: sarray_sort.h:48
#define sarray_permute_buf(T, A, n, buf)
Definition: sarray_sort.h:45

Definition at line 74 of file sarray_sort.h.

#define sarray_sort_field (   T,
  A,
  n,
  field,
  is_long,
  buf,
  keep 
)
Value:
do { \
if(is_long) \
sortp_long(buf,keep, (ulong*)((char*)(A)+offsetof(T,field)),n,sizeof(T)); \
sortp (buf,keep, (uint *)((char*)(A)+offsetof(T,field)),n,sizeof(T)); \
} while (0)
#define uint
Definition: types.h:70
double T
Definition: gs_test.c:14
n
Definition: xxt_test.m:73
ulong A[NUM][SI]
Definition: sort_test.c:17
#define ulong
Definition: types.h:75
#define sortp_long
Definition: sort.h:57
uint * sortp(buffer *restrict buf, int start_perm, const T *restrict A, uint n, unsigned stride)
Definition: sort_imp.h:477

Definition at line 48 of file sarray_sort.h.

Function Documentation

static void sarray_perm_invert ( uint *const  pinv,
const uint *const  perm,
const uint  n 
)
static

Definition at line 83 of file sarray_sort.h.

References i, n, and uint.

void sarray_permute_ ( size_t  size,
void *  A,
size_t  n,
uint perm,
void *  work 
)

Definition at line 14 of file sarray_sort.c.

References A, i, n, sint, uint, and work.

void sarray_permute_buf_ ( size_t  align,
size_t  size,
void *  A,
size_t  n,
buffer buf 
)

Definition at line 39 of file sarray_sort.c.

References align_as_(), buffer_reserve, array::ptr, sarray_permute_, and uint.

+ Here is the call graph for this function: