+2008-01-14 Paolo Carlini <pcarlini@suse.de>
+
+ * include/parallel/list_partition.h: Formatting fixes, inline tweaks.
+ * include/parallel/numeric: Likewise.
+ * include/parallel/balanced_quicksort.h: Likewise.
+ * include/parallel/unique_copy.h: Likewise.
+ * include/parallel/algobase.h: Likewise.
+ * include/parallel/algo.h: Likewise.
+
2008-01-14 Seongbae Park <seongbae.park@gmail.com>
* crossconfig.m4: Add missing header checks, C99 TR1 check,
// Parallel algorithm for random access iterators.
template<typename RandomAccessIterator, typename Size, typename Generator>
- RandomAccessIterator
+ inline RandomAccessIterator
generate_n_switch(RandomAccessIterator begin, Size n, Generator gen,
random_access_iterator_tag,
__gnu_parallel::parallelism parallelism_tag
// Sequential fallback
template<typename RandomAccessIterator>
- void
- partial_sort(RandomAccessIterator begin, RandomAccessIterator middle,
- RandomAccessIterator end, __gnu_parallel::sequential_tag)
- { _GLIBCXX_STD_P::partial_sort(begin, middle, end); }
+ inline void
+ partial_sort(RandomAccessIterator begin, RandomAccessIterator middle,
+ RandomAccessIterator end, __gnu_parallel::sequential_tag)
+ { _GLIBCXX_STD_P::partial_sort(begin, middle, end); }
// Public interface, parallel algorithm for random access iterators
template<typename RandomAccessIterator, typename _Compare>
} // end namespace
#endif /* _GLIBCXX_ALGORITHM_H */
-
// Sequential fallback
template<typename InputIterator1, typename InputIterator2>
inline pair<InputIterator1, InputIterator2>
- mismatch(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2,
+ mismatch(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2,
__gnu_parallel::sequential_tag)
{ return _GLIBCXX_STD_P::mismatch(begin1, end1, begin2); }
template<typename InputIterator1, typename InputIterator2,
typename Predicate>
inline pair<InputIterator1, InputIterator2>
- mismatch(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2,
+ mismatch(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2,
Predicate pred, __gnu_parallel::sequential_tag)
{ return _GLIBCXX_STD_P::mismatch(begin1, end1, begin2, pred); }
template<typename RandomAccessIterator1, typename RandomAccessIterator2,
typename Predicate>
pair<RandomAccessIterator1, RandomAccessIterator2>
- mismatch_switch(RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
+ mismatch_switch(RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
RandomAccessIterator2 begin2, Predicate pred,
random_access_iterator_tag, random_access_iterator_tag)
{
// Very unequal split, one part smaller than one 128th
// elements not strictly larger than the pivot.
__gnu_parallel::unary_negate<__gnu_parallel::binder1st
- <Comparator, value_type, value_type, bool>, value_type>
- pred(__gnu_parallel::binder1st
- <Comparator, value_type, value_type, bool>(comp,
- *pivot_pos));
+ <Comparator, value_type, value_type, bool>, value_type>
+ pred(__gnu_parallel::binder1st
+ <Comparator, value_type, value_type, bool>(comp,
+ *pivot_pos));
// Find other end of pivot-equal range.
split_pos2 = __gnu_sequential::partition(split_pos1 + 1,
{
// Right side larger.
if ((split_pos2) != end)
- tl.leftover_parts.push_front(std::make_pair(split_pos2, end));
+ tl.leftover_parts.push_front(std::make_pair(split_pos2,
+ end));
//current.first = begin; //already set anyway
current.second = split_pos1;
{
bool make_twice = false;
- // According to the oversampling factor, the resizing algorithm is chosen.
+ // The resizing algorithm is chosen according to the oversampling factor.
if (oversampling == 0)
{
make_twice = true;
template<typename InputIterator, typename T, typename BinaryOperation,
typename IteratorTag>
- T
+ inline T
accumulate_switch(InputIterator begin, InputIterator end, T init,
BinaryOperation binary_op, IteratorTag)
{ return accumulate(begin, end, init, binary_op,
OutputIterator result, BinaryOperation bin_op,
random_access_iterator_tag, random_access_iterator_tag)
{
- if (_GLIBCXX_PARALLEL_CONDITION(static_cast<__gnu_parallel::
- sequence_index_t>(end - begin)
- >= __gnu_parallel::Settings::
- partial_sum_minimal_n))
+ if (_GLIBCXX_PARALLEL_CONDITION(
+ static_cast<__gnu_parallel::sequence_index_t>(end - begin)
+ >= __gnu_parallel::Settings::partial_sum_minimal_n))
return __gnu_parallel::parallel_partial_sum(begin, end,
result, bin_op);
else
parallel_unique_copy(InputIterator first, InputIterator last,
OutputIterator result)
{
- typedef typename std::iterator_traits<InputIterator>::value_type value_type;
+ typedef typename std::iterator_traits<InputIterator>::value_type
+ value_type;
return parallel_unique_copy(first, last, result,
std::equal_to<value_type>());
}