|
KMR
|
Sorter on Long Integers. More...
#include <mpi.h>#include <sys/types.h>#include <assert.h>#include <errno.h>#include "kmr.h"#include "kmrimpl.h"Go to the source code of this file.
Classes | |
| struct | kmr_isort_entry |
Macros | |
| #define | MAX(a, b) (((a)>(b))?(a):(b)) |
Functions | |
| static int | KMR_CMP2N (void *A, void *B) |
| static int | KMR_CMP2P (void *A, void *B) |
| void | kmr_isort (void *A, const size_t N, const size_t ES, int depth) |
| Sorts by comparator on long integers. More... | |
| static void | kmr_isort0 (void *A0, size_t N, const size_t ES, int depth) |
| static void * | kmr_meddleof (void *a, void *b, void *c) |
| static char * | kmr_medianof (char *A, const size_t N, const size_t ES) |
| static ptrdiff_t | kmr_min (ptrdiff_t a, intptr_t b) |
| static void | kmr_subsort (char *A, size_t N, const size_t ES, int swaptype) |
| static void | kmr_swap (void *a, void *b, size_t ES, int swaptype) |
| static void | kmr_swapbytype (void *a, void *b, size_t sz, int swaptype) |
| static int | kmr_swaptype (void *a, size_t es) |
| static void | kmr_vecswap (void *a, void *b, size_t sz, int swaptype) |
Sorter on Long Integers.
This sorting is NOT-STABLE. This file is a copy of "qsort.c" from NetBSD-5.1, and copyrighted by The Regents of the University of California. It is deoptimized by removing the code to gather equal keys, due to not-fast 3-way comparison (that returns -1/0/1) on K.
Definition in file kmrisort.c.
| void kmr_isort | ( | void * | A, |
| const size_t | N, | ||
| const size_t | ES, | ||
| int | depth | ||
| ) |
Sorts by comparator on long integers.
The target array is of "struct kmr_isort_entry". DEPTH tells how deep OMP threading is enabled (using tasks), and it is decremented by one each recursion. Zero depth tells a sequential run.
Definition at line 292 of file kmrisort.c.
1.8.11