29#ifndef _GLIBCXX_PARALLEL_NUMERICFWD_H
30#define _GLIBCXX_PARALLEL_NUMERICFWD_H 1
33#pragma GCC system_header
39namespace std _GLIBCXX_VISIBILITY(default)
43 template<
typename _IIter,
typename _Tp>
45 accumulate(_IIter, _IIter, _Tp);
47 template<
typename _IIter,
typename _Tp>
49 accumulate(_IIter, _IIter, _Tp, __gnu_parallel::sequential_tag);
51 template<
typename _IIter,
typename _Tp>
55 template<
typename _IIter,
typename _Tp,
typename _Tag>
57 __accumulate_switch(_IIter, _IIter, _Tp, _Tag);
59 template<
typename _IIter,
typename _Tp,
typename _BinaryOper>
61 accumulate(_IIter, _IIter, _Tp, _BinaryOper);
63 template<
typename _IIter,
typename _Tp,
typename _BinaryOper>
65 accumulate(_IIter, _IIter, _Tp, _BinaryOper,
66 __gnu_parallel::sequential_tag);
68 template<
typename _IIter,
typename _Tp,
typename _BinaryOper>
70 accumulate(_IIter, _IIter, _Tp, _BinaryOper,
73 template<
typename _IIter,
typename _Tp,
typename _BinaryOper,
76 __accumulate_switch(_IIter, _IIter, _Tp, _BinaryOper, _Tag);
78 template<
typename _RAIter,
typename _Tp,
typename _BinaryOper>
80 __accumulate_switch(_RAIter, _RAIter, _Tp, _BinaryOper,
81 random_access_iterator_tag,
85 template<
typename _IIter,
typename _OIter>
87 adjacent_difference(_IIter, _IIter, _OIter);
89 template<
typename _IIter,
typename _OIter,
typename _BinaryOper>
91 adjacent_difference(_IIter, _IIter, _OIter, _BinaryOper);
93 template<
typename _IIter,
typename _OIter>
95 adjacent_difference(_IIter, _IIter, _OIter,
96 __gnu_parallel::sequential_tag);
98 template<
typename _IIter,
typename _OIter,
typename _BinaryOper>
100 adjacent_difference(_IIter, _IIter, _OIter, _BinaryOper,
101 __gnu_parallel::sequential_tag);
103 template<
typename _IIter,
typename _OIter>
105 adjacent_difference(_IIter, _IIter, _OIter,
108 template<
typename _IIter,
typename _OIter,
typename _BinaryOper>
110 adjacent_difference(_IIter, _IIter, _OIter, _BinaryOper,
113 template<
typename _IIter,
typename _OIter,
typename _BinaryOper,
114 typename _Tag1,
typename _Tag2>
116 __adjacent_difference_switch(_IIter, _IIter, _OIter, _BinaryOper,
119 template<
typename _IIter,
typename _OIter,
typename _BinaryOper>
121 __adjacent_difference_switch(_IIter, _IIter, _OIter, _BinaryOper,
122 random_access_iterator_tag,
123 random_access_iterator_tag,
127 template<
typename _IIter1,
typename _IIter2,
typename _Tp>
129 inner_product(_IIter1, _IIter1, _IIter2, _Tp);
131 template<
typename _IIter1,
typename _IIter2,
typename _Tp>
133 inner_product(_IIter1, _IIter1, _IIter2, _Tp,
134 __gnu_parallel::sequential_tag);
136 template<
typename _IIter1,
typename _IIter2,
typename _Tp>
138 inner_product(_IIter1, _IIter1, _IIter2, _Tp,
141 template<
typename _IIter1,
typename _IIter2,
typename _Tp,
142 typename _BinaryFunction1,
typename _BinaryFunction2>
144 inner_product(_IIter1, _IIter1, _IIter2, _Tp,
145 _BinaryFunction1, _BinaryFunction2);
147 template<
typename _IIter1,
typename _IIter2,
typename _Tp,
148 typename _BinaryFunction1,
typename _BinaryFunction2>
150 inner_product(_IIter1, _IIter1, _IIter2, _Tp, _BinaryFunction1,
151 _BinaryFunction2, __gnu_parallel::sequential_tag);
153 template<
typename _IIter1,
typename _IIter2,
typename _Tp,
154 typename _BinaryFunction1,
typename _BinaryFunction2>
156 inner_product(_IIter1, _IIter1, _IIter2, _Tp, _BinaryFunction1,
159 template<
typename _RAIter1,
typename _RAIter2,
typename _Tp,
160 typename _BinaryFunction1,
typename _BinaryFunction2>
162 __inner_product_switch(_RAIter1, _RAIter1, _RAIter2, _Tp, _BinaryFunction1,
163 _BinaryFunction2, random_access_iterator_tag,
164 random_access_iterator_tag,
168 template<
typename _IIter1,
typename _IIter2,
typename _Tp,
169 typename _BinaryFunction1,
typename _BinaryFunction2,
170 typename _Tag1,
typename _Tag2>
172 __inner_product_switch(_IIter1, _IIter1, _IIter2, _Tp, _BinaryFunction1,
173 _BinaryFunction2, _Tag1, _Tag2);
176 template<
typename _IIter,
typename _OIter>
178 partial_sum(_IIter, _IIter, _OIter, __gnu_parallel::sequential_tag);
180 template<
typename _IIter,
typename _OIter,
typename _BinaryOper>
182 partial_sum(_IIter, _IIter, _OIter, _BinaryOper,
183 __gnu_parallel::sequential_tag);
185 template<
typename _IIter,
typename _OIter>
187 partial_sum(_IIter, _IIter, _OIter __result);
189 template<
typename _IIter,
typename _OIter,
typename _BinaryOper>
191 partial_sum(_IIter, _IIter, _OIter, _BinaryOper);
193 template<
typename _IIter,
typename _OIter,
typename _BinaryOper,
194 typename _Tag1,
typename _Tag2>
196 __partial_sum_switch(_IIter, _IIter, _OIter, _BinaryOper, _Tag1, _Tag2);
198 template<
typename _IIter,
typename _OIter,
typename _BinaryOper>
200 __partial_sum_switch(_IIter, _IIter, _OIter, _BinaryOper,
201 random_access_iterator_tag, random_access_iterator_tag);
Runtime settings and tuning parameters, heuristics to decide whether to use parallelized algorithms.
Tags for compile-time selection. This file is a GNU parallel extension to the Standard C++ Library.
ISO C++ entities toplevel namespace is std.
GNU parallel code, replaces standard behavior with parallel behavior.
_Parallelism
Run-time equivalents for the compile-time tags.
@ parallel_unbalanced
Parallel unbalanced (equal-sized chunks).