]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | //constant definitions for the Boost Sort library |
2 | ||
3 | // Copyright Steven J. Ross 2001 - 2014 | |
4 | // Distributed under the Boost Software License, Version 1.0. | |
5 | // (See accompanying file LICENSE_1_0.txt or copy at | |
6 | // http://www.boost.org/LICENSE_1_0.txt) | |
7 | ||
8 | // See http://www.boost.org/libs/sort for library home page. | |
9 | #ifndef BOOST_SORT_SPREADSORT_DETAIL_CONSTANTS | |
10 | #define BOOST_SORT_SPREADSORT_DETAIL_CONSTANTS | |
11 | namespace boost { | |
12 | namespace sort { | |
13 | namespace spreadsort { | |
14 | namespace detail { | |
15 | //Tuning constants | |
16 | //This should be tuned to your processor cache; | |
17 | //if you go too large you get cache misses on bins | |
18 | //The smaller this number, the less worst-case memory usage. | |
19 | //If too small, too many recursions slow down spreadsort | |
20 | enum { max_splits = 11, | |
21 | //It's better to have a few cache misses and finish sorting | |
22 | //than to run another iteration | |
23 | max_finishing_splits = max_splits + 1, | |
24 | //Sets the minimum number of items per bin. | |
25 | int_log_mean_bin_size = 2, | |
26 | //Used to force a comparison-based sorting for small bins, if it's faster. | |
27 | //Minimum value 1 | |
28 | int_log_min_split_count = 9, | |
29 | //This is the minimum split count to use spreadsort when it will finish in one | |
30 | //iteration. Make this larger the faster std::sort is relative to integer_sort. | |
31 | int_log_finishing_count = 31, | |
32 | //Sets the minimum number of items per bin for floating point. | |
33 | float_log_mean_bin_size = 2, | |
34 | //Used to force a comparison-based sorting for small bins, if it's faster. | |
35 | //Minimum value 1 | |
36 | float_log_min_split_count = 8, | |
37 | //This is the minimum split count to use spreadsort when it will finish in one | |
38 | //iteration. Make this larger the faster std::sort is relative to float_sort. | |
39 | float_log_finishing_count = 4, | |
40 | //There is a minimum size below which it is not worth using spreadsort | |
41 | min_sort_size = 1000 }; | |
42 | } | |
43 | } | |
44 | } | |
45 | } | |
46 | #endif |