Yet Another eXchange Tool 0.11.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
xt_heapsort_base.h File Reference

macros to create heapsort implementations More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define TOKEN_PASTE(a, b)
 
#define NAME_COMPOSE(a, b)
 
#define XT_SORTFUNC_DECL
 
#define XT_SORTFUNC_DECL_UNDEF
 
#define XT_SORT_EXTRA_ARGS_DECL
 
#define XT_SORT_EXTRA_ARGS_DECL_UNDEF
 
#define XT_SORT_EXTRA_ARGS_PASS
 
#define XT_SORT_EXTRA_ARGS_PASS_UNDEF
 
#define XT_SORT_ASSIGN(a, i, b, j)
 
#define XT_SORT_ASSIGN_UNDEF
 
#define XT_SORT_EXTRA_ARGS_SWAP(i, j)
 
#define XT_SORT_EXTRA_ARGS_SWAP_UNDEF
 
#define XT_HEAPSORT   NAME_COMPOSE(xt_heapsort, SORT_TYPE_SUFFIX)
 
#define XT_HEAPIFY   NAME_COMPOSE(xt_heapify, SORT_TYPE_SUFFIX)
 
#define SWAP(i, j)
 

Functions

static size_t left (size_t i)
 
static size_t right (size_t i)
 
static size_t parent (size_t i)
 
XT_SORTFUNC_DECL void XT_HEAPIFY (SORT_TYPE *restrict v, size_t n, size_t i XT_SORT_EXTRA_ARGS_DECL)
 
XT_SORTFUNC_DECL void XT_HEAPSORT (SORT_TYPE heap[], size_t n XT_SORT_EXTRA_ARGS_DECL)
 

Detailed Description

macros to create heapsort implementations

Author
Jörg Behrens behre.nosp@m.ns@d.nosp@m.krz.d.nosp@m.e Moritz Hanke hanke.nosp@m.@dkr.nosp@m.z.de Thomas Jahns jahns.nosp@m.@dkr.nosp@m.z.de

Definition in file xt_heapsort_base.h.

Macro Definition Documentation

◆ NAME_COMPOSE

#define NAME_COMPOSE ( a,
b )
Value:
#define TOKEN_PASTE(a, b)

Definition at line 50 of file xt_heapsort_base.h.

◆ SWAP

#define SWAP ( i,
j )
Value:
do { \
SORT_TYPE t = v[i]; v[i] = v[j]; v[j] = t; \
XT_SORT_EXTRA_ARGS_SWAP(i, j); \
} while (0)
#define SORT_TYPE
Definition mergesort.c:57

Definition at line 97 of file xt_heapsort_base.h.

◆ TOKEN_PASTE

#define TOKEN_PASTE ( a,
b )
Value:
a##_##b

Definition at line 49 of file xt_heapsort_base.h.

◆ XT_HEAPIFY

#define XT_HEAPIFY   NAME_COMPOSE(xt_heapify, SORT_TYPE_SUFFIX)

Definition at line 94 of file xt_heapsort_base.h.

◆ XT_HEAPSORT

#define XT_HEAPSORT   NAME_COMPOSE(xt_heapsort, SORT_TYPE_SUFFIX)

Definition at line 93 of file xt_heapsort_base.h.

◆ XT_SORT_ASSIGN

#define XT_SORT_ASSIGN ( a,
i,
b,
j )
Value:
(a)[(i)] = (b)[(j)]

Definition at line 84 of file xt_heapsort_base.h.

◆ XT_SORT_ASSIGN_UNDEF

#define XT_SORT_ASSIGN_UNDEF

Definition at line 85 of file xt_heapsort_base.h.

◆ XT_SORT_EXTRA_ARGS_DECL

#define XT_SORT_EXTRA_ARGS_DECL

Definition at line 72 of file xt_heapsort_base.h.

◆ XT_SORT_EXTRA_ARGS_DECL_UNDEF

#define XT_SORT_EXTRA_ARGS_DECL_UNDEF

Definition at line 73 of file xt_heapsort_base.h.

◆ XT_SORT_EXTRA_ARGS_PASS

#define XT_SORT_EXTRA_ARGS_PASS

Definition at line 79 of file xt_heapsort_base.h.

◆ XT_SORT_EXTRA_ARGS_PASS_UNDEF

#define XT_SORT_EXTRA_ARGS_PASS_UNDEF

Definition at line 80 of file xt_heapsort_base.h.

◆ XT_SORT_EXTRA_ARGS_SWAP

#define XT_SORT_EXTRA_ARGS_SWAP ( i,
j )

Definition at line 89 of file xt_heapsort_base.h.

◆ XT_SORT_EXTRA_ARGS_SWAP_UNDEF

#define XT_SORT_EXTRA_ARGS_SWAP_UNDEF

Definition at line 90 of file xt_heapsort_base.h.

◆ XT_SORTFUNC_DECL

#define XT_SORTFUNC_DECL

Definition at line 66 of file xt_heapsort_base.h.

◆ XT_SORTFUNC_DECL_UNDEF

#define XT_SORTFUNC_DECL_UNDEF

Definition at line 67 of file xt_heapsort_base.h.

Function Documentation

◆ left()

static size_t left ( size_t i)
inlinestatic

Definition at line 106 of file xt_heapsort_base.h.

Here is the caller graph for this function:

◆ parent()

static size_t parent ( size_t i)
inlinestatic

Definition at line 118 of file xt_heapsort_base.h.

◆ right()

static size_t right ( size_t i)
inlinestatic

Definition at line 112 of file xt_heapsort_base.h.

Here is the caller graph for this function:

◆ XT_HEAPIFY()

XT_SORTFUNC_DECL void XT_HEAPIFY ( SORT_TYPE *restrict v,
size_t n,
size_t i XT_SORT_EXTRA_ARGS_DECL )

Definition at line 124 of file xt_heapsort_base.h.

Here is the call graph for this function:

◆ XT_HEAPSORT()

XT_SORTFUNC_DECL void XT_HEAPSORT ( SORT_TYPE heap[],
size_t n XT_SORT_EXTRA_ARGS_DECL )

Definition at line 146 of file xt_heapsort_base.h.