Yet Another eXchange Tool 0.11.4
|
recursive version of Quicksort More...
#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
#include "xt/xt_sort.h"
#include "xt/quicksort.h"
#include "xt/sort_common.h"
#include "core/ppm_xfuncs.h"
#include "xt_quicksort_base.h"
Go to the source code of this file.
Macros | |
#define | SORT_TYPE idxpos_type |
#define | SORT_TYPE_SUFFIX idxpos |
#define | SORT_TYPE_CMP_LT(a, b, ...) |
#define | SORT_TYPE_CMP_LE(a, b, ...) |
#define | SORT_TYPE_CMP_EQ(a, b, ...) |
#define | SORT_TYPE int |
#define | SORT_TYPE_SUFFIX int |
#define | SORT_TYPE_CMP_LT(a, b, ...) |
#define | SORT_TYPE_CMP_LE(a, b, ...) |
#define | SORT_TYPE_CMP_EQ(a, b, ...) |
#define | SORT_TYPE Xt_int |
#define | SORT_TYPE_SUFFIX xt_int |
#define | SORT_TYPE_CMP_LT(a, b, ...) |
#define | SORT_TYPE_CMP_LE(a, b, ...) |
#define | SORT_TYPE_CMP_EQ(a, b, ...) |
#define | SORT_TYPE Xt_int |
#define | SORT_TYPE_SUFFIX xt_int_permutation |
#define | SORT_TYPE_CMP_LT(u, v, i, j) |
#define | SORT_TYPE_CMP_LE(u, v, i, j) |
#define | SORT_TYPE_CMP_EQ(u, v, i, j) |
#define | XT_SORT_EXTRA_ARGS_DECL , int *restrict permutation |
#define | XT_SORT_EXTRA_ARGS_PASS , permutation |
#define | XT_SORT_EXTRA_ARGS_ADVANCE(adv) |
#define | XT_SORT_EXTRA_ARGS_SWAP(i, j) |
#define | SORT_TYPE int |
#define | SORT_TYPE_SUFFIX int_permutation |
#define | SORT_TYPE_CMP_LT(u, v, i, j) |
#define | SORT_TYPE_CMP_LE(u, v, i, j) |
#define | SORT_TYPE_CMP_EQ(u, v, i, j) |
#define | XT_SORT_EXTRA_ARGS_DECL , int *restrict permutation |
#define | XT_SORT_EXTRA_ARGS_PASS , permutation |
#define | XT_SORT_EXTRA_ARGS_ADVANCE(adv) |
#define | XT_SORT_EXTRA_ARGS_SWAP(i, j) |
Functions | |
void | xt_quicksort_xt_int_permutation (Xt_int *a, size_t n, int *restrict permutation) |
void | xt_quicksort_index (Xt_int *restrict v_idx, int n, int *restrict v_pos, int reset_pos) |
recursive version of Quicksort
Definition in file quicksort.c.
#define SORT_TYPE idxpos_type |
Definition at line 61 of file quicksort.c.
#define SORT_TYPE int |
Definition at line 61 of file quicksort.c.
#define SORT_TYPE Xt_int |
Definition at line 61 of file quicksort.c.
#define SORT_TYPE Xt_int |
Definition at line 61 of file quicksort.c.
#define SORT_TYPE int |
Definition at line 61 of file quicksort.c.
#define SORT_TYPE_CMP_EQ | ( | a, | |
b, | |||
... ) |
Definition at line 65 of file quicksort.c.
#define SORT_TYPE_CMP_EQ | ( | a, | |
b, | |||
... ) |
Definition at line 65 of file quicksort.c.
#define SORT_TYPE_CMP_EQ | ( | a, | |
b, | |||
... ) |
Definition at line 65 of file quicksort.c.
#define SORT_TYPE_CMP_EQ | ( | u, | |
v, | |||
i, | |||
j ) |
Definition at line 65 of file quicksort.c.
#define SORT_TYPE_CMP_EQ | ( | u, | |
v, | |||
i, | |||
j ) |
Definition at line 65 of file quicksort.c.
#define SORT_TYPE_CMP_LE | ( | a, | |
b, | |||
... ) |
Definition at line 64 of file quicksort.c.
#define SORT_TYPE_CMP_LE | ( | a, | |
b, | |||
... ) |
Definition at line 64 of file quicksort.c.
#define SORT_TYPE_CMP_LE | ( | a, | |
b, | |||
... ) |
Definition at line 64 of file quicksort.c.
#define SORT_TYPE_CMP_LE | ( | u, | |
v, | |||
i, | |||
j ) |
Definition at line 64 of file quicksort.c.
#define SORT_TYPE_CMP_LE | ( | u, | |
v, | |||
i, | |||
j ) |
Definition at line 64 of file quicksort.c.
#define SORT_TYPE_CMP_LT | ( | a, | |
b, | |||
... ) |
Definition at line 63 of file quicksort.c.
#define SORT_TYPE_CMP_LT | ( | a, | |
b, | |||
... ) |
Definition at line 63 of file quicksort.c.
#define SORT_TYPE_CMP_LT | ( | a, | |
b, | |||
... ) |
Definition at line 63 of file quicksort.c.
#define SORT_TYPE_CMP_LT | ( | u, | |
v, | |||
i, | |||
j ) |
Definition at line 63 of file quicksort.c.
#define SORT_TYPE_CMP_LT | ( | u, | |
v, | |||
i, | |||
j ) |
Definition at line 63 of file quicksort.c.
#define SORT_TYPE_SUFFIX idxpos |
Definition at line 62 of file quicksort.c.
#define SORT_TYPE_SUFFIX int |
Definition at line 62 of file quicksort.c.
#define SORT_TYPE_SUFFIX xt_int |
Definition at line 62 of file quicksort.c.
#define SORT_TYPE_SUFFIX xt_int_permutation |
Definition at line 62 of file quicksort.c.
#define SORT_TYPE_SUFFIX int_permutation |
Definition at line 62 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_ADVANCE | ( | adv | ) |
Definition at line 125 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_ADVANCE | ( | adv | ) |
Definition at line 125 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_DECL , int *restrict permutation |
Definition at line 123 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_DECL , int *restrict permutation |
Definition at line 123 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_PASS , permutation |
Definition at line 124 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_PASS , permutation |
Definition at line 124 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_SWAP | ( | i, | |
j ) |
Definition at line 126 of file quicksort.c.
#define XT_SORT_EXTRA_ARGS_SWAP | ( | i, | |
j ) |
Definition at line 126 of file quicksort.c.
void xt_quicksort_index | ( | Xt_int *restrict | a, |
int | n, | ||
int *restrict | idx, | ||
int | reset_index ) |
quicksort changing values and indices
[in,out] | a | array to be sorted |
[in] | n | number of elements in a and idx |
[in,out] | idx | old index of sorted returned a |
[in] | reset_index | override given idx by identity idx |
Definition at line 71 of file quicksort.c.
void xt_quicksort_xt_int_permutation | ( | Xt_int * | a, |
size_t | n, | ||
int *restrict | permutation ) |