| /*Boost Software License - Version 1.0 - August 17th, 2003 | |
| Permission is hereby granted, free of charge, to any person or organization | |
| obtaining a copy of the software and accompanying documentation covered by | |
| this license (the "Software") to use, reproduce, display, distribute, | |
| execute, and transmit the Software, and to prepare derivative works of the | |
| Software, and to permit third-parties to whom the Software is furnished to | |
| do so, all subject to the following: | |
| The copyright notices in the Software and this entire statement, including | |
| the above license grant, this restriction and the following disclaimer, | |
| must be included in all copies of the Software, in whole or in part, and | |
| all derivative works of the Software, unless such copies or derivative | |
| works are solely in the form of machine-executable object code generated by | |
| a source language processor. | |
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | |
| SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | |
| FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | |
| ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
| DEALINGS IN THE SOFTWARE.*/ | |
| #ifndef BOOST_SPREADSORT_CONSTANTS | |
| #define BOOST_SPREADSORT_CONSTANTS | |
| namespace boost { | |
| namespace detail { | |
| //Tuning constants | |
| //Sets the minimum number of items per bin. | |
| static const unsigned LOG_MEAN_BIN_SIZE = 2; | |
| //This should be tuned to your processor cache; if you go too large you get cache misses on bins | |
| //The smaller this number, the less worst-case memory usage. If too small, too many recursions slow down spreadsort | |
| static const unsigned MAX_SPLITS = 10; | |
| //Used to force a comparison-based sorting for small bins, if it's faster. Minimum value 0 | |
| static const unsigned LOG_MIN_SPLIT_COUNT = 5; | |
| //There is a minimum size below which it is not worth using spreadsort | |
| static const long MIN_SORT_SIZE = 1000; | |
| //This is the constant on the log base n of m calculation; make this larger the faster std::sort is relative to spreadsort | |
| static const unsigned LOG_CONST = 2; | |
| } | |
| } | |
| #endif |