From 7dc099cc67d990137bccd7777dc28b688c0daab5 Mon Sep 17 00:00:00 2001 From: Steven Ross Date: Sun, 29 Oct 2017 22:34:00 -0400 Subject: [PATCH] Doc tweaks from latest review, including spreadsort performance. --- doc/autodoc.xml | 12 ++-- doc/block_indirect_sort.qbk | 28 ++++---- .../html/detail_2string__sort_8hpp.html | 8 +-- .../detail_2string__sort_8hpp_source.html | 72 +++++++++---------- doc/doxygen/html/namespaceboost_1_1sort.html | 18 ++--- .../namespaceboost_1_1sort_1_1detail.html | 16 ++--- doc/doxygen/html/search/all_d.js | 2 +- doc/doxygen/html/search/all_e.js | 2 +- doc/doxygen/html/search/functions_5.js | 2 +- doc/doxygen/html/search/functions_6.js | 2 +- doc/doxygen/html/search/functions_7.js | 4 +- doc/doxygen/html/search/functions_8.js | 4 +- doc/doxygen/html/search/functions_9.js | 2 +- doc/doxygen/html/string__sort_8hpp.html | 6 +- .../html/string__sort_8hpp_source.html | 26 +++---- ...l_1_1offset__char__less__than-members.html | 2 +- ...1_1detail_1_1offset__char__less__than.html | 4 +- doc/flat_stable_sort.qbk | 10 +-- doc/introduction.qbk | 23 +++--- doc/linux_parallel.qbk | 2 +- doc/linux_single.qbk | 4 +- doc/parallel.qbk | 4 +- doc/parallel_stable_sort.qbk | 21 +++--- doc/sample_sort.qbk | 16 ++--- doc/single_thread.qbk | 16 ++--- doc/spinsort.qbk | 6 +- doc/spreadsort.qbk | 4 +- doc/windows_parallel.qbk | 2 +- doc/windows_single.qbk | 4 +- .../sort/spreadsort/detail/string_sort.hpp | 70 +++++++++--------- include/boost/sort/spreadsort/string_sort.hpp | 40 +++++------ 31 files changed, 217 insertions(+), 215 deletions(-) diff --git a/doc/autodoc.xml b/doc/autodoc.xml index 0a730c2..14aa040 100644 --- a/doc/autodoc.xml +++ b/doc/autodoc.xml @@ -523,7 +523,7 @@ Some performance plots of runtime vs. n and log(range) are provided: - RandomAccessIterIterator pointer to first element. RandomAccessIterIterator pointing to one beyond the end of data. Get_charBracket functor equivalent to operator[], taking a number corresponding to the character offset. Get_lengthFunctor to get the length of the string in characters.String sort algorithm using random access iterators, wraps using default of unsigned char. (All variants fall back to std::sort if the data size is too small, < detail::min_sort_size).string_sort is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than std::sort for large tests (>=100kB). + RandomAccessIterIterator pointer to first element. RandomAccessIterIterator pointing to one beyond the end of data. Get_charBracket functor equivalent to operator[], taking a number corresponding to the character offset. Get_lengthFunctor to get the length of the string in characters.String sort algorithm using random access iterators, wraps using default of unsigned char. (All variants fall back to std::sort if the data size is too small, < detail::min_sort_size).string_sort is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than std::sort for large tests (>=100kB). <para>Worst-case performance is <emphasis> O(N * (lg(range)/s + s)) </emphasis>, so <computeroutput>string_sort</computeroutput> is asymptotically faster than pure comparison-based algorithms. <sbr/> <sbr/> Some performance plots of runtime vs. n and log(range) are provided:<sbr/> @@ -549,7 +549,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<sbr/> <template-type-parameter name="Range"/> <template-type-parameter name="Get_char"/> <template-type-parameter name="Get_length"/> - </template><parameter name="range"><paramtype>Range &</paramtype><description><para>Range [first, last) for sorting. </para></description></parameter><parameter name="getchar"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters.</para></description></parameter><purpose>String sort algorithm using range, wraps using default of <computeroutput>unsigned</computeroutput> char. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> + </template><parameter name="range"><paramtype>Range &</paramtype><description><para>Range [first, last) for sorting. </para></description></parameter><parameter name="get_character"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters.</para></description></parameter><purpose>String sort algorithm using range, wraps using default of <computeroutput>unsigned</computeroutput> char. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> <formalpara><title/><para>Worst-case performance is <emphasis> O(N * (lg(range)/s + s)) </emphasis>, so <computeroutput>string_sort</computeroutput> is asymptotically faster than pure comparison-based algorithms. <sbr/> <sbr/> Some performance plots of runtime vs. n and log(range) are provided:<sbr/> @@ -573,7 +573,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<sbr/> <template-type-parameter name="Get_char"/> <template-type-parameter name="Get_length"/> <template-type-parameter name="Compare"/> - </template><parameter name="first"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointer to first element. </para></description></parameter><parameter name="last"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointing to one beyond the end of data. </para></description></parameter><parameter name="getchar"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>String sort algorithm using random access iterators, wraps using default of <computeroutput>unsigned</computeroutput> char. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> + </template><parameter name="first"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointer to first element. </para></description></parameter><parameter name="last"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointing to one beyond the end of data. </para></description></parameter><parameter name="get_character"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>String sort algorithm using random access iterators, wraps using default of <computeroutput>unsigned</computeroutput> char. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> <formalpara><title/><para>Worst-case performance is <emphasis> O(N * (lg(range)/s + s)) </emphasis>, so <computeroutput>string_sort</computeroutput> is asymptotically faster than pure comparison-based algorithms. <sbr/> <sbr/> Some performance plots of runtime vs. n and log(range) are provided:<sbr/> @@ -599,7 +599,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<sbr/> <template-type-parameter name="Get_char"/> <template-type-parameter name="Get_length"/> <template-type-parameter name="Compare"/> - </template><parameter name="range"><paramtype>Range &</paramtype><description><para>Range [first, last) for sorting. </para></description></parameter><parameter name="getchar"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>String sort algorithm using range, wraps using default of <computeroutput>unsigned</computeroutput> char. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> + </template><parameter name="range"><paramtype>Range &</paramtype><description><para>Range [first, last) for sorting. </para></description></parameter><parameter name="get_character"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>String sort algorithm using range, wraps using default of <computeroutput>unsigned</computeroutput> char. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> <formalpara><title/><para>Worst-case performance is <emphasis> O(N * (lg(range)/s + s)) </emphasis>, so <computeroutput>string_sort</computeroutput> is asymptotically faster than pure comparison-based algorithms. <sbr/> <sbr/> Some performance plots of runtime vs. n and log(range) are provided:<sbr/> @@ -623,7 +623,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<sbr/> <template-type-parameter name="Get_char"/> <template-type-parameter name="Get_length"/> <template-type-parameter name="Compare"/> - </template><parameter name="first"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointer to first element. </para></description></parameter><parameter name="last"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointing to one beyond the end of data. </para></description></parameter><parameter name="getchar"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>Reverse String sort algorithm using random access iterators. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> + </template><parameter name="first"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointer to first element. </para></description></parameter><parameter name="last"><paramtype>RandomAccessIter</paramtype><description><para>Iterator pointing to one beyond the end of data. </para></description></parameter><parameter name="get_character"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>Reverse String sort algorithm using random access iterators. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> <formalpara><title/><para>Worst-case performance is <emphasis> O(N * (lg(range)/s + s)) </emphasis>, so <computeroutput>string_sort</computeroutput> is asymptotically faster than pure comparison-based algorithms. <sbr/> <sbr/> Some performance plots of runtime vs. n and log(range) are provided:<sbr/> @@ -649,7 +649,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<sbr/> <template-type-parameter name="Get_char"/> <template-type-parameter name="Get_length"/> <template-type-parameter name="Compare"/> - </template><parameter name="range"><paramtype>Range &</paramtype><description><para>Range [first, last) for sorting. </para></description></parameter><parameter name="getchar"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>Reverse String sort algorithm using range. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> + </template><parameter name="range"><paramtype>Range &</paramtype><description><para>Range [first, last) for sorting. </para></description></parameter><parameter name="get_character"><paramtype>Get_char</paramtype><description><para>Bracket functor equivalent to <computeroutput>operator</computeroutput>[], taking a number corresponding to the character offset. </para></description></parameter><parameter name="length"><paramtype>Get_length</paramtype><description><para>Functor to get the length of the string in characters. </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>A binary functor that returns whether the first element passed to it should go before the second in order.</para></description></parameter><purpose>Reverse String sort algorithm using range. </purpose><description><para>(All variants fall back to <computeroutput>std::sort</computeroutput> if the data size is too small, < <computeroutput>detail::min_sort_size</computeroutput>).</para><para><computeroutput>string_sort</computeroutput> is a fast templated in-place hybrid radix/comparison algorithm, which in testing tends to be roughly 50% to 2X faster than <computeroutput>std::sort</computeroutput> for large tests (>=100kB).<sbr/> <formalpara><title/><para>Worst-case performance is <emphasis> O(N * (lg(range)/s + s)) </emphasis>, so <computeroutput>string_sort</computeroutput> is asymptotically faster than pure comparison-based algorithms. <sbr/> <sbr/> Some performance plots of runtime vs. n and log(range) are provided:<sbr/> diff --git a/doc/block_indirect_sort.qbk b/doc/block_indirect_sort.qbk index 0ae85ea..a77c662 100644 --- a/doc/block_indirect_sort.qbk +++ b/doc/block_indirect_sort.qbk @@ -60,7 +60,7 @@ Sorting 100 000 000 64 bits numbers, the measured memory used was: [h4[_Thread specification]] [: -This algorithm have a integer parameter indicating the *number of thread* to use in the sorting process, +This algorithm has an integer parameter indicating the *number of threads* to use in the sorting process, which always is the last value in the call. The default value (if left unspecified) is the number of HW threads of the machine where the program is running provided by std::thread::hardware_concurrency(). @@ -76,9 +76,9 @@ If this value is 0, the program is executed with 1 thread. [h4[_Programming]] [: -Only need to include the file boost/sort/sort.hpp to use this algorithm +You only need to include the file boost/sort/sort.hpp to use this algorithm -The algorithm run in the namespace boost::sort +The algorithm runs in the namespace boost::sort [c++] `` @@ -99,15 +99,15 @@ The algorithm run in the namespace boost::sort void block_indirect_sort (iter_t first, iter_t last, compare comp, uint32_t num_thread); `` -This algorithm need a *C++11 compliant compiler*. Don't need any other code or library. With older compilers it is not guarantee, the correct operation. +This algorithm needs a *C++11 compliant compiler*. You don't need any other code or library. With older compilers correct operation is not guaranteed. If the number of threads is unspecified, use the result of std::thread::hardware_concurrency() -The algorithm use a *comparison object*, in the same way as the standard library sort -algorithms. If don't define, the comparison object is std::less, which uses internally -the < operator. +This algorithm uses a *comparison object*, in the same way as the standard library sort +algorithms. If not defined, the comparison object is std::less, which uses +the < operator internally. -The algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm +This algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm guarantee the integrity of the objects to sort, but not their relative order. If the exception is generated inside the objects (in the move or in the copy constructor.. ) the results can be unpredictable. @@ -147,7 +147,7 @@ Divide the data in parts, and each part is sorted by a thread. When the parts are sorted, they are merged to obtain the final results. These algorithms need additional memory for the merge, usually the same size as the data. -With a small number of threads, these algorithms have similar speed than +With a small number of threads, these algorithms have similar speed to the subdivision algorithms, but with many threads are much faster. Examples of this category are @@ -164,7 +164,7 @@ This generates an *undesirable duality*. With a small number of threads the opti For this reason, the SW designed for a *small machine* is *inadequate* for a *big machine* and vice versa. -Use only *merging algorithms*, have the *problem of the additional memory* used, usually of the same size as the data. +Using only *merging algorithms*, has the *problem of the additional memory* used, usually of the same size as the data. [h4[_New Parallel Sort Algorithm (Block Indirect Sort)]] @@ -174,14 +174,14 @@ This algorithm, named Block Indirect Sort, created for processors connected with *With small number of threads, it is a subdivision algorithm. -*With many threads is a merging algorithms, with a small auxiliary memory ( block_size * number of threads). +*With many threads it is a merging algorithm, with a small auxiliary memory ( block_size * number of threads). -This algorithm *eliminates the duality*. The same code have *optimal performance* with a small and a big number of threads. +This algorithm *eliminates the duality*. The same code has *optimal performance* with a small and a big number of threads. -The number of threads to use is evaluate in each execution. +The number of threads to use is evaluated in each execution. When the program runs with a *small number of threads* the algorithm internally uses a *subdivision algorithm* and has similar performance to TBB, and when run with *many threads*, -internally uses the *new algorithm* and has the performance of GCC Parallel Sort, with the additional advantage of *reduced memory consumption*. +it internally uses the *new algorithm* and has the performance of GCC Parallel Sort, with the additional advantage of *reduced memory consumption*. ]] diff --git a/doc/doxygen/html/detail_2string__sort_8hpp.html b/doc/doxygen/html/detail_2string__sort_8hpp.html index 9bbbbfc..f9ae806 100644 --- a/doc/doxygen/html/detail_2string__sort_8hpp.html +++ b/doc/doxygen/html/detail_2string__sort_8hpp.html @@ -130,7 +130,7 @@ Functions</h2></td></tr> <tr class="memitem:a585497946eeb8cc1d2072642d7f1da01"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">boost::sort::detail::update_offset</a> (RandomAccessIter first, RandomAccessIter finish, size_t &char_offset)</td></tr> <tr class="separator:a585497946eeb8cc1d2072642d7f1da01"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length > </td></tr> -<tr class="memitem:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a415ebdb0c9a5e9209bbfc7d2e576374c">boost::sort::detail::update_offset</a> (RandomAccessIter first, RandomAccessIter finish, size_t &char_offset, Get_char getchar, Get_length length)</td></tr> +<tr class="memitem:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a415ebdb0c9a5e9209bbfc7d2e576374c">boost::sort::detail::update_offset</a> (RandomAccessIter first, RandomAccessIter finish, size_t &char_offset, Get_char get_character, Get_length length)</td></tr> <tr class="separator:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad1655ab39e410e18b6e8b6694405e5ba"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type > </td></tr> <tr class="memitem:ad1655ab39e410e18b6e8b6694405e5ba"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">boost::sort::detail::string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)</td></tr> @@ -139,13 +139,13 @@ Functions</h2></td></tr> <tr class="memitem:a66be693262defeff06a4a3507155d4a3"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a66be693262defeff06a4a3507155d4a3">boost::sort::detail::reverse_string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)</td></tr> <tr class="separator:a66be693262defeff06a4a3507155d4a3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af825e4484173e0b886d0b24f66ae4a64"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type , class Get_char , class Get_length > </td></tr> -<tr class="memitem:af825e4484173e0b886d0b24f66ae4a64"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#af825e4484173e0b886d0b24f66ae4a64">boost::sort::detail::string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length)</td></tr> +<tr class="memitem:af825e4484173e0b886d0b24f66ae4a64"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#af825e4484173e0b886d0b24f66ae4a64">boost::sort::detail::string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length)</td></tr> <tr class="separator:af825e4484173e0b886d0b24f66ae4a64"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a49ccfc022cfef8a14bbbbeccd36d78ec">boost::sort::detail::string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a49ccfc022cfef8a14bbbbeccd36d78ec">boost::sort::detail::string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="separator:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#ab71cd7c25eada649fa1aff16fb3549f6">boost::sort::detail::reverse_string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#ab71cd7c25eada649fa1aff16fb3549f6">boost::sort::detail::reverse_string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="separator:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memSeparator" colspan="2"> </td></tr> </table> </div><!-- contents --> diff --git a/doc/doxygen/html/detail_2string__sort_8hpp_source.html b/doc/doxygen/html/detail_2string__sort_8hpp_source.html index e434659..bfb77c6 100644 --- a/doc/doxygen/html/detail_2string__sort_8hpp_source.html +++ b/doc/doxygen/html/detail_2string__sort_8hpp_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">template</span><<span class="keyword">class</span> RandomAccessIter, <span class="keyword">class</span> Get_<span class="keywordtype">char</span>, <span class="keyword">class</span> Get_length></div> <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespaceboost_1_1sort_1_1detail.html#a415ebdb0c9a5e9209bbfc7d2e576374c"> 80</a></span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a>(RandomAccessIter first, RandomAccessIter finish,</div> -<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">size_t</span> &char_offset, Get_char getchar, Get_length length)</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">size_t</span> &char_offset, Get_char get_character, Get_length length)</div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div> <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">size_t</span> nextOffset = char_offset;</div> <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div> @@ -177,7 +177,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">//ignore empties, but if the nextOffset would exceed the length or</span></div> <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">//not match, exit; we've found the last matching character</span></div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (length(*curr) > char_offset && (length(*curr) <= (nextOffset + 1)</div> -<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  || getchar((*curr), nextOffset) != getchar((*first), nextOffset))) {</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  || get_character((*curr), nextOffset) != get_character((*first), nextOffset))) {</div> <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  char_offset = nextOffset;</div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span>;</div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div> @@ -234,14 +234,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordtype">size_t</span> minSize = (std::min)(<a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">length</a>(x), <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">length</a>(y));</div> <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> u = <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#ae5ee4abf81ecfb4ff4016792b81bfbd2">fchar_offset</a>; u < minSize; ++u) {</div> -<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span> (<a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">getchar</a>(x, u) != <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">getchar</a>(y, u)) {</div> -<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">getchar</a>(x, u) < <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">getchar</a>(y, u);</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span> (<a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">get_character</a>(x, u) != <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">get_character</a>(y, u)) {</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">get_character</a>(x, u) < <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">get_character</a>(y, u);</div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div> <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">length</a>(x) < <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">length</a>(y);</div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div> <div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#ae5ee4abf81ecfb4ff4016792b81bfbd2"> 153</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#ae5ee4abf81ecfb4ff4016792b81bfbd2">fchar_offset</a>;</div> -<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30"> 154</a></span>  Get_char <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">getchar</a>;</div> +<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30"> 154</a></span>  Get_char <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">get_character</a>;</div> <div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936"> 155</a></span>  Get_length <a class="code" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">length</a>;</div> <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  };</div> <div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div> @@ -468,7 +468,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="namespaceboost_1_1sort_1_1detail.html#af825e4484173e0b886d0b24f66ae4a64"> 378</a></span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">string_sort_rec</a>(RandomAccessIter first, RandomAccessIter last,</div> <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordtype">size_t</span> char_offset, std::vector<RandomAccessIter> &bin_cache,</div> <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordtype">unsigned</span> cache_offset, <span class="keywordtype">size_t</span> *bin_sizes,</div> -<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  Get_char getchar, Get_length length)</div> +<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  Get_char get_character, Get_length length)</div> <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  {</div> <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits<RandomAccessIter>::value_type</div> <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  Data_type;</div> @@ -483,7 +483,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="comment">//Getting the last non-empty</span></div> <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">for</span> (;length(*finish) <= char_offset; --finish);</div> <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  ++finish;</div> -<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a>(first, finish, char_offset, getchar, length);</div> +<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a>(first, finish, char_offset, get_character, length);</div> <div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div> <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> bin_count = (1 << (<span class="keyword">sizeof</span>(Unsigned_char_type)*8));</div> <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">//Equal worst-case of radix and comparison is when bin_count = n*log(n).</span></div> @@ -499,7 +499,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  bin_sizes[0]++;</div> <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  }</div> <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  bin_sizes[getchar((*current), char_offset) + 1]++;</div> +<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  bin_sizes[get_character((*current), char_offset) + 1]++;</div> <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div> <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="comment">//Assign the bin positions</span></div> <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  bin_cache[cache_offset] = first;</div> @@ -518,7 +518,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  ++current) {</div> <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">//empties belong in this bin</span></div> <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">while</span> (length(*current) > char_offset) {</div> -<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  target_bin = bins + getchar((*current), char_offset);</div> +<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  target_bin = bins + get_character((*current), char_offset);</div> <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  iter_swap(current, (*target_bin)++);</div> <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  }</div> <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div> @@ -535,9 +535,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">for</span> (RandomAccessIter current = *local_bin; current < next_bin_start;</div> <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  ++current) {</div> <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="comment">//Swapping into place until the correct element has been swapped in</span></div> -<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">for</span> (target_bin = bins + getchar((*current), char_offset);</div> +<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">for</span> (target_bin = bins + get_character((*current), char_offset);</div> <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  target_bin != local_bin;</div> -<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  target_bin = bins + getchar((*current), char_offset))</div> +<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  target_bin = bins + get_character((*current), char_offset))</div> <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  iter_swap(current, (*target_bin)++);</div> <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div> <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  *local_bin = next_bin_start;</div> @@ -560,7 +560,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">else</span></div> <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">string_sort_rec</a><RandomAccessIter, Unsigned_char_type, Get_char,</div> <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  Get_length>(lastPos, bin_cache[u], char_offset + 1, bin_cache,</div> -<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  cache_end, bin_sizes, getchar, length);</div> +<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  cache_end, bin_sizes, get_character, length);</div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  }</div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  }</div> <div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div> @@ -571,7 +571,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="namespaceboost_1_1sort_1_1detail.html#a49ccfc022cfef8a14bbbbeccd36d78ec"> 481</a></span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">string_sort_rec</a>(RandomAccessIter first, RandomAccessIter last,</div> <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordtype">size_t</span> char_offset, std::vector<RandomAccessIter> &bin_cache,</div> <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordtype">unsigned</span> cache_offset, <span class="keywordtype">size_t</span> *bin_sizes,</div> -<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  Get_char getchar, Get_length length, Compare comp)</div> +<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  Get_char get_character, Get_length length, Compare comp)</div> <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  {</div> <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">//This section makes handling of long identical substrings much faster</span></div> <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="comment">//with a mild average performance impact.</span></div> @@ -584,7 +584,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="comment">//Getting the last non-empty</span></div> <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">for</span> (;length(*finish) <= char_offset; --finish);</div> <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  ++finish;</div> -<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a>(first, finish, char_offset, getchar, length);</div> +<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a>(first, finish, char_offset, get_character, length);</div> <div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div> <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> bin_count = (1 << (<span class="keyword">sizeof</span>(Unsigned_char_type)*8));</div> <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">//Equal worst-case of radix and comparison is when bin_count = n*log(n).</span></div> @@ -600,7 +600,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  bin_sizes[0]++;</div> <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div> <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  bin_sizes[getchar((*current), char_offset) + 1]++;</div> +<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  bin_sizes[get_character((*current), char_offset) + 1]++;</div> <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  }</div> <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="comment">//Assign the bin positions</span></div> <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  bin_cache[cache_offset] = first;</div> @@ -619,7 +619,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  ++current) {</div> <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="comment">//empties belong in this bin</span></div> <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">while</span> (length(*current) > char_offset) {</div> -<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  target_bin = bins + getchar((*current), char_offset);</div> +<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  target_bin = bins + get_character((*current), char_offset);</div> <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  iter_swap(current, (*target_bin)++);</div> <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div> <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  }</div> @@ -636,9 +636,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">for</span> (RandomAccessIter current = *local_bin; current < next_bin_start;</div> <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  ++current) {</div> <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="comment">//Swapping into place until the correct element has been swapped in</span></div> -<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">for</span> (target_bin = bins + getchar((*current), char_offset);</div> +<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">for</span> (target_bin = bins + get_character((*current), char_offset);</div> <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  target_bin != local_bin;</div> -<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  target_bin = bins + getchar((*current), char_offset))</div> +<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  target_bin = bins + get_character((*current), char_offset))</div> <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  iter_swap(current, (*target_bin)++);</div> <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div> <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  *local_bin = next_bin_start;</div> @@ -661,7 +661,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">string_sort_rec</a><RandomAccessIter, Unsigned_char_type, Get_char,</div> <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  Get_length, Compare></div> <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  (lastPos, bin_cache[u], char_offset + 1, bin_cache, cache_end,</div> -<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  bin_sizes, getchar, length, comp);</div> +<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  bin_sizes, get_character, length, comp);</div> <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div> <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  }</div> <div class="line"><a name="l00577"></a><span class="lineno"> 577</span> </div> @@ -672,7 +672,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="namespaceboost_1_1sort_1_1detail.html#ab71cd7c25eada649fa1aff16fb3549f6"> 582</a></span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a66be693262defeff06a4a3507155d4a3">reverse_string_sort_rec</a>(RandomAccessIter first, RandomAccessIter last,</div> <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordtype">size_t</span> char_offset, std::vector<RandomAccessIter> &bin_cache,</div> <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordtype">unsigned</span> cache_offset, <span class="keywordtype">size_t</span> *bin_sizes,</div> -<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  Get_char getchar, Get_length length, Compare comp)</div> +<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  Get_char get_character, Get_length length, Compare comp)</div> <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  {</div> <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="comment">//This section makes handling of long identical substrings much faster</span></div> <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="comment">//with a mild average performance impact.</span></div> @@ -687,7 +687,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  ++last;</div> <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="comment">//Offsetting on identical characters. This section works</span></div> <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="comment">//a character at a time for optimal worst-case performance.</span></div> -<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a>(curr, last, char_offset, getchar, length);</div> +<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a>(curr, last, char_offset, get_character, length);</div> <div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div> <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> bin_count = (1 << (<span class="keyword">sizeof</span>(Unsigned_char_type)*8));</div> <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="comment">//Equal worst-case of radix and comparison is when bin_count = n*log(n).</span></div> @@ -705,7 +705,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  bin_sizes[bin_count]++;</div> <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div> <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  bin_sizes[max_bin - getchar((*current), char_offset)]++;</div> +<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  bin_sizes[max_bin - get_character((*current), char_offset)]++;</div> <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  }</div> <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="comment">//Assign the bin positions</span></div> <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  bin_cache[cache_offset] = first;</div> @@ -724,7 +724,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  ++current) {</div> <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="comment">//empties belong in this bin</span></div> <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">while</span> (length(*current) > char_offset) {</div> -<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  target_bin = end_bin - getchar((*current), char_offset);</div> +<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  target_bin = end_bin - get_character((*current), char_offset);</div> <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  iter_swap(current, (*target_bin)++);</div> <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  }</div> <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  }</div> @@ -742,9 +742,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">for</span> (RandomAccessIter current = *local_bin; current < next_bin_start;</div> <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  ++current) {</div> <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="comment">//Swapping into place until the correct element has been swapped in</span></div> -<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">for</span> (target_bin = end_bin - getchar((*current), char_offset);</div> +<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">for</span> (target_bin = end_bin - get_character((*current), char_offset);</div> <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  target_bin != local_bin;</div> -<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  target_bin = end_bin - getchar((*current), char_offset))</div> +<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  target_bin = end_bin - get_character((*current), char_offset))</div> <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  iter_swap(current, (*target_bin)++);</div> <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  }</div> <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  *local_bin = next_bin_start;</div> @@ -766,7 +766,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a66be693262defeff06a4a3507155d4a3">reverse_string_sort_rec</a><RandomAccessIter, Unsigned_char_type,</div> <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  Get_char, Get_length, Compare></div> <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  (lastPos, bin_cache[u], char_offset + 1, bin_cache, cache_end,</div> -<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  bin_sizes, getchar, length, comp);</div> +<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  bin_sizes, get_character, length, comp);</div> <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div> <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  }</div> <div class="line"><a name="l00682"></a><span class="lineno"> 682</span> </div> @@ -826,12 +826,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keyword">inline</span> <span class="keyword">typename</span> boost::enable_if_c< <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2, <span class="keywordtype">void</span></div> <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  >::type</div> <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <a class="code" href="namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0">string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  Get_char getchar, Get_length length, Unsigned_char_type)</div> +<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  Get_char get_character, Get_length length, Unsigned_char_type)</div> <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  {</div> <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordtype">size_t</span> bin_sizes[(1 << (8 * <span class="keyword">sizeof</span>(Unsigned_char_type))) + 1];</div> <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  std::vector<RandomAccessIter> bin_cache;</div> <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">string_sort_rec</a><RandomAccessIter, Unsigned_char_type, Get_char,</div> -<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  Get_length>(first, last, 0, bin_cache, 0, bin_sizes, getchar, length);</div> +<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  Get_length>(first, last, 0, bin_cache, 0, bin_sizes, get_character, length);</div> <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  }</div> <div class="line"><a name="l00746"></a><span class="lineno"> 746</span> </div> <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keyword">template</span> <<span class="keyword">class </span>RandomAccessIter, <span class="keyword">class </span>Get_char, <span class="keyword">class </span>Get_length,</div> @@ -839,7 +839,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keyword">inline</span> <span class="keyword">typename</span> boost::disable_if_c< <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2, <span class="keywordtype">void</span></div> <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  >::type</div> <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <a class="code" href="namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0">string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  Get_char getchar, Get_length length, Unsigned_char_type)</div> +<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  Get_char get_character, Get_length length, Unsigned_char_type)</div> <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  {</div> <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="comment">//Warning that we're using std::sort, even though string_sort was called</span></div> <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  BOOST_STATIC_WARNING( <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2 );</div> @@ -852,13 +852,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keyword">inline</span> <span class="keyword">typename</span> boost::enable_if_c< <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2, <span class="keywordtype">void</span></div> <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  >::type</div> <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0">string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  Get_char getchar, Get_length length, Compare comp, Unsigned_char_type)</div> +<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  Get_char get_character, Get_length length, Compare comp, Unsigned_char_type)</div> <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  {</div> <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordtype">size_t</span> bin_sizes[(1 << (8 * <span class="keyword">sizeof</span>(Unsigned_char_type))) + 1];</div> <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  std::vector<RandomAccessIter> bin_cache;</div> <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">string_sort_rec</a><RandomAccessIter, Unsigned_char_type, Get_char</div> <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  , Get_length, Compare></div> -<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  (first, last, 0, bin_cache, 0, bin_sizes, getchar, length, comp);</div> +<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  (first, last, 0, bin_cache, 0, bin_sizes, get_character, length, comp);</div> <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  }</div> <div class="line"><a name="l00773"></a><span class="lineno"> 773</span> </div> <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="comment">//disable_if_c was refusing to compile, so rewrote to use enable_if_c</span></div> @@ -867,7 +867,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keyword">inline</span> <span class="keyword">typename</span> boost::enable_if_c< (sizeof(Unsigned_char_type) > 2), <span class="keywordtype">void</span></div> <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  >::type</div> <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <a class="code" href="namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0">string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  Get_char getchar, Get_length length, Compare comp, Unsigned_char_type)</div> +<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  Get_char get_character, Get_length length, Compare comp, Unsigned_char_type)</div> <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  {</div> <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="comment">//Warning that we're using std::sort, even though string_sort was called</span></div> <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  BOOST_STATIC_WARNING( <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2 );</div> @@ -880,13 +880,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keyword">inline</span> <span class="keyword">typename</span> boost::enable_if_c< <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2, <span class="keywordtype">void</span></div> <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  >::type</div> <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <a class="code" href="namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48">reverse_string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  Get_char getchar, Get_length length, Compare comp, Unsigned_char_type)</div> +<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  Get_char get_character, Get_length length, Compare comp, Unsigned_char_type)</div> <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  {</div> <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keywordtype">size_t</span> bin_sizes[(1 << (8 * <span class="keyword">sizeof</span>(Unsigned_char_type))) + 1];</div> <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  std::vector<RandomAccessIter> bin_cache;</div> <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="namespaceboost_1_1sort_1_1detail.html#a66be693262defeff06a4a3507155d4a3">reverse_string_sort_rec</a><RandomAccessIter, Unsigned_char_type, Get_char,</div> <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  Get_length, Compare></div> -<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  (first, last, 0, bin_cache, 0, bin_sizes, getchar, length, comp);</div> +<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  (first, last, 0, bin_cache, 0, bin_sizes, get_character, length, comp);</div> <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  }</div> <div class="line"><a name="l00801"></a><span class="lineno"> 801</span> </div> <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keyword">template</span> <<span class="keyword">class </span>RandomAccessIter, <span class="keyword">class </span>Get_char, <span class="keyword">class </span>Get_length,</div> @@ -894,7 +894,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keyword">inline</span> <span class="keyword">typename</span> boost::disable_if_c< <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2, <span class="keywordtype">void</span></div> <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  >::type</div> <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <a class="code" href="namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48">reverse_string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  Get_char getchar, Get_length length, Compare comp, Unsigned_char_type)</div> +<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  Get_char get_character, Get_length length, Compare comp, Unsigned_char_type)</div> <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  {</div> <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="comment">//Warning that we're using std::sort, even though string_sort was called</span></div> <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  BOOST_STATIC_WARNING( <span class="keyword">sizeof</span>(Unsigned_char_type) <= 2 );</div> @@ -926,7 +926,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="ttc" id="structboost_1_1sort_1_1detail_1_1offset__less__than_html_ae6d1402367790441b962b8cc9f066aac"><div class="ttname"><a href="structboost_1_1sort_1_1detail_1_1offset__less__than.html#ae6d1402367790441b962b8cc9f066aac">boost::sort::detail::offset_less_than::fchar_offset</a></div><div class="ttdeci">size_t fchar_offset</div><div class="ttdef"><b>Definition:</b> string_sort.hpp:116</div></div> <div class="ttc" id="structboost_1_1sort_1_1detail_1_1offset__char__less__than_html_a8ff12c3dcf4a6ea9942b8fc1e5046936"><div class="ttname"><a href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">boost::sort::detail::offset_char_less_than::length</a></div><div class="ttdeci">Get_length length</div><div class="ttdef"><b>Definition:</b> string_sort.hpp:155</div></div> <div class="ttc" id="namespaceboost_1_1sort_1_1detail_html_ad5b7d31fba809eae5d17f5c2fb0a385b"><div class="ttname"><a href="namespaceboost_1_1sort_1_1detail.html#ad5b7d31fba809eae5d17f5c2fb0a385b">boost::sort::detail::size_bins</a></div><div class="ttdeci">RandomAccessIter * size_bins(size_t *bin_sizes, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, unsigned &cache_end, unsigned bin_count)</div><div class="ttdef"><b>Definition:</b> spreadsort_common.hpp:106</div></div> -<div class="ttc" id="structboost_1_1sort_1_1detail_1_1offset__char__less__than_html_afb5424173c237d8cd25722a02c23ab30"><div class="ttname"><a href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">boost::sort::detail::offset_char_less_than::getchar</a></div><div class="ttdeci">Get_char getchar</div><div class="ttdef"><b>Definition:</b> string_sort.hpp:154</div></div> +<div class="ttc" id="structboost_1_1sort_1_1detail_1_1offset__char__less__than_html_afb5424173c237d8cd25722a02c23ab30"><div class="ttname"><a href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">boost::sort::detail::offset_char_less_than::get_character</a></div><div class="ttdeci">Get_char get_character</div><div class="ttdef"><b>Definition:</b> string_sort.hpp:154</div></div> <div class="ttc" id="structboost_1_1sort_1_1detail_1_1offset__char__less__than_html_ad20c3572610e68d76c49dfff2eba2bf3"><div class="ttname"><a href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#ad20c3572610e68d76c49dfff2eba2bf3">boost::sort::detail::offset_char_less_than::operator()</a></div><div class="ttdeci">bool operator()(const Data_type &x, const Data_type &y) const </div><div class="ttdef"><b>Definition:</b> string_sort.hpp:143</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> diff --git a/doc/doxygen/html/namespaceboost_1_1sort.html b/doc/doxygen/html/namespaceboost_1_1sort.html index 147df4b..2103823 100644 --- a/doc/doxygen/html/namespaceboost_1_1sort.html +++ b/doc/doxygen/html/namespaceboost_1_1sort.html @@ -152,15 +152,15 @@ Functions</h2></td></tr> <tr class="memdesc:afd4938835fd03aab9c42bd0653e5dbe5"><td class="mdescLeft"> </td><td class="mdescRight">String sort algorithm using random access iterators, wraps using default of <code>unsigned</code> char. <a href="#afd4938835fd03aab9c42bd0653e5dbe5">More...</a><br /></td></tr> <tr class="separator:afd4938835fd03aab9c42bd0653e5dbe5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length > </td></tr> -<tr class="memitem:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680">string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length)</td></tr> +<tr class="memitem:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680">string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length)</td></tr> <tr class="memdesc:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="mdescLeft"> </td><td class="mdescRight">String sort algorithm using random access iterators, wraps using default of <code>unsigned</code> char. <a href="#a5143ec4f58cfe13eca2a0d6b6f6a6680">More...</a><br /></td></tr> <tr class="separator:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="memdesc:a82c4c0d7ba9873ecce7c674631dceae2"><td class="mdescLeft"> </td><td class="mdescRight">String sort algorithm using random access iterators, wraps using default of <code>unsigned</code> char. <a href="#a82c4c0d7ba9873ecce7c674631dceae2">More...</a><br /></td></tr> <tr class="separator:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7940f1b2a7746c083a12a4e26077096b"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:a7940f1b2a7746c083a12a4e26077096b"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">reverse_string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:a7940f1b2a7746c083a12a4e26077096b"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">reverse_string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="memdesc:a7940f1b2a7746c083a12a4e26077096b"><td class="mdescLeft"> </td><td class="mdescRight">Reverse String sort algorithm using random access iterators. <a href="#a7940f1b2a7746c083a12a4e26077096b">More...</a><br /></td></tr> <tr class="separator:a7940f1b2a7746c083a12a4e26077096b"><td class="memSeparator" colspan="2"> </td></tr> </table> @@ -883,7 +883,7 @@ template<class RandomAccessIter , class Get_char , class Get_length , class C <td class="paramkey"></td> <td></td> <td class="paramtype">Get_char </td> - <td class="paramname"><em>getchar</em>, </td> + <td class="paramname"><em>get_character</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -932,7 +932,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<br /> <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>Iterator pointer to first element. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>Iterator pointing to one beyond the end of data. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">comp</td><td>comparison functor. </td></tr> - <tr><td class="paramdir">[in]</td><td class="paramname">getchar</td><td>??? </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">get_character</td><td>??? </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>???</td></tr> </table> </dd> @@ -1342,7 +1342,7 @@ template<class RandomAccessIter , class Get_char , class Get_length > </di <td class="paramkey"></td> <td></td> <td class="paramtype">Get_char </td> - <td class="paramname"><em>getchar</em>, </td> + <td class="paramname"><em>get_character</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -1383,7 +1383,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<br /> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>Iterator pointer to first element. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>Iterator pointing to one beyond the end of data. </td></tr> - <tr><td class="paramdir">[in]</td><td class="paramname">getchar</td><td>Number corresponding to the character offset from bracket functor equivalent to <code>operator</code>[]. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">get_character</td><td>Number corresponding to the character offset from bracket functor equivalent to <code>operator</code>[]. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Functor to get the length of the string in characters.</td></tr> </table> </dd> @@ -1442,7 +1442,7 @@ template<class RandomAccessIter , class Get_char , class Get_length , class C <td class="paramkey"></td> <td></td> <td class="paramtype">Get_char </td> - <td class="paramname"><em>getchar</em>, </td> + <td class="paramname"><em>get_character</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -1491,7 +1491,7 @@ Some performance plots of runtime vs. n and log(range) are provided:<br /> <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>Iterator pointer to first element. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>Iterator pointing to one beyond the end of data. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">comp</td><td>comparison functor. </td></tr> - <tr><td class="paramdir">[in]</td><td class="paramname">getchar</td><td>??? </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">get_character</td><td>??? </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>???</td></tr> </table> </dd> diff --git a/doc/doxygen/html/namespaceboost_1_1sort_1_1detail.html b/doc/doxygen/html/namespaceboost_1_1sort_1_1detail.html index f97fd8b..daa79cf 100644 --- a/doc/doxygen/html/namespaceboost_1_1sort_1_1detail.html +++ b/doc/doxygen/html/namespaceboost_1_1sort_1_1detail.html @@ -193,7 +193,7 @@ Functions</h2></td></tr> <tr class="memitem:a585497946eeb8cc1d2072642d7f1da01"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01">update_offset</a> (RandomAccessIter first, RandomAccessIter finish, size_t &char_offset)</td></tr> <tr class="separator:a585497946eeb8cc1d2072642d7f1da01"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length > </td></tr> -<tr class="memitem:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a415ebdb0c9a5e9209bbfc7d2e576374c">update_offset</a> (RandomAccessIter first, RandomAccessIter finish, size_t &char_offset, Get_char getchar, Get_length length)</td></tr> +<tr class="memitem:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a415ebdb0c9a5e9209bbfc7d2e576374c">update_offset</a> (RandomAccessIter first, RandomAccessIter finish, size_t &char_offset, Get_char get_character, Get_length length)</td></tr> <tr class="separator:a415ebdb0c9a5e9209bbfc7d2e576374c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad1655ab39e410e18b6e8b6694405e5ba"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type > </td></tr> <tr class="memitem:ad1655ab39e410e18b6e8b6694405e5ba"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba">string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)</td></tr> @@ -202,13 +202,13 @@ Functions</h2></td></tr> <tr class="memitem:a66be693262defeff06a4a3507155d4a3"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a66be693262defeff06a4a3507155d4a3">reverse_string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)</td></tr> <tr class="separator:a66be693262defeff06a4a3507155d4a3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af825e4484173e0b886d0b24f66ae4a64"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type , class Get_char , class Get_length > </td></tr> -<tr class="memitem:af825e4484173e0b886d0b24f66ae4a64"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#af825e4484173e0b886d0b24f66ae4a64">string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length)</td></tr> +<tr class="memitem:af825e4484173e0b886d0b24f66ae4a64"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#af825e4484173e0b886d0b24f66ae4a64">string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length)</td></tr> <tr class="separator:af825e4484173e0b886d0b24f66ae4a64"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a49ccfc022cfef8a14bbbbeccd36d78ec">string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#a49ccfc022cfef8a14bbbbeccd36d78ec">string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="separator:a49ccfc022cfef8a14bbbbeccd36d78ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Unsigned_char_type , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#ab71cd7c25eada649fa1aff16fb3549f6">reverse_string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort_1_1detail.html#ab71cd7c25eada649fa1aff16fb3549f6">reverse_string_sort_rec</a> (RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="separator:ab71cd7c25eada649fa1aff16fb3549f6"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Enumeration Type Documentation</h2> @@ -1348,7 +1348,7 @@ template<class RandomAccessIter , class Unsigned_char_type , class Get_char , <td class="paramkey"></td> <td></td> <td class="paramtype">Get_char </td> - <td class="paramname"><em>getchar</em>, </td> + <td class="paramname"><em>get_character</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -1566,7 +1566,7 @@ template<class RandomAccessIter , class Unsigned_char_type , class Get_char , <td class="paramkey"></td> <td></td> <td class="paramtype">Get_char </td> - <td class="paramname"><em>getchar</em>, </td> + <td class="paramname"><em>get_character</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -1638,7 +1638,7 @@ template<class RandomAccessIter , class Unsigned_char_type , class Get_char , <td class="paramkey"></td> <td></td> <td class="paramtype">Get_char </td> - <td class="paramname"><em>getchar</em>, </td> + <td class="paramname"><em>get_character</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -1740,7 +1740,7 @@ template<class RandomAccessIter , class Get_char , class Get_length > </di <td class="paramkey"></td> <td></td> <td class="paramtype">Get_char </td> - <td class="paramname"><em>getchar</em>, </td> + <td class="paramname"><em>get_character</em>, </td> </tr> <tr> <td class="paramkey"></td> diff --git a/doc/doxygen/html/search/all_d.js b/doc/doxygen/html/search/all_d.js index 886fa4f..a0a4c9f 100644 --- a/doc/doxygen/html/search/all_d.js +++ b/doc/doxygen/html/search/all_d.js @@ -2,7 +2,7 @@ var searchData= [ ['radix_5fthreshold',['radix_threshold',['../alrbreaker_8cpp.html#afc30457e398e72300f20714123913b78',1,'radix_threshold(): alrbreaker.cpp'],['../binaryalrbreaker_8cpp.html#afc30457e398e72300f20714123913b78',1,'radix_threshold(): binaryalrbreaker.cpp']]], ['randomgen_2ecpp',['randomgen.cpp',['../randomgen_8cpp.html',1,'']]], - ['reverse_5fstring_5fsort',['reverse_string_sort',['../namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#afd4938835fd03aab9c42bd0653e5dbe5',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp)'],['../namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)']]], + ['reverse_5fstring_5fsort',['reverse_string_sort',['../namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#afd4938835fd03aab9c42bd0653e5dbe5',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp)'],['../namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)']]], ['reverseintsample_2ecpp',['reverseintsample.cpp',['../reverseintsample_8cpp.html',1,'']]], ['reversestringfunctorsample_2ecpp',['reversestringfunctorsample.cpp',['../reversestringfunctorsample_8cpp.html',1,'']]], ['reversestringsample_2ecpp',['reversestringsample.cpp',['../reversestringsample_8cpp.html',1,'']]], diff --git a/doc/doxygen/html/search/all_e.js b/doc/doxygen/html/search/all_e.js index ca59b6e..b5a4113 100644 --- a/doc/doxygen/html/search/all_e.js +++ b/doc/doxygen/html/search/all_e.js @@ -6,7 +6,7 @@ var searchData= ['sort_5floop',['sort_loop',['../parallelint_8cpp.html#acbd0dadb301334e73befdafddd98b044',1,'parallelint.cpp']]], ['spreadsort',['spreadsort',['../namespaceboost_1_1sort.html#a4bc25fdacd4c948f631f08a3f9aa38eb',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a94a736da091bd5d3b525818399f1b272',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#aafdea66d9b4a7faef5604b3079b525fa',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)']]], ['spreadsort_2ehpp',['spreadsort.hpp',['../spreadsort_8hpp.html',1,'']]], - ['string_5fsort',['string_sort',['../namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#a6acd5fc94521b0a5cb47dc491b6d862f',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length)'],['../namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)']]], + ['string_5fsort',['string_sort',['../namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#a6acd5fc94521b0a5cb47dc491b6d862f',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length)'],['../namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)']]], ['string_5fsort_2ehpp',['string_sort.hpp',['../string__sort_8hpp.html',1,'']]], ['stringfunctorsample_2ecpp',['stringfunctorsample.cpp',['../stringfunctorsample_8cpp.html',1,'']]], ['stringsample_2ecpp',['stringsample.cpp',['../stringsample_8cpp.html',1,'']]] diff --git a/doc/doxygen/html/search/functions_5.js b/doc/doxygen/html/search/functions_5.js index 4be6e72..e771fd8 100644 --- a/doc/doxygen/html/search/functions_5.js +++ b/doc/doxygen/html/search/functions_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['reverse_5fstring_5fsort',['reverse_string_sort',['../namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#afd4938835fd03aab9c42bd0653e5dbe5',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp)'],['../namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)']]] + ['reverse_5fstring_5fsort',['reverse_string_sort',['../namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#afd4938835fd03aab9c42bd0653e5dbe5',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp)'],['../namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)']]] ]; diff --git a/doc/doxygen/html/search/functions_6.js b/doc/doxygen/html/search/functions_6.js index 4b5c920..e7bd3d8 100644 --- a/doc/doxygen/html/search/functions_6.js +++ b/doc/doxygen/html/search/functions_6.js @@ -2,5 +2,5 @@ var searchData= [ ['sort_5floop',['sort_loop',['../parallelint_8cpp.html#acbd0dadb301334e73befdafddd98b044',1,'parallelint.cpp']]], ['spreadsort',['spreadsort',['../namespaceboost_1_1sort.html#a4bc25fdacd4c948f631f08a3f9aa38eb',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a94a736da091bd5d3b525818399f1b272',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#aafdea66d9b4a7faef5604b3079b525fa',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)']]], - ['string_5fsort',['string_sort',['../namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#a6acd5fc94521b0a5cb47dc491b6d862f',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length)'],['../namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)']]] + ['string_5fsort',['string_sort',['../namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#a6acd5fc94521b0a5cb47dc491b6d862f',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length)'],['../namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)']]] ]; diff --git a/doc/doxygen/html/search/functions_7.js b/doc/doxygen/html/search/functions_7.js index ed0c596..5a5fbb0 100644 --- a/doc/doxygen/html/search/functions_7.js +++ b/doc/doxygen/html/search/functions_7.js @@ -1,6 +1,6 @@ var searchData= [ - ['reverse_5fstring_5fsort',['reverse_string_sort',['../namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#afd4938835fd03aab9c42bd0653e5dbe5',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp)'],['../namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)']]], - ['reverse_5fstring_5fsort_5frec',['reverse_string_sort_rec',['../namespaceboost_1_1sort_1_1detail.html#a66be693262defeff06a4a3507155d4a3',1,'boost::sort::detail::reverse_string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)'],['../namespaceboost_1_1sort_1_1detail.html#ab71cd7c25eada649fa1aff16fb3549f6',1,'boost::sort::detail::reverse_string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length, Compare comp)']]], + ['reverse_5fstring_5fsort',['reverse_string_sort',['../namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#afd4938835fd03aab9c42bd0653e5dbe5',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp)'],['../namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b',1,'boost::sort::reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)']]], + ['reverse_5fstring_5fsort_5frec',['reverse_string_sort_rec',['../namespaceboost_1_1sort_1_1detail.html#a66be693262defeff06a4a3507155d4a3',1,'boost::sort::detail::reverse_string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)'],['../namespaceboost_1_1sort_1_1detail.html#ab71cd7c25eada649fa1aff16fb3549f6',1,'boost::sort::detail::reverse_string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length, Compare comp)']]], ['rough_5flog_5f2_5fsize',['rough_log_2_size',['../namespaceboost_1_1sort_1_1detail.html#a852a51cde62aa67347cb9b4a7350bbac',1,'boost::sort::detail']]] ]; diff --git a/doc/doxygen/html/search/functions_8.js b/doc/doxygen/html/search/functions_8.js index 2f17399..ae8ad46 100644 --- a/doc/doxygen/html/search/functions_8.js +++ b/doc/doxygen/html/search/functions_8.js @@ -2,6 +2,6 @@ var searchData= [ ['size_5fbins',['size_bins',['../namespaceboost_1_1sort_1_1detail.html#ad5b7d31fba809eae5d17f5c2fb0a385b',1,'boost::sort::detail']]], ['spreadsort',['spreadsort',['../namespaceboost_1_1sort.html#a4bc25fdacd4c948f631f08a3f9aa38eb',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a94a736da091bd5d3b525818399f1b272',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#aafdea66d9b4a7faef5604b3079b525fa',1,'boost::sort::spreadsort(RandomAccessIter first, RandomAccessIter last)']]], - ['string_5fsort',['string_sort',['../namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#a6acd5fc94521b0a5cb47dc491b6d862f',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length)'],['../namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)']]], - ['string_5fsort_5frec',['string_sort_rec',['../namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba',1,'boost::sort::detail::string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)'],['../namespaceboost_1_1sort_1_1detail.html#af825e4484173e0b886d0b24f66ae4a64',1,'boost::sort::detail::string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length)'],['../namespaceboost_1_1sort_1_1detail.html#a49ccfc022cfef8a14bbbbeccd36d78ec',1,'boost::sort::detail::string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char getchar, Get_length length, Compare comp)']]] + ['string_5fsort',['string_sort',['../namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)'],['../namespaceboost_1_1sort.html#a6acd5fc94521b0a5cb47dc491b6d862f',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last)'],['../namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length)'],['../namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2',1,'boost::sort::string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)']]], + ['string_5fsort_5frec',['string_sort_rec',['../namespaceboost_1_1sort_1_1detail.html#ad1655ab39e410e18b6e8b6694405e5ba',1,'boost::sort::detail::string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes)'],['../namespaceboost_1_1sort_1_1detail.html#af825e4484173e0b886d0b24f66ae4a64',1,'boost::sort::detail::string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length)'],['../namespaceboost_1_1sort_1_1detail.html#a49ccfc022cfef8a14bbbbeccd36d78ec',1,'boost::sort::detail::string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector< RandomAccessIter > &bin_cache, unsigned cache_offset, size_t *bin_sizes, Get_char get_character, Get_length length, Compare comp)']]] ]; diff --git a/doc/doxygen/html/search/functions_9.js b/doc/doxygen/html/search/functions_9.js index 7afe9d8..2d81b5f 100644 --- a/doc/doxygen/html/search/functions_9.js +++ b/doc/doxygen/html/search/functions_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['update_5foffset',['update_offset',['../namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01',1,'boost::sort::detail::update_offset(RandomAccessIter first, RandomAccessIter finish, size_t &char_offset)'],['../namespaceboost_1_1sort_1_1detail.html#a415ebdb0c9a5e9209bbfc7d2e576374c',1,'boost::sort::detail::update_offset(RandomAccessIter first, RandomAccessIter finish, size_t &char_offset, Get_char getchar, Get_length length)']]] + ['update_5foffset',['update_offset',['../namespaceboost_1_1sort_1_1detail.html#a585497946eeb8cc1d2072642d7f1da01',1,'boost::sort::detail::update_offset(RandomAccessIter first, RandomAccessIter finish, size_t &char_offset)'],['../namespaceboost_1_1sort_1_1detail.html#a415ebdb0c9a5e9209bbfc7d2e576374c',1,'boost::sort::detail::update_offset(RandomAccessIter first, RandomAccessIter finish, size_t &char_offset, Get_char get_character, Get_length length)']]] ]; diff --git a/doc/doxygen/html/string__sort_8hpp.html b/doc/doxygen/html/string__sort_8hpp.html index b14c49b..14060ea 100644 --- a/doc/doxygen/html/string__sort_8hpp.html +++ b/doc/doxygen/html/string__sort_8hpp.html @@ -129,15 +129,15 @@ Functions</h2></td></tr> <tr class="memdesc:afd4938835fd03aab9c42bd0653e5dbe5"><td class="mdescLeft"> </td><td class="mdescRight">String sort algorithm using random access iterators, wraps using default of <code>unsigned</code> char. <a href="#afd4938835fd03aab9c42bd0653e5dbe5">More...</a><br /></td></tr> <tr class="separator:afd4938835fd03aab9c42bd0653e5dbe5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length > </td></tr> -<tr class="memitem:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680">boost::sort::string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length)</td></tr> +<tr class="memitem:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680">boost::sort::string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length)</td></tr> <tr class="memdesc:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="mdescLeft"> </td><td class="mdescRight">String sort algorithm using random access iterators, wraps using default of <code>unsigned</code> char. <a href="#a5143ec4f58cfe13eca2a0d6b6f6a6680">More...</a><br /></td></tr> <tr class="separator:a5143ec4f58cfe13eca2a0d6b6f6a6680"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">boost::sort::string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">boost::sort::string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="memdesc:a82c4c0d7ba9873ecce7c674631dceae2"><td class="mdescLeft"> </td><td class="mdescRight">String sort algorithm using random access iterators, wraps using default of <code>unsigned</code> char. <a href="#a82c4c0d7ba9873ecce7c674631dceae2">More...</a><br /></td></tr> <tr class="separator:a82c4c0d7ba9873ecce7c674631dceae2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7940f1b2a7746c083a12a4e26077096b"><td class="memTemplParams" colspan="2">template<class RandomAccessIter , class Get_char , class Get_length , class Compare > </td></tr> -<tr class="memitem:a7940f1b2a7746c083a12a4e26077096b"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">boost::sort::reverse_string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)</td></tr> +<tr class="memitem:a7940f1b2a7746c083a12a4e26077096b"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">boost::sort::reverse_string_sort</a> (RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)</td></tr> <tr class="memdesc:a7940f1b2a7746c083a12a4e26077096b"><td class="mdescLeft"> </td><td class="mdescRight">Reverse String sort algorithm using random access iterators. <a href="#a7940f1b2a7746c083a12a4e26077096b">More...</a><br /></td></tr> <tr class="separator:a7940f1b2a7746c083a12a4e26077096b"><td class="memSeparator" colspan="2"> </td></tr> </table> diff --git a/doc/doxygen/html/string__sort_8hpp_source.html b/doc/doxygen/html/string__sort_8hpp_source.html index 449093f..6c0b51d 100644 --- a/doc/doxygen/html/string__sort_8hpp_source.html +++ b/doc/doxygen/html/string__sort_8hpp_source.html @@ -361,7 +361,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment"></span></div> <div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment"> \param[in] first Iterator pointer to first element.</span></div> <div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"> \param[in] last Iterator pointing to one beyond the end of data.</span></div> -<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment"> \param[in] getchar Number corresponding to the character offset from bracket functor equivalent to @c operator[].</span></div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment"> \param[in] get_character Number corresponding to the character offset from bracket functor equivalent to @c operator[].</span></div> <div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment"> \param[in] length Functor to get the length of the string in characters.</span></div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment"></span></div> <div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment"> \pre [@c first, @c last) is a valid range.</span></div> @@ -390,7 +390,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment">*/</span></div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keyword">template</span> <<span class="keyword">class</span> RandomAccessIter, <span class="keyword">class</span> Get_<span class="keywordtype">char</span>, <span class="keyword">class</span> Get_length></div> <div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="namespaceboost_1_1sort.html#a5143ec4f58cfe13eca2a0d6b6f6a6680"> 301</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0">string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  Get_char getchar, Get_length length)</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  Get_char get_character, Get_length length)</div> <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  {</div> <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">//Don't sort if it's too small to optimize</span></div> <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">if</span> (last - first < detail::min_sort_size)</div> @@ -402,7 +402,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">if</span> (++first == last)</div> <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span>;</div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div> -<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">detail::string_sort</a>(first, last, getchar, length, getchar((*first), 0));</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">detail::string_sort</a>(first, last, get_character, length, get_character((*first), 0));</div> <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div> <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div> @@ -434,7 +434,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment"> \param[in] first Iterator pointer to first element.</span></div> <div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment"> \param[in] last Iterator pointing to one beyond the end of data.</span></div> <div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="comment"> \param[in] comp comparison functor.</span></div> -<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment"> \param[in] getchar ???</span></div> +<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment"> \param[in] get_character ???</span></div> <div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment"> \param[in] length ???</span></div> <div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment"></span></div> <div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment"></span></div> @@ -463,7 +463,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">template</span> <<span class="keyword">class </span>RandomAccessIter, <span class="keyword">class </span>Get_char, <span class="keyword">class </span>Get_length,</div> <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keyword">class </span>Compare></div> <div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2"> 374</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0">string_sort</a>(RandomAccessIter first, RandomAccessIter last,</div> -<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  Get_char getchar, Get_length length, Compare comp)</div> +<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  Get_char get_character, Get_length length, Compare comp)</div> <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  {</div> <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="comment">//Don't sort if it's too small to optimize</span></div> <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">if</span> (last - first < detail::min_sort_size)</div> @@ -475,8 +475,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">if</span> (++first == last)</div> <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span>;</div> <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div> -<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">detail::string_sort</a>(first, last, getchar, length, comp,</div> -<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  getchar((*first), 0));</div> +<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">detail::string_sort</a>(first, last, get_character, length, comp,</div> +<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  get_character((*first), 0));</div> <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div> <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div> <div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div> @@ -507,7 +507,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="comment"> \param[in] first Iterator pointer to first element.</span></div> <div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="comment"> \param[in] last Iterator pointing to one beyond the end of data.</span></div> <div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="comment"> \param[in] comp comparison functor.</span></div> -<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="comment"> \param[in] getchar ???</span></div> +<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="comment"> \param[in] get_character ???</span></div> <div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="comment"> \param[in] length ???</span></div> <div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="comment"></span></div> <div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="comment"></span></div> @@ -536,7 +536,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keyword">template</span> <<span class="keyword">class </span>RandomAccessIter, <span class="keyword">class </span>Get_char, <span class="keyword">class </span>Get_length,</div> <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">class </span>Compare></div> <div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b"> 447</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48">reverse_string_sort</a>(RandomAccessIter first,</div> -<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)</div> +<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)</div> <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  {</div> <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="comment">//Don't sort if it's too small to optimize</span></div> <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">if</span> (last - first < detail::min_sort_size)</div> @@ -550,8 +550,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">return</span>;</div> <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div> <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="comment">//making last just after the end of the non-empty part of the array</span></div> -<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">detail::reverse_string_sort</a>(first, last + 1, getchar, length, comp,</div> -<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  getchar((*last), 0));</div> +<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">detail::reverse_string_sort</a>(first, last + 1, get_character, length, comp,</div> +<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  get_character((*last), 0));</div> <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div> <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div> <div class="line"><a name="l00466"></a><span class="lineno"> 466</span> }</div> @@ -559,10 +559,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div> <div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor">#endif</span></div> <div class="ttc" id="namespaceboost_html"><div class="ttname"><a href="namespaceboost.html">boost</a></div><div class="ttdef"><b>Definition:</b> float_sort.hpp:27</div></div> -<div class="ttc" id="namespaceboost_1_1sort_html_a82c4c0d7ba9873ecce7c674631dceae2"><div class="ttname"><a href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">boost::sort::string_sort</a></div><div class="ttdeci">void string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)</div><div class="ttdoc">String sort algorithm using random access iterators, wraps using default of unsigned char...</div><div class="ttdef"><b>Definition:</b> string_sort.hpp:374</div></div> +<div class="ttc" id="namespaceboost_1_1sort_html_a82c4c0d7ba9873ecce7c674631dceae2"><div class="ttname"><a href="namespaceboost_1_1sort.html#a82c4c0d7ba9873ecce7c674631dceae2">boost::sort::string_sort</a></div><div class="ttdeci">void string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)</div><div class="ttdoc">String sort algorithm using random access iterators, wraps using default of unsigned char...</div><div class="ttdef"><b>Definition:</b> string_sort.hpp:374</div></div> <div class="ttc" id="namespaceboost_1_1sort_html_a950a2dbbe75f048a0b343dbf7c532dc0"><div class="ttname"><a href="namespaceboost_1_1sort.html#a950a2dbbe75f048a0b343dbf7c532dc0">boost::sort::string_sort</a></div><div class="ttdeci">void string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)</div><div class="ttdoc">String sort algorithm using random access iterators, allowing character-type overloads. (All variants fall back to std::sort if the data size is too small, < detail::min_sort_size). </div><div class="ttdef"><b>Definition:</b> string_sort.hpp:73</div></div> <div class="ttc" id="namespaceboost_1_1sort_html_a4ad4785d90f47d51ff1d2fac8c21bb48"><div class="ttname"><a href="namespaceboost_1_1sort.html#a4ad4785d90f47d51ff1d2fac8c21bb48">boost::sort::reverse_string_sort</a></div><div class="ttdeci">void reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Compare comp, Unsigned_char_type unused)</div><div class="ttdoc">String sort algorithm using random access iterators, allowing character-type overloads. </div><div class="ttdef"><b>Definition:</b> string_sort.hpp:183</div></div> -<div class="ttc" id="namespaceboost_1_1sort_html_a7940f1b2a7746c083a12a4e26077096b"><div class="ttname"><a href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">boost::sort::reverse_string_sort</a></div><div class="ttdeci">void reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char getchar, Get_length length, Compare comp)</div><div class="ttdoc">Reverse String sort algorithm using random access iterators. </div><div class="ttdef"><b>Definition:</b> string_sort.hpp:447</div></div> +<div class="ttc" id="namespaceboost_1_1sort_html_a7940f1b2a7746c083a12a4e26077096b"><div class="ttname"><a href="namespaceboost_1_1sort.html#a7940f1b2a7746c083a12a4e26077096b">boost::sort::reverse_string_sort</a></div><div class="ttdeci">void reverse_string_sort(RandomAccessIter first, RandomAccessIter last, Get_char get_character, Get_length length, Compare comp)</div><div class="ttdoc">Reverse String sort algorithm using random access iterators. </div><div class="ttdef"><b>Definition:</b> string_sort.hpp:447</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> diff --git a/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than-members.html b/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than-members.html index 721ef36..912a1f2 100644 --- a/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than-members.html +++ b/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than-members.html @@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); <p>This is the complete list of members for <a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than< Data_type, Get_char, Get_length ></a>, including all inherited members.</p> <table class="directory"> <tr class="even"><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#ae5ee4abf81ecfb4ff4016792b81bfbd2">fchar_offset</a></td><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than< Data_type, Get_char, Get_length ></a></td><td class="entry"></td></tr> - <tr><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">getchar</a></td><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than< Data_type, Get_char, Get_length ></a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">get_character</a></td><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than< Data_type, Get_char, Get_length ></a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">length</a></td><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than< Data_type, Get_char, Get_length ></a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a0716b085964e676c8c9735bafa783007">offset_char_less_than</a>(size_t char_offset)</td><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than< Data_type, Get_char, Get_length ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#ad20c3572610e68d76c49dfff2eba2bf3">operator()</a>(const Data_type &x, const Data_type &y) const </td><td class="entry"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than< Data_type, Get_char, Get_length ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr> diff --git a/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than.html b/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than.html index 5e4f1e2..b24fb55 100644 --- a/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than.html +++ b/doc/doxygen/html/structboost_1_1sort_1_1detail_1_1offset__char__less__than.html @@ -108,7 +108,7 @@ Public Member Functions</h2></td></tr> Public Attributes</h2></td></tr> <tr class="memitem:ae5ee4abf81ecfb4ff4016792b81bfbd2"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#ae5ee4abf81ecfb4ff4016792b81bfbd2">fchar_offset</a></td></tr> <tr class="separator:ae5ee4abf81ecfb4ff4016792b81bfbd2"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:afb5424173c237d8cd25722a02c23ab30"><td class="memItemLeft" align="right" valign="top">Get_char </td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">getchar</a></td></tr> +<tr class="memitem:afb5424173c237d8cd25722a02c23ab30"><td class="memItemLeft" align="right" valign="top">Get_char </td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#afb5424173c237d8cd25722a02c23ab30">get_character</a></td></tr> <tr class="separator:afb5424173c237d8cd25722a02c23ab30"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8ff12c3dcf4a6ea9942b8fc1e5046936"><td class="memItemLeft" align="right" valign="top">Get_length </td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html#a8ff12c3dcf4a6ea9942b8fc1e5046936">length</a></td></tr> <tr class="separator:a8ff12c3dcf4a6ea9942b8fc1e5046936"><td class="memSeparator" colspan="2"> </td></tr> @@ -199,7 +199,7 @@ template<class Data_type , class Get_char , class Get_length > </div> template<class Data_type , class Get_char , class Get_length > </div> <table class="memname"> <tr> - <td class="memname">Get_char <a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than</a>< Data_type, Get_char, Get_length >::getchar</td> + <td class="memname">Get_char <a class="el" href="structboost_1_1sort_1_1detail_1_1offset__char__less__than.html">boost::sort::detail::offset_char_less_than</a>< Data_type, Get_char, Get_length >::get_character</td> </tr> </table> </div><div class="memdoc"> diff --git a/doc/flat_stable_sort.qbk b/doc/flat_stable_sort.qbk index 3eab73a..fd429e4 100644 --- a/doc/flat_stable_sort.qbk +++ b/doc/flat_stable_sort.qbk @@ -14,11 +14,11 @@ [: [*Flat_stable_sort] is a new stable sort algorithm, designed and implemented by Francisco Jose Tapia for the Boost Sort Library -The goal of the algorithm is provide a stable sort with a low additional memory (about 1% of the memory used by the data). +The goal of the algorithm is to stably sort with little additional memory (about 1% of the memory used by the data). -The stable sort algorithms provided by the compilers and libraries use substantial additional memory, usually half of the data to sort. +The default stable sort algorithms provided by most compilers and libraries use substantial additional memory, usually half of the data to sort. -This new algorithm provide around 80%-90% of the speed of the spinsort and the stable sort algorithms provided by compilers and libraries. +This new algorithm provides around 80%-90% of the speed of the spinsort and the stable sort algorithms provided by compilers and libraries. This algorithm is fast when the data is almost sorted. Many times the new elements are inserted at the end of the sorted elements, or some elements are modified, breaking the order of the elements. In these cases, the flat_stable_sort algorithm is very fast. @@ -110,11 +110,11 @@ The flat_stable_sort function is in the namespace boost::sort. void flat_stable_sort (iter_t first, iter_t last, compare comp = compare()); `` -The algorithms use a [*comparison object], in the same way as the standard library sort +This algorithm uses a [*comparison object], in the same way as the standard library sort algorithms. If you don't define it, the comparison object defaults to std::less, which uses the < operator internally for comparisons. -The algorithms are [*exception safe], meaning that, the exceptions generated by the algorithms +This algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm guarantee the integrity of the objects to sort, but not their relative order. If the exception is generated inside the objects (in the move or copy constructors) the results are undefined. diff --git a/doc/introduction.qbk b/doc/introduction.qbk index 4cffec2..1250a4d 100644 --- a/doc/introduction.qbk +++ b/doc/introduction.qbk @@ -10,9 +10,9 @@ [section:introduction 1.- Introduction] [: -The goal of the Boost Sort Library is provide to the users, the most modern and fast sorting algorithms. +The goal of the Boost Sort Library is provide to the users, the most modern, fast, and memory-efficient sorting algorithms. -This library provide stable and not stable sorting algorithms, in single thread and parallel versions. +This library provides stable and unstable sorting algorithms, in single threaded and parallel versions. These algorithms do not use any other library or utility. The parallel algorithms need a C++11 compliant compiler. @@ -24,23 +24,22 @@ These algorithms do not use any other library or utility. The parallel algorithm | | | | Comparison | Algorithm |Stable | Additional memory |Best, average, and worst case | method | ------------------+-------+----------------------------+------------------------------+---------------------+ - spreadsort | no | Log N | N, N LogN , N LogN | Hybrid radix sort | - pdqsort | no | Log N | N, N LogN , N LogN | Comparison operator | - spinsort | yes | N / 2 | N, N LogN , N LogN | Comparison operator | - flat_stable_sort | yes |size of the data / 256 + 8K | N, N LogN , N LogN | Comparison operator | + spreadsort | no | key_length | N, N sqrt(LogN), min(N logN, N key_length) | Hybrid radix sort | + pdqsort | no | Log N | N, N LogN, N LogN | Comparison operator | + spinsort | yes | N / 2 | N, N LogN, N LogN | Comparison operator | + flat_stable_sort | yes |size of the data / 256 + 8K | N, N LogN, N LogN | Comparison operator | | | | | | `` ] -* *spreadsort* is a hybrid radix sort algorithm, extremely fast, designed and developed by Steven Ross. +* *spreadsort* is an extremely fast hybrid radix sort algorithm, designed and developed by Steven Ross. * *pdqsort* is a improvement of the quick sort algorithm, designed and developed by Orson Peters. -* *spinsort* is a stable sort, fast with random and whith near sorted data, designed and developed by Francisco Tapia. - -* *flat_stable_sort* stable sort with a small additional memory (around 1% of the size of the data),provide the 80% - 90% of the speed of - spinsort, being fast with random and with near sorted data, designed and developed by Francisco Tapia. +* *spinsort* is a stable sort that is fast with random or nearly sorted data, designed and developed by Francisco Tapia. +* *flat_stable_sort* is a stable sort that uses very little additional memory (around 1% of the size of the data), providing 80% - 90% of the speed of + spinsort, designed and developed by Francisco Tapia. [h4[_Parallel Algorithms]] @@ -61,7 +60,7 @@ These algorithms do not use any other library or utility. The parallel algorithm * *Parallel_stable_sort* is based on the samplesort algorithm, but using a half of the memory used by sample_sort, conceived and implemented by Francisco Tapia. -* *Block_indirect_sort* is a novel parallel sort algorithm, very fast, with low additional memory consumption, conceived and implemented by Francisco Tapia. +* *Block_indirect_sort* is a novel high-speed parallel sort algorithm with low additional memory consumption, conceived and implemented by Francisco Tapia. The *block_size* is an internal parameter of the algorithm, which in order to achieve the diff --git a/doc/linux_parallel.qbk b/doc/linux_parallel.qbk index a7ef15d..5e19998 100644 --- a/doc/linux_parallel.qbk +++ b/doc/linux_parallel.qbk @@ -9,7 +9,7 @@ [section:linux_parallel 3.4- Linux Benchmarks] [: -The following results are from more complex benchmarks, not include in the library because they use non free software. +The following results are from complex benchmarks, not include in the library because they use non free software. (If you are interested in them, contact fjtapia@gmail.com) There are 3 types of benchmarks, diff --git a/doc/linux_single.qbk b/doc/linux_single.qbk index 76f22a8..1390e0a 100644 --- a/doc/linux_single.qbk +++ b/doc/linux_single.qbk @@ -57,8 +57,8 @@ The benchmarks with strings and objects of different sizes are not showed here, `` ] -The next results are obtained from more complex benchmarks, not include in the library because use non free SW -(If you are interested in their code, contact with fjtapia@gmail.com) +The next results are obtained from more complex benchmarks, not include in the library because they use non free software +(If you are interested in their code, contact fjtapia@gmail.com) There are 3 types of benchmarks, [: diff --git a/doc/parallel.qbk b/doc/parallel.qbk index 86b124d..472bf0d 100644 --- a/doc/parallel.qbk +++ b/doc/parallel.qbk @@ -65,7 +65,7 @@ than the number of hardware threads on the machine. We can pass 100 threads in a [h4[_Programming]] [: -Only need to include the file boost/sort/sort.hpp to use these algorithms. +You only need to include the file boost/sort/sort.hpp to use these algorithms. All the algorithms run in the namespace boost::sort @@ -84,7 +84,7 @@ The parallel algorithms have 4 invocation formats: algorithm ( first iterator, last iterator, number of threads ) algorithm ( first iterator, last iterator ) `` -These algorithms need a *C++11 compliant compiler*. Don't need any other code or library. With older compilers it is not guarantee, the correct operation. +These algorithms need a *C++11 compliant compiler*, but don't need any other code or library. With older compilers correct operation isn't guaranteed. If the number of threads is unspecified, use the result of std::thread::hardware_concurrency() diff --git a/doc/parallel_stable_sort.qbk b/doc/parallel_stable_sort.qbk index c35800d..a9ed5f7 100644 --- a/doc/parallel_stable_sort.qbk +++ b/doc/parallel_stable_sort.qbk @@ -12,7 +12,7 @@ [: This algorithm is based on the [*[@ https://en.wikipedia.org/wiki/Samplesort Samplesort]] algorithm, but uses half of the memory used by samplesort. -The design and implementation are done by Francisco Tapia for the Boost Library. +The design and implementation were done by Francisco Tapia for the Boost Library. [h4[_Algorithm Description]] [: @@ -32,7 +32,7 @@ You can see their performance in the [*[link sort.parallel.linux_parallel Benchm [h4[_Thread specification]] [: -This algorithm have a integer parameter indicating the *number of thread* to use in the sorting process, +This algorithm has an integer parameter indicating the *number of threads* to use in the sorting process, which always is the last value in the call. The default value (if left unspecified) is the number of HW threads of @@ -49,9 +49,9 @@ If this value is 0, the program is executed with 1 thread. [h4[_Programming]] [: -Only need to include the file boost/sort/sort.hpp. +You only need to include the file boost/sort/sort.hpp to use this code. -The algorithm run in the namespace boost::sort +This algorithm run in the namespace boost::sort. [c++] `` @@ -72,18 +72,19 @@ The algorithm run in the namespace boost::sort `` -This algorithm need a *C++11 compliant compiler*. Don't need any other code or library. With older compilers it is not guarantee, the correct operation. +This algorithm needs a *C++11 compliant compiler*, and doesn't need any other code or library. Correct operation is not guaranteed with older compilers. -If the number of threads is unspecified, use the result of std::thread::hardware_concurrency() +If the number of threads is unspecified, this uses the result of std::thread::hardware_concurrency(). -The algorithm use a *comparison object*, in the same way as the standard library sort -algorithms. If don't define, the comparison object is std::less, which uses internally -the < operator. +This algorithm uses a *comparison object*, in the same way as the standard library sort +algorithms. If not defined, the comparison object is std::less, which uses +the < operator internally. -The algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm +This algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm guarantee the integrity of the objects to sort, but not their relative order. If the exception is generated inside the objects (in the move or in the copy constructor.. ) the results can be unpredictable. + ] ] diff --git a/doc/sample_sort.qbk b/doc/sample_sort.qbk index 4c955e8..fc9d94b 100644 --- a/doc/sample_sort.qbk +++ b/doc/sample_sort.qbk @@ -32,7 +32,7 @@ You can see their performance in the [*[link sort.parallel.linux_parallel Benchm [h4[_Thread specification]] [: -This algorithm have a integer parameter indicating the *number of thread* to use in the sorting process, +This algorithm has an integer parameter indicating the *number of threads* to use in the sorting process, which always is the last value in the call. The default value (if left unspecified) is the number of HW threads of the machine where the program is running provided by std::thread::hardware_concurrency(). @@ -47,7 +47,7 @@ If this value is 0, the program is executed with 1 thread. [h4[_Programming]] [: -Only need to include the file boost/sort/sort.hpp. +You only need to include the file boost/sort/sort.hpp. The algorithm run in the namespace boost::sort @@ -70,15 +70,15 @@ The algorithm run in the namespace boost::sort `` -This algorithm need a *C++11 compliant compiler*. Don't need any other code or library. With older compilers it is not guarantee, the correct operation. +This algorithm needs a *C++11 compliant compiler*, and doesn't need any other code or library. Correct operation is not guaranteed with older compilers. -If the number of threads is unspecified, use the result of std::thread::hardware_concurrency() +If the number of threads is unspecified, this uses the result of std::thread::hardware_concurrency(). -The algorithm use a *comparison object*, in the same way as the standard library sort -algorithms. If don't define, the comparison object is std::less, which uses internally -the < operator. +This algorithm uses a *comparison object*, in the same way as the standard library sort +algorithms. If not defined, the comparison object is std::less, which uses +the < operator internally. -The algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm +This algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm guarantee the integrity of the objects to sort, but not their relative order. If the exception is generated inside the objects (in the move or in the copy constructor.. ) the results can be unpredictable. diff --git a/doc/single_thread.qbk b/doc/single_thread.qbk index afa33b2..4312403 100644 --- a/doc/single_thread.qbk +++ b/doc/single_thread.qbk @@ -21,22 +21,22 @@ This table provides a brief description of the single thread algorithms of the l | | | | Comparison | Algorithm |Stable | Additional memory |Best, average, and worst case | method | ------------------+-------+----------------------------+------------------------------+---------------------+ - spreadsort | no | Log N | N, N LogN , N LogN | Hybrid radix sort | - pdqsort | no | Log N | N, N LogN , N LogN | Comparison operator | - spinsort | yes | N / 2 | N, N LogN , N LogN | Comparison operator | - flat_stable_sort | yes |size of the data / 256 + 8K | N, N LogN , N LogN | Comparison operator | + spreadsort | no | key_length | N, N sqrt(LogN), min(N logN, N key_length) | Hybrid radix sort | + pdqsort | no | Log N | N, N LogN, N LogN | Comparison operator | + spinsort | yes | N / 2 | N, N LogN, N LogN | Comparison operator | + flat_stable_sort | yes |size of the data / 256 + 8K | N, N LogN, N LogN | Comparison operator | | | | | | `` ] -* *spreadsort* is a hybrid radix sort algorithm, extremely fast, designed and developed by Steven Ross. +* *spreadsort* is an extremely fast hybrid radix sort algorithm, designed and developed by Steven Ross. * *pdqsort* is a improvement of the quick sort algorithm, designed and developed by Orson Peters. -* *spinsort* is a stable sort, fast with random and whith near sorted data, designed and developed by Francisco Tapia. +* *spinsort* is a stable sort that is fast with random or nearly sorted data, designed and developed by Francisco Tapia. -* *flat_stable_sort* stable sort with a small additional memory (around 1% of the size of the data),provide the 80% - 90% of the speed of - spinsort, being fast with random and with near sorted data, designed and developed by Francisco Tapia. +* *flat_stable_sort* is a stable sort that uses very little additional memory (around 1% of the size of the data), providing 80% - 90% of the speed of + spinsort, designed and developed by Francisco Tapia. ] diff --git a/doc/spinsort.qbk b/doc/spinsort.qbk index dcdc49b..1e2d470 100644 --- a/doc/spinsort.qbk +++ b/doc/spinsort.qbk @@ -15,7 +15,7 @@ [: [*Spinsort] is a new stable sort algorithm, designed and implemented by Francisco Tapia for the Boost Sort Library. -It is a merge algorithm which combines several ideas in order to improve the speed of other stable sort algorithms. +This algorithm combines several ideas used to optimize other stable sort algorithms. [*[teletype] @@ -87,11 +87,11 @@ The spinsort function is in the namespace boost::sort `` -The algorithms use a [*comparison object], in the same way as the standard library sort +This algorithm uses a [*comparison object], in the same way as the standard library sort algorithms. If you don't define it, the comparison object defaults to std::less, which uses the < operator internally for comparisons. -The algorithms are [*exception safe], meaning that, the exceptions generated by the algorithms +This algorithm is [*exception safe], meaning that, the exceptions generated by the algorithm guarantee the integrity of the objects to sort, but not their relative order. If the exception is generated inside the objects (in the move or copy constructors) the results are undefined. ] diff --git a/doc/spreadsort.qbk b/doc/spreadsort.qbk index 25493c6..564a4c8 100644 --- a/doc/spreadsort.qbk +++ b/doc/spreadsort.qbk @@ -911,4 +911,6 @@ Parallel and Distributed Processing Techniques and Applications, Volume 3, pp.11 [endsect] [/section:history] -[xinclude autodoc.xml] [/ Using Doxygen reference documentation.] \ No newline at end of file +[xinclude autodoc.xml] [/ Using Doxygen reference documentation.] + +[endsect] [/section:spreadsort] \ No newline at end of file diff --git a/doc/windows_parallel.qbk b/doc/windows_parallel.qbk index 618802d..510f9e4 100644 --- a/doc/windows_parallel.qbk +++ b/doc/windows_parallel.qbk @@ -11,7 +11,7 @@ [: -These results are obtained from more complex benchmarks, not included in the library because they use non free software. +These results are obtained from complex benchmarks, not included in the library because they use non free software. (If you are interested in the details, contact fjtapia@gmail.com) There are 3 types of benchmarks, diff --git a/doc/windows_single.qbk b/doc/windows_single.qbk index 6d285d5..b35c207 100644 --- a/doc/windows_single.qbk +++ b/doc/windows_single.qbk @@ -66,8 +66,8 @@ There are 3 types of benchmarks, *objects of several sizes. -The objects are arrays of integers. With the heavy comparison sum all the elements in each, in the light comparison -use only the first number of the array. +The objects are arrays of integers. The heavy comparison sums all the elements in each, and the light comparison uses only the first number of the array. + ] [h4[_100 000 000 NUMBERS OF 64 BITS RANDOMLY FILLED]] diff --git a/include/boost/sort/spreadsort/detail/string_sort.hpp b/include/boost/sort/spreadsort/detail/string_sort.hpp index 582508f..10639c9 100644 --- a/include/boost/sort/spreadsort/detail/string_sort.hpp +++ b/include/boost/sort/spreadsort/detail/string_sort.hpp @@ -79,7 +79,7 @@ namespace spreadsort { template<class RandomAccessIter, class Get_char, class Get_length> inline void update_offset(RandomAccessIter first, RandomAccessIter finish, - size_t &char_offset, Get_char getchar, Get_length length) + size_t &char_offset, Get_char get_character, Get_length length) { size_t nextOffset = char_offset; while (true) { @@ -88,7 +88,7 @@ namespace spreadsort { //ignore empties, but if the nextOffset would exceed the length or //not match, exit; we've found the last matching character if (length(*curr) > char_offset && (length(*curr) <= (nextOffset + 1) - || getchar((*curr), nextOffset) != getchar((*first), nextOffset))) { + || get_character((*curr), nextOffset) != get_character((*first), nextOffset))) { char_offset = nextOffset; return; } @@ -145,14 +145,14 @@ namespace spreadsort { { size_t minSize = (std::min)(length(x), length(y)); for (size_t u = fchar_offset; u < minSize; ++u) { - if (getchar(x, u) != getchar(y, u)) { - return getchar(x, u) < getchar(y, u); + if (get_character(x, u) != get_character(y, u)) { + return get_character(x, u) < get_character(y, u); } } return length(x) < length(y); } size_t fchar_offset; - Get_char getchar; + Get_char get_character; Get_length length; }; @@ -379,7 +379,7 @@ namespace spreadsort { string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector<RandomAccessIter> &bin_cache, unsigned cache_offset, size_t *bin_sizes, - Get_char getchar, Get_length length) + Get_char get_character, Get_length length) { typedef typename std::iterator_traits<RandomAccessIter>::value_type Data_type; @@ -394,7 +394,7 @@ namespace spreadsort { //Getting the last non-empty for (;length(*finish) <= char_offset; --finish); ++finish; - update_offset(first, finish, char_offset, getchar, length); + update_offset(first, finish, char_offset, get_character, length); const unsigned bin_count = (1 << (sizeof(Unsigned_char_type)*8)); //Equal worst-case of radix and comparison is when bin_count = n*log(n). @@ -410,7 +410,7 @@ namespace spreadsort { bin_sizes[0]++; } else - bin_sizes[getchar((*current), char_offset) + 1]++; + bin_sizes[get_character((*current), char_offset) + 1]++; } //Assign the bin positions bin_cache[cache_offset] = first; @@ -429,7 +429,7 @@ namespace spreadsort { ++current) { //empties belong in this bin while (length(*current) > char_offset) { - target_bin = bins + getchar((*current), char_offset); + target_bin = bins + get_character((*current), char_offset); iter_swap(current, (*target_bin)++); } } @@ -446,9 +446,9 @@ namespace spreadsort { for (RandomAccessIter current = *local_bin; current < next_bin_start; ++current) { //Swapping into place until the correct element has been swapped in - for (target_bin = bins + getchar((*current), char_offset); + for (target_bin = bins + get_character((*current), char_offset); target_bin != local_bin; - target_bin = bins + getchar((*current), char_offset)) + target_bin = bins + get_character((*current), char_offset)) iter_swap(current, (*target_bin)++); } *local_bin = next_bin_start; @@ -471,7 +471,7 @@ namespace spreadsort { else string_sort_rec<RandomAccessIter, Unsigned_char_type, Get_char, Get_length>(lastPos, bin_cache[u], char_offset + 1, bin_cache, - cache_end, bin_sizes, getchar, length); + cache_end, bin_sizes, get_character, length); } } @@ -482,7 +482,7 @@ namespace spreadsort { string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector<RandomAccessIter> &bin_cache, unsigned cache_offset, size_t *bin_sizes, - Get_char getchar, Get_length length, Compare comp) + Get_char get_character, Get_length length, Compare comp) { //This section makes handling of long identical substrings much faster //with a mild average performance impact. @@ -495,7 +495,7 @@ namespace spreadsort { //Getting the last non-empty for (;length(*finish) <= char_offset; --finish); ++finish; - update_offset(first, finish, char_offset, getchar, length); + update_offset(first, finish, char_offset, get_character, length); const unsigned bin_count = (1 << (sizeof(Unsigned_char_type)*8)); //Equal worst-case of radix and comparison is when bin_count = n*log(n). @@ -511,7 +511,7 @@ namespace spreadsort { bin_sizes[0]++; } else - bin_sizes[getchar((*current), char_offset) + 1]++; + bin_sizes[get_character((*current), char_offset) + 1]++; } //Assign the bin positions bin_cache[cache_offset] = first; @@ -530,7 +530,7 @@ namespace spreadsort { ++current) { //empties belong in this bin while (length(*current) > char_offset) { - target_bin = bins + getchar((*current), char_offset); + target_bin = bins + get_character((*current), char_offset); iter_swap(current, (*target_bin)++); } } @@ -547,9 +547,9 @@ namespace spreadsort { for (RandomAccessIter current = *local_bin; current < next_bin_start; ++current) { //Swapping into place until the correct element has been swapped in - for (target_bin = bins + getchar((*current), char_offset); + for (target_bin = bins + get_character((*current), char_offset); target_bin != local_bin; - target_bin = bins + getchar((*current), char_offset)) + target_bin = bins + get_character((*current), char_offset)) iter_swap(current, (*target_bin)++); } *local_bin = next_bin_start; @@ -572,7 +572,7 @@ namespace spreadsort { string_sort_rec<RandomAccessIter, Unsigned_char_type, Get_char, Get_length, Compare> (lastPos, bin_cache[u], char_offset + 1, bin_cache, cache_end, - bin_sizes, getchar, length, comp); + bin_sizes, get_character, length, comp); } } @@ -583,7 +583,7 @@ namespace spreadsort { reverse_string_sort_rec(RandomAccessIter first, RandomAccessIter last, size_t char_offset, std::vector<RandomAccessIter> &bin_cache, unsigned cache_offset, size_t *bin_sizes, - Get_char getchar, Get_length length, Compare comp) + Get_char get_character, Get_length length, Compare comp) { //This section makes handling of long identical substrings much faster //with a mild average performance impact. @@ -598,7 +598,7 @@ namespace spreadsort { ++last; //Offsetting on identical characters. This section works //a character at a time for optimal worst-case performance. - update_offset(curr, last, char_offset, getchar, length); + update_offset(curr, last, char_offset, get_character, length); const unsigned bin_count = (1 << (sizeof(Unsigned_char_type)*8)); //Equal worst-case of radix and comparison is when bin_count = n*log(n). @@ -616,7 +616,7 @@ namespace spreadsort { bin_sizes[bin_count]++; } else - bin_sizes[max_bin - getchar((*current), char_offset)]++; + bin_sizes[max_bin - get_character((*current), char_offset)]++; } //Assign the bin positions bin_cache[cache_offset] = first; @@ -635,7 +635,7 @@ namespace spreadsort { ++current) { //empties belong in this bin while (length(*current) > char_offset) { - target_bin = end_bin - getchar((*current), char_offset); + target_bin = end_bin - get_character((*current), char_offset); iter_swap(current, (*target_bin)++); } } @@ -653,9 +653,9 @@ namespace spreadsort { for (RandomAccessIter current = *local_bin; current < next_bin_start; ++current) { //Swapping into place until the correct element has been swapped in - for (target_bin = end_bin - getchar((*current), char_offset); + for (target_bin = end_bin - get_character((*current), char_offset); target_bin != local_bin; - target_bin = end_bin - getchar((*current), char_offset)) + target_bin = end_bin - get_character((*current), char_offset)) iter_swap(current, (*target_bin)++); } *local_bin = next_bin_start; @@ -677,7 +677,7 @@ namespace spreadsort { reverse_string_sort_rec<RandomAccessIter, Unsigned_char_type, Get_char, Get_length, Compare> (lastPos, bin_cache[u], char_offset + 1, bin_cache, cache_end, - bin_sizes, getchar, length, comp); + bin_sizes, get_character, length, comp); } } @@ -737,12 +737,12 @@ namespace spreadsort { inline typename boost::enable_if_c< sizeof(Unsigned_char_type) <= 2, void >::type string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length, Unsigned_char_type) + Get_char get_character, Get_length length, Unsigned_char_type) { size_t bin_sizes[(1 << (8 * sizeof(Unsigned_char_type))) + 1]; std::vector<RandomAccessIter> bin_cache; string_sort_rec<RandomAccessIter, Unsigned_char_type, Get_char, - Get_length>(first, last, 0, bin_cache, 0, bin_sizes, getchar, length); + Get_length>(first, last, 0, bin_cache, 0, bin_sizes, get_character, length); } template <class RandomAccessIter, class Get_char, class Get_length, @@ -750,7 +750,7 @@ namespace spreadsort { inline typename boost::disable_if_c< sizeof(Unsigned_char_type) <= 2, void >::type string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length, Unsigned_char_type) + Get_char get_character, Get_length length, Unsigned_char_type) { //Warning that we're using std::sort, even though string_sort was called BOOST_STATIC_WARNING( sizeof(Unsigned_char_type) <= 2 ); @@ -763,13 +763,13 @@ namespace spreadsort { inline typename boost::enable_if_c< sizeof(Unsigned_char_type) <= 2, void >::type string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length, Compare comp, Unsigned_char_type) + Get_char get_character, Get_length length, Compare comp, Unsigned_char_type) { size_t bin_sizes[(1 << (8 * sizeof(Unsigned_char_type))) + 1]; std::vector<RandomAccessIter> bin_cache; string_sort_rec<RandomAccessIter, Unsigned_char_type, Get_char , Get_length, Compare> - (first, last, 0, bin_cache, 0, bin_sizes, getchar, length, comp); + (first, last, 0, bin_cache, 0, bin_sizes, get_character, length, comp); } //disable_if_c was refusing to compile, so rewrote to use enable_if_c @@ -778,7 +778,7 @@ namespace spreadsort { inline typename boost::enable_if_c< (sizeof(Unsigned_char_type) > 2), void >::type string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length, Compare comp, Unsigned_char_type) + Get_char get_character, Get_length length, Compare comp, Unsigned_char_type) { //Warning that we're using std::sort, even though string_sort was called BOOST_STATIC_WARNING( sizeof(Unsigned_char_type) <= 2 ); @@ -791,13 +791,13 @@ namespace spreadsort { inline typename boost::enable_if_c< sizeof(Unsigned_char_type) <= 2, void >::type reverse_string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length, Compare comp, Unsigned_char_type) + Get_char get_character, Get_length length, Compare comp, Unsigned_char_type) { size_t bin_sizes[(1 << (8 * sizeof(Unsigned_char_type))) + 1]; std::vector<RandomAccessIter> bin_cache; reverse_string_sort_rec<RandomAccessIter, Unsigned_char_type, Get_char, Get_length, Compare> - (first, last, 0, bin_cache, 0, bin_sizes, getchar, length, comp); + (first, last, 0, bin_cache, 0, bin_sizes, get_character, length, comp); } template <class RandomAccessIter, class Get_char, class Get_length, @@ -805,7 +805,7 @@ namespace spreadsort { inline typename boost::disable_if_c< sizeof(Unsigned_char_type) <= 2, void >::type reverse_string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length, Compare comp, Unsigned_char_type) + Get_char get_character, Get_length length, Compare comp, Unsigned_char_type) { //Warning that we're using std::sort, even though string_sort was called BOOST_STATIC_WARNING( sizeof(Unsigned_char_type) <= 2 ); diff --git a/include/boost/sort/spreadsort/string_sort.hpp b/include/boost/sort/spreadsort/string_sort.hpp index e592304..490b7b2 100644 --- a/include/boost/sort/spreadsort/string_sort.hpp +++ b/include/boost/sort/spreadsort/string_sort.hpp @@ -419,7 +419,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n \param[in] first Iterator pointer to first element. \param[in] last Iterator pointing to one beyond the end of data. - \param[in] getchar Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. + \param[in] get_character Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. \param[in] length Functor to get the length of the string in characters. \pre [@c first, @c last) is a valid range. @@ -448,7 +448,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n */ template <class RandomAccessIter, class Get_char, class Get_length> inline void string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length) + Get_char get_character, Get_length length) { //Don't sort if it's too small to optimize if (last - first < detail::min_sort_size) @@ -460,7 +460,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n if (++first == last) return; } - detail::string_sort(first, last, getchar, length, getchar((*first), 0)); + detail::string_sort(first, last, get_character, length, get_character((*first), 0)); } } @@ -479,7 +479,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n <a href="../../doc/graph/osx_string_sort.htm"> osx_string_sort</a> \param[in] range Range [first, last) for sorting. - \param[in] getchar Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. + \param[in] get_character Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. \param[in] length Functor to get the length of the string in characters. \pre [@c first, @c last) is a valid range. @@ -503,9 +503,9 @@ Some performance plots of runtime vs. n and log(range) are provided:\n */ template <class Range, class Get_char, class Get_length> -inline void string_sort(Range& range, Get_char getchar, Get_length length) +inline void string_sort(Range& range, Get_char get_character, Get_length length) { - string_sort(boost::begin(range), boost::end(range), getchar, length); + string_sort(boost::begin(range), boost::end(range), get_character, length); } @@ -526,7 +526,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n \param[in] first Iterator pointer to first element. \param[in] last Iterator pointing to one beyond the end of data. - \param[in] getchar Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. + \param[in] get_character Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. \param[in] length Functor to get the length of the string in characters. \param[in] comp A binary functor that returns whether the first element passed to it should go before the second in order. @@ -556,7 +556,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n template <class RandomAccessIter, class Get_char, class Get_length, class Compare> inline void string_sort(RandomAccessIter first, RandomAccessIter last, - Get_char getchar, Get_length length, Compare comp) + Get_char get_character, Get_length length, Compare comp) { //Don't sort if it's too small to optimize if (last - first < detail::min_sort_size) @@ -568,8 +568,8 @@ Some performance plots of runtime vs. n and log(range) are provided:\n if (++first == last) return; } - detail::string_sort(first, last, getchar, length, comp, - getchar((*first), 0)); + detail::string_sort(first, last, get_character, length, comp, + get_character((*first), 0)); } } @@ -589,7 +589,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n \param[in] range Range [first, last) for sorting. - \param[in] getchar Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. + \param[in] get_character Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. \param[in] length Functor to get the length of the string in characters. \param[in] comp A binary functor that returns whether the first element passed to it should go before the second in order. @@ -616,9 +616,9 @@ Some performance plots of runtime vs. n and log(range) are provided:\n */ template <class Range, class Get_char, class Get_length, class Compare> inline void string_sort(Range& range, - Get_char getchar, Get_length length, Compare comp) + Get_char get_character, Get_length length, Compare comp) { - string_sort(boost::begin(range), boost::end(range), getchar, length, comp); + string_sort(boost::begin(range), boost::end(range), get_character, length, comp); } /*! \brief Reverse String sort algorithm using random access iterators. @@ -638,7 +638,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n \param[in] first Iterator pointer to first element. \param[in] last Iterator pointing to one beyond the end of data. - \param[in] getchar Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. + \param[in] get_character Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. \param[in] length Functor to get the length of the string in characters. \param[in] comp A binary functor that returns whether the first element passed to it should go before the second in order. @@ -668,7 +668,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n template <class RandomAccessIter, class Get_char, class Get_length, class Compare> inline void reverse_string_sort(RandomAccessIter first, - RandomAccessIter last, Get_char getchar, Get_length length, Compare comp) + RandomAccessIter last, Get_char get_character, Get_length length, Compare comp) { //Don't sort if it's too small to optimize if (last - first < detail::min_sort_size) @@ -682,8 +682,8 @@ Some performance plots of runtime vs. n and log(range) are provided:\n return; } //making last just after the end of the non-empty part of the array - detail::reverse_string_sort(first, last + 1, getchar, length, comp, - getchar((*last), 0)); + detail::reverse_string_sort(first, last + 1, get_character, length, comp, + get_character((*last), 0)); } } @@ -703,7 +703,7 @@ Some performance plots of runtime vs. n and log(range) are provided:\n \param[in] range Range [first, last) for sorting. - \param[in] getchar Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. + \param[in] get_character Bracket functor equivalent to @c operator[], taking a number corresponding to the character offset. \param[in] length Functor to get the length of the string in characters. \param[in] comp A binary functor that returns whether the first element passed to it should go before the second in order. @@ -730,9 +730,9 @@ Some performance plots of runtime vs. n and log(range) are provided:\n */ template <class Range, class Get_char, class Get_length, class Compare> -inline void reverse_string_sort(Range& range, Get_char getchar, Get_length length, Compare comp) +inline void reverse_string_sort(Range& range, Get_char get_character, Get_length length, Compare comp) { - reverse_string_sort(boost::begin(range), boost::end(range), getchar, length, comp); + reverse_string_sort(boost::begin(range), boost::end(range), get_character, length, comp); } } }