10#ifdef YAC_OPENMP_ENABLED
34 for (
size_t i = 1; i <
N; ++i) {
36 if (array[i] == prev)
continue;
41 if (pos != i) array[pos] = array[i];
118#define DEF_NAME_TYPE_PAIR(NAME, TYPE) {.name = #NAME, .type = (int)(TYPE)}
119#define DEF_NAME_TYPE_PAIRS(NAME, ...) \
120 static const struct yac_name_type_pair NAME [] = {__VA_ARGS__}; \
121 enum { NAME ## _size = sizeof(NAME) / sizeof(NAME[0]) };
128 void * a,
size_t count,
size_t size,
129 int (*compare)(
void const *,
void const *),
size_t * idx);
136#define MAX(a,b) ((a) > (b) ? (a) : (b))
140#define MIN(a,b) ((a) < (b) ? (a) : (b))
143#ifdef YAC_OPENMP_ENABLED
144#define YAC_OMP_PARALLEL _Pragma("omp parallel")
145#define YAC_OMP_FOR _Pragma("omp for")
147#define YAC_OMP_PARALLEL
int yac_name_type_pair_get_type(struct yac_name_type_pair const *pairs, size_t count, char const *name)
char const * yac_name_type_pair_get_name(struct yac_name_type_pair const *pairs, size_t count, int type)
add versions of standard API functions not returning on error
const char * name
String name (e.g., "true")
int type
Integer type value (e.g., 1)
static void yac_remove_duplicates_int(int *array, size_t *n)
void yac_qsort_index(void *a, size_t count, size_t size, int(*compare)(void const *, void const *), size_t *idx)