33 #ifndef _GLIBCXX_PARALLEL_FOR_EACH_SELECTORS_H
34 #define _GLIBCXX_PARALLEL_FOR_EACH_SELECTORS_H 1
38 namespace __gnu_parallel
41 template<
typename _It>
51 template<
typename _It>
57 template<
typename _Op>
67 template<
typename _It>
73 template<
typename _Op>
83 template<
typename _It>
89 template<
typename _ValueType>
99 template<
typename _It>
105 template<
typename _Op>
109 *__i.second = __o(*__i.first);
115 template<
typename _It>
121 template<
typename _Op>
125 *__i._M_third = __o(*__i._M_first, *__i._M_second);
131 template<
typename _It,
typename _Tp>
155 template<
typename _It,
typename _Op,
typename _Tp>
179 template<
typename _It,
typename _Diff>
186 template<
typename _ValueType>
189 {
return (__v == *__i) ? 1 : 0; }
193 template<
typename _It,
typename _Diff>
200 template<
typename _Op>
203 {
return (__o(*__i)) ? 1 : 0; }
207 template<
typename _It>
214 template<
typename _Op>
215 typename std::iterator_traits<_It>::value_type
221 template<
typename _It,
typename _It2,
typename _Tp>
241 template<
typename _Op>
245 typename std::iterator_traits<_It>::difference_type __position
252 template<
typename _It>
259 template<
typename _Op>
268 template<
typename _It>
272 template<
typename _Op>
276 typename _It::first_type __go_back_one = __i.first;
278 *__i.second = __o(*__i.first, *__go_back_one);
292 template<
typename _It>
306 template<
typename _Compare,
typename _It>
316 {
return (
__comp(*__x, *__y)) ? __x : __y; }
320 template<
typename _Compare,
typename _It>
330 {
return (
__comp(*__x, *__y)) ? __y : __x; }
334 template<
typename _BinOp>
342 template<
typename _Result,
typename _Addend>
bool operator()(_Tp &__v, _It __i)
Functor execution.
Definition: for_each_selectors.h:146
__accumulate_binop_reduct(_BinOp &__b)
Definition: for_each_selectors.h:340
_Tp operator()(_Op __mult, _It __current)
Functor execution.
Definition: for_each_selectors.h:243
__inner_product_selector(_It __b1, _It2 __b2)
Constructor.
Definition: for_each_selectors.h:234
_Compare & __comp
Definition: for_each_selectors.h:323
void operator()(_It __i)
Functor execution.
Definition: for_each_selectors.h:294
Reduction for finding the maximum element, using a comparator.
Definition: for_each_selectors.h:321
_Diff operator()(_Op &__o, _It __i)
Functor execution.
Definition: for_each_selectors.h:202
_It2 __begin2_iterator
Begin iterator of second sequence.
Definition: for_each_selectors.h:228
const _Tp & __new_val
Value to replace with.
Definition: for_each_selectors.h:159
bool operator()(_Op &__o, _It __i)
Functor execution.
Definition: for_each_selectors.h:75
_Diff operator()(_ValueType &__v, _It __i)
Functor execution.
Definition: for_each_selectors.h:188
__replace_if_selector(const _Tp &__new_val)
Constructor.
Definition: for_each_selectors.h:164
bool operator()(bool, bool) const
Definition: for_each_selectors.h:301
Generic __selector for embarrassingly parallel functions.
Definition: for_each_selectors.h:42
_It __begin1_iterator
Begin iterator of first sequence.
Definition: for_each_selectors.h:225
std::replace() selector.
Definition: for_each_selectors.h:156
std::inner_product() selector.
Definition: for_each_selectors.h:222
Reduction for finding the maximum element, using a comparator.
Definition: for_each_selectors.h:307
Functor doing nothing.
Definition: for_each_selectors.h:288
_Compare & __comp
Definition: for_each_selectors.h:309
__min_element_reduct(_Compare &__c)
Definition: for_each_selectors.h:312
Selector that just returns the passed iterator.
Definition: for_each_selectors.h:253
bool operator()(_Op &__o, _It __i)
Functor execution.
Definition: for_each_selectors.h:59
bool operator()(_Op &__o, _It __i)
Functor execution.
Definition: for_each_selectors.h:170
__max_element_reduct(_Compare &__c)
Definition: for_each_selectors.h:326
Includes the original header files concerned with iterators except for stream iterators. This file is a GNU parallel extension to the Standard C++ Library.
_It operator()(_It __x, _It __y)
Definition: for_each_selectors.h:315
__replace_selector(const _Tp &__new_val)
Constructor.
Definition: for_each_selectors.h:140
std::count() selector.
Definition: for_each_selectors.h:180
bool operator()(_ValueType &__v, _It __i)
Functor execution.
Definition: for_each_selectors.h:91
_It operator()(_It __x, _It __y)
Definition: for_each_selectors.h:329
_It _M_finish_iterator
_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).
Definition: for_each_selectors.h:47
const _Tp & __new_val
Value to replace with.
Definition: for_each_selectors.h:135
std::fill() selector.
Definition: for_each_selectors.h:84
bool operator()(_Op &__o, _It __i)
Definition: for_each_selectors.h:274
std::replace() selector.
Definition: for_each_selectors.h:132
std::accumulate() selector.
Definition: for_each_selectors.h:208
std::for_each() selector.
Definition: for_each_selectors.h:52
std::count_if () selector.
Definition: for_each_selectors.h:194
_Result operator()(const _Result &__x, const _Addend &__y)
Definition: for_each_selectors.h:344
_It operator()(_Op __o, _It __i)
Functor execution.
Definition: for_each_selectors.h:261
General reduction, using a binary operator.
Definition: for_each_selectors.h:335
std::iterator_traits< _It >::value_type operator()(_Op __o, _It __i)
Functor execution.
Definition: for_each_selectors.h:216
_BinOp & __binop
Definition: for_each_selectors.h:337
std::generate() selector.
Definition: for_each_selectors.h:68
Selector that returns the difference between two adjacent __elements.
Definition: for_each_selectors.h:269
Reduction function doing nothing.
Definition: for_each_selectors.h:298