diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 11 | ||||
-rw-r--r-- | libstdc++-v3/include/parallel/algo.h | 22 | ||||
-rw-r--r-- | libstdc++-v3/include/parallel/algobase.h | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/parallel/numeric | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/parallel/partial_sum.h | 3 |
5 files changed, 38 insertions, 15 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index dac1b8ef5cc..36e44c3e746 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,14 @@ +2010-03-22 Johannes Singler <singler@kit.edu> + + * include/parallel/numeric (inner_product, partial_sum): + Precede subsequent call with _GLIBCXX_STD_P:: to avoid ambiguity + between __gnu_parallel:: and std:: + * include/parallel/algobase.h (equal): Likewise. + * include/parallel/algo.h (find_first_of, search_n, merge, nth_element, + partial_sort, max_element, min_element): Likewise. + * include/parallel/partial_sum.h (__parallel_partial_sum_linear): + Qualify accumulate call with __gnu_parallel::. + 2010-03-22 Paolo Carlini <paolo.carlini@oracle.com> * include/parallel/base.h (_PseudoSequence): Do not forward declare. diff --git a/libstdc++-v3/include/parallel/algo.h b/libstdc++-v3/include/parallel/algo.h index aa87a48450a..cc2fc679bcf 100644 --- a/libstdc++-v3/include/parallel/algo.h +++ b/libstdc++-v3/include/parallel/algo.h @@ -292,8 +292,8 @@ namespace __parallel typedef typename _IIterTraits::value_type _IValueType; typedef typename iteratorf_traits::value_type _FValueType; - return find_first_of(__begin1, __end1, __begin2, __end2, __gnu_parallel:: - _EqualTo<_IValueType, _FValueType>()); + return _GLIBCXX_STD_P::find_first_of(__begin1, __end1, __begin2, __end2, + __gnu_parallel::_EqualTo<_IValueType, _FValueType>()); } // Sequential fallback @@ -1160,7 +1160,7 @@ namespace __parallel const _Tp& __val) { typedef typename iterator_traits<_FIterator>::value_type _ValueType; - return search_n(__begin, __end, __count, __val, + return _GLIBCXX_STD_P::search_n(__begin, __end, __count, __val, __gnu_parallel::_EqualTo<_ValueType, _Tp>()); } @@ -2086,8 +2086,8 @@ namespace __parallel typedef typename _Iterator1Traits::value_type _ValueType1; typedef typename _Iterator2Traits::value_type _ValueType2; - return merge(__begin1, __end1, __begin2, __end2, __result, - __gnu_parallel::_Less<_ValueType1, _ValueType2>()); + return _GLIBCXX_STD_P::merge(__begin1, __end1, __begin2, __end2, + __result, __gnu_parallel::_Less<_ValueType1, _ValueType2>()); } // Sequential fallback @@ -2128,7 +2128,8 @@ namespace __parallel { typedef iterator_traits<_RAIter> _TraitsType; typedef typename _TraitsType::value_type _ValueType; - nth_element(__begin, __nth, __end, std::less<_ValueType>()); + _GLIBCXX_STD_P::nth_element(__begin, __nth, __end, + std::less<_ValueType>()); } // Sequential fallback @@ -2170,7 +2171,8 @@ namespace __parallel { typedef iterator_traits<_RAIter> _TraitsType; typedef typename _TraitsType::value_type _ValueType; - partial_sort(__begin, __middle, __end, std::less<_ValueType>()); + _GLIBCXX_STD_P::partial_sort(__begin, __middle, __end, + std::less<_ValueType>()); } // Sequential fallback @@ -2239,7 +2241,8 @@ namespace __parallel max_element(_FIterator __begin, _FIterator __end) { typedef typename iterator_traits<_FIterator>::value_type _ValueType; - return max_element(__begin, __end, std::less<_ValueType>()); + return _GLIBCXX_STD_P::max_element(__begin, __end, + std::less<_ValueType>()); } // Public interface @@ -2330,7 +2333,8 @@ namespace __parallel min_element(_FIterator __begin, _FIterator __end) { typedef typename iterator_traits<_FIterator>::value_type _ValueType; - return min_element(__begin, __end, std::less<_ValueType>()); + return _GLIBCXX_STD_P::min_element(__begin, __end, + std::less<_ValueType>()); } // Public interface diff --git a/libstdc++-v3/include/parallel/algobase.h b/libstdc++-v3/include/parallel/algobase.h index df1c58bedb6..9cc81bd2aaa 100644 --- a/libstdc++-v3/include/parallel/algobase.h +++ b/libstdc++-v3/include/parallel/algobase.h @@ -141,14 +141,20 @@ namespace __parallel template<typename _IIter1, typename _IIter2> inline bool equal(_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2) - { return mismatch(__begin1, __end1, __begin2).first == __end1; } + { + return _GLIBCXX_STD_P::mismatch(__begin1, __end1, __begin2).first + == __end1; + } // Public interface template<typename _IIter1, typename _IIter2, typename _Predicate> inline bool equal(_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2, _Predicate __pred) - { return mismatch(__begin1, __end1, __begin2, __pred).first == __end1; } + { + return _GLIBCXX_STD_P::mismatch(__begin1, __end1, __begin2, __pred).first + == __end1; + } // Sequential fallback template<typename _IIter1, typename _IIter2> diff --git a/libstdc++-v3/include/parallel/numeric b/libstdc++-v3/include/parallel/numeric index 76916ff3ecb..7ba44d21e33 100644 --- a/libstdc++-v3/include/parallel/numeric +++ b/libstdc++-v3/include/parallel/numeric @@ -283,7 +283,7 @@ namespace __parallel typedef typename __gnu_parallel::_Multiplies<_ValueType1, _ValueType2>::result_type _MultipliesResultType; - return inner_product(__first1, __last1, __first2, __init, + return _GLIBCXX_STD_P::inner_product(__first1, __last1, __first2, __init, __gnu_parallel::_Plus<_Tp, _MultipliesResultType>(), __gnu_parallel:: _Multiplies<_ValueType1, _ValueType2>(), @@ -303,7 +303,7 @@ namespace __parallel typedef typename __gnu_parallel::_Multiplies<_ValueType1, _ValueType2>::result_type _MultipliesResultType; - return inner_product(__first1, __last1, __first2, __init, + return _GLIBCXX_STD_P::inner_product(__first1, __last1, __first2, __init, __gnu_parallel::_Plus<_Tp, _MultipliesResultType>(), __gnu_parallel:: _Multiplies<_ValueType1, _ValueType2>()); @@ -359,7 +359,8 @@ namespace __parallel partial_sum(_IIter __begin, _IIter __end, _OutputIterator __result) { typedef typename iterator_traits<_IIter>::value_type _ValueType; - return partial_sum(__begin, __end, __result, std::plus<_ValueType>()); + return _GLIBCXX_STD_P::partial_sum(__begin, __end, + __result, std::plus<_ValueType>()); } // Public interface diff --git a/libstdc++-v3/include/parallel/partial_sum.h b/libstdc++-v3/include/parallel/partial_sum.h index 487fd6dd666..966d9db0572 100644 --- a/libstdc++-v3/include/parallel/partial_sum.h +++ b/libstdc++-v3/include/parallel/partial_sum.h @@ -158,7 +158,8 @@ namespace __gnu_parallel else { ::new(&(__sums[__iam])) - _ValueType(std::accumulate(__begin + __borders[__iam] + 1, + _ValueType(__gnu_parallel::accumulate( + __begin + __borders[__iam] + 1, __begin + __borders[__iam + 1], *(__begin + __borders[__iam]), __bin_op, |