32 #ifndef _GLIBCXX_PARALLEL_SORT_H
33 #define _GLIBCXX_PARALLEL_SORT_H 1
39 #if _GLIBCXX_ASSERTIONS
43 #if _GLIBCXX_MERGESORT
47 #if _GLIBCXX_QUICKSORT
51 #if _GLIBCXX_BAL_QUICKSORT
55 namespace __gnu_parallel
58 template<
bool __stable,
typename _RAIter,
61 __parallel_sort(_RAIter __begin, _RAIter __end,
72 template<
bool __stable,
typename _RAIter,
typename _Compare>
74 __parallel_sort(_RAIter __begin, _RAIter __end,
80 parallel_sort_mwms<__stable, true>
83 parallel_sort_mwms<__stable, false>
95 template<
bool __stable,
typename _RAIter,
typename _Compare>
97 __parallel_sort(_RAIter __begin, _RAIter __end,
103 parallel_sort_mwms<__stable, true>
115 template<
bool __stable,
typename _RAIter,
typename _Compare>
117 __parallel_sort(_RAIter __begin, _RAIter __end,
123 parallel_sort_mwms<__stable, false>
134 template<
bool __stable,
typename _RAIter,
typename _Compare>
136 __parallel_sort(_RAIter __begin, _RAIter __end,
141 _GLIBCXX_PARALLEL_ASSERT(__stable ==
false);
155 template<
bool __stable,
typename _RAIter,
typename _Compare>
157 __parallel_sort(_RAIter __begin, _RAIter __end,
162 _GLIBCXX_PARALLEL_ASSERT(__stable ==
false);
176 template<
bool __stable,
typename _RAIter,
typename _Compare>
178 __parallel_sort(_RAIter __begin, _RAIter __end,
183 __parallel_sort<__stable>
184 (__begin, __end, __comp,
196 template<
bool __stable,
typename _RAIter,
typename _Compare>
198 __parallel_sort(_RAIter __begin, _RAIter __end,
202 typedef std::iterator_traits<_RAIter> _TraitsType;
203 typedef typename _TraitsType::value_type _ValueType;
204 typedef typename _TraitsType::difference_type _DifferenceType;
207 #if _GLIBCXX_MERGESORT
211 parallel_sort_mwms<__stable, true>
214 parallel_sort_mwms<false, false>
218 #if _GLIBCXX_QUICKSORT
223 #if _GLIBCXX_BAL_QUICKSORT
229 __gnu_sequential::sort(__begin, __end, __comp);