00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef STXXL_SORT_BASE_HEADER
00014 #define STXXL_SORT_BASE_HEADER
00015
00016 #include <cmath>
00017 #include <stxxl/bits/common/types.h>
00018
00019
00020 #ifndef STXXL_NO_WARN_RECURSIVE_SORT
00021 #define STXXL_WARNMSG_RECURSIVE_SORT STXXL_ERRMSG
00022 #else
00023 #define STXXL_WARNMSG_RECURSIVE_SORT STXXL_VERBOSE
00024 #endif
00025
00026 #ifndef STXXL_SORT_OPTIMAL_PREFETCHING
00027 #define STXXL_SORT_OPTIMAL_PREFETCHING 1
00028 #endif
00029
00030 #ifndef STXXL_CHECK_ORDER_IN_SORTS
00031 #define STXXL_CHECK_ORDER_IN_SORTS 0
00032 #endif
00033
00034 #ifndef STXXL_L2_SIZE
00035 #define STXXL_L2_SIZE (512 * 1024)
00036 #endif
00037
00038 __STXXL_BEGIN_NAMESPACE
00039
00040
00041 inline unsigned_type optimal_merge_factor(unsigned_type num_runs, unsigned_type max_concurrent_runs)
00042 {
00043 return unsigned_type(ceil(pow(num_runs, 1. / ceil(log(double(num_runs)) / log(double(max_concurrent_runs))))));
00044 }
00045
00046 __STXXL_END_NAMESPACE
00047
00048 #endif // !STXXL_SORT_BASE_HEADER
00049