QuadSort (quadsort.c / quadsort.h)

Functions

void FUNC cross_merge (VAR *dest, VAR *from, size_t left, size_t right, CMPFUNC *cmp)
size_t FUNC monobound_binary_first (VAR *array, VAR *value, size_t top, CMPFUNC *cmp)
void FUNC parity_merge (VAR *dest, VAR *from, size_t left, size_t right, CMPFUNC *cmp)
void FUNC parity_swap_five (VAR *array, CMPFUNC *cmp)
void FUNC parity_swap_four (VAR *array, CMPFUNC *cmp)
void FUNC parity_swap_seven (VAR *array, VAR *swap, CMPFUNC *cmp)
void FUNC parity_swap_six (VAR *array, VAR *swap, CMPFUNC *cmp)
void FUNC partial_backward_merge (VAR *array, VAR *swap, size_t swap_size, size_t nmemb, size_t block, CMPFUNC *cmp)
void FUNC partial_forward_merge (VAR *array, VAR *swap, size_t swap_size, size_t nmemb, size_t block, CMPFUNC *cmp)
size_t FUNC quad_merge (VAR *array, VAR *swap, size_t swap_size, size_t nmemb, size_t block, CMPFUNC *cmp)
void FUNC quad_merge_block (VAR *array, VAR *swap, size_t block, CMPFUNC *cmp)
void FUNC quad_reversal (VAR *pta, VAR *ptz)
size_t FUNC quad_swap (VAR *array, size_t nmemb, CMPFUNC *cmp)
void FUNC quad_swap_merge (VAR *array, VAR *swap, CMPFUNC *cmp)
void FUNC quadsort (void *array, size_t nmemb, CMPFUNC *cmp)
void FUNC quadsort_swap (void *array, void *swap, size_t swap_size, size_t nmemb, CMPFUNC *cmp)
void FUNC rotate_merge (VAR *array, VAR *swap, size_t swap_size, size_t nmemb, size_t block, CMPFUNC *cmp)
void FUNC rotate_merge_block (VAR *array, VAR *swap, size_t swap_size, size_t lblock, size_t right, CMPFUNC *cmp)
void FUNC tail_merge (VAR *array, VAR *swap, size_t swap_size, size_t nmemb, size_t block, CMPFUNC *cmp)
void FUNC tail_swap (VAR *array, VAR *swap, size_t nmemb, CMPFUNC *cmp)
void FUNC tiny_sort (VAR *array, VAR *swap, size_t nmemb, CMPFUNC *cmp)
void FUNC trinity_rotation (VAR *array, VAR *swap, size_t swap_size, size_t nmemb, size_t left)

Defines

branchless_swap(pta, swap, x, cmp)
cmp(a, b)
cmp(a, b)
cmp(a, b)
cmp(a, b)
FUNC(NAME)
FUNC(NAME)
FUNC(NAME)
FUNC(NAME)
FUNC(NAME)
FUNC(NAME)
FUNC(NAME)
FUNC(NAME)
head_branchless_merge(ptd, x, ptl, ptr, cmp)
parity_merge_four(array, swap, x, ptl, ptr, pts, cmp)
parity_merge_two(array, swap, x, ptl, ptr, pts, cmp)
QUAD_CACHE
QUAD_CACHE
swap_branchless(pta, swap, x, y, cmp)
tail_branchless_merge(tpd, y, tpl, tpr, cmp)
VAR
VAR
VAR
VAR
VAR
VAR
VAR
VAR

Typedefs

typedef int CMPFUNC(const void *a, const void *b)

Functions

void quadsort(void *array, size_t nmemb, size_t size, CMPFUNC *cmp)
void quadsort_prim(void *array, size_t nmemb, size_t size)
void quadsort_size(void *array, size_t nmemb, size_t size, CMPFUNC *cmp)