Bolt  1.3
C++ template library with support for OpenCL
scan_by_key.h
Go to the documentation of this file.
1 /***************************************************************************
2 * © 2012,2014 Advanced Micro Devices, Inc. All rights reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 
16 ***************************************************************************/
17 
18 #if !defined( BOLT_AMP_SCAN_BY_KEY_H )
19 #define BOLT_AMP_SCAN_BY_KEY_H
20 #pragma once
21 
22 #include <bolt/amp/bolt.h>
23 #include <bolt/amp/functional.h>
24 #include <bolt/amp/device_vector.h>
25 
29 namespace bolt
30 {
31 namespace amp
32 {
33 
86 template<
87  typename InputIterator1,
88  typename InputIterator2,
89  typename OutputIterator>
90 OutputIterator
92  control &ctl,
93  InputIterator1 first1,
94  InputIterator1 last1,
95  InputIterator2 first2,
96  OutputIterator result,
97  const std::string& user_code="" );
98 
99 template<
100  typename InputIterator1,
101  typename InputIterator2,
102  typename OutputIterator>
103 OutputIterator
105  InputIterator1 first1,
106  InputIterator1 last1,
107  InputIterator2 first2,
108  OutputIterator result,
109  const std::string& user_code="" );
110 
111 
153 template<
154  typename InputIterator1,
155  typename InputIterator2,
156  typename OutputIterator,
157  typename BinaryPredicate>
158 OutputIterator
160  control &ctl,
161  InputIterator1 first1,
162  InputIterator1 last1,
163  InputIterator2 first2,
164  OutputIterator result,
165  BinaryPredicate binary_pred,
166  const std::string& user_code="" );
167 
168 template<
169  typename InputIterator1,
170  typename InputIterator2,
171  typename OutputIterator,
172  typename BinaryPredicate>
173 OutputIterator
175  InputIterator1 first1,
176  InputIterator1 last1,
177  InputIterator2 first2,
178  OutputIterator result,
179  BinaryPredicate binary_pred,
180  const std::string& user_code="" );
181 
182 
183 
228 template<
229  typename InputIterator1,
230  typename InputIterator2,
231  typename OutputIterator,
232  typename BinaryPredicate,
233  typename BinaryFunction>
234 OutputIterator
236  control &ctl,
237  InputIterator1 first1,
238  InputIterator1 last1,
239  InputIterator2 first2,
240  OutputIterator result,
241  BinaryPredicate binary_pred,
242  BinaryFunction binary_funct,
243  const std::string& user_code="" );
244 
245 
246 template<
247  typename InputIterator1,
248  typename InputIterator2,
249  typename OutputIterator,
250  typename BinaryPredicate,
251  typename BinaryFunction>
252 OutputIterator
254  InputIterator1 first1,
255  InputIterator1 last1,
256  InputIterator2 first2,
257  OutputIterator result,
258  BinaryPredicate binary_pred,
259  BinaryFunction binary_funct,
260  const std::string& user_code="" );
261 
262 
263 /***********************************************************************************************************************
264  * Exclusive Segmented Scan
265  **********************************************************************************************************************/
266 
305 template<
306  typename InputIterator1,
307  typename InputIterator2,
308  typename OutputIterator>
309 OutputIterator
311  control &ctl,
312  InputIterator1 first1,
313  InputIterator1 last1,
314  InputIterator2 first2,
315  OutputIterator result,
316  const std::string& user_code="" );
317 
318 template<
319  typename InputIterator1,
320  typename InputIterator2,
321  typename OutputIterator>
322 OutputIterator
324  InputIterator1 first1,
325  InputIterator1 last1,
326  InputIterator2 first2,
327  OutputIterator result,
328  const std::string& user_code="" );
329 
330 
331 
372 template<
373  typename InputIterator1,
374  typename InputIterator2,
375  typename OutputIterator,
376  typename T>
377 OutputIterator
379  control &ctl,
380  InputIterator1 first1,
381  InputIterator1 last1,
382  InputIterator2 first2,
383  OutputIterator result,
384  T init,
385  const std::string& user_code="" );
386 
387 template<
388  typename InputIterator1,
389  typename InputIterator2,
390  typename OutputIterator,
391  typename T>
392 OutputIterator
394  InputIterator1 first1,
395  InputIterator1 last1,
396  InputIterator2 first2,
397  OutputIterator result,
398  T init,
399  const std::string& user_code="" );
400 
401 
402 
446 template<
447  typename InputIterator1,
448  typename InputIterator2,
449  typename OutputIterator,
450  typename T,
451  typename BinaryPredicate>
452 OutputIterator
454  control &ctl,
455  InputIterator1 first1,
456  InputIterator1 last1,
457  InputIterator2 first2,
458  OutputIterator result,
459  T init,
460  BinaryPredicate binary_pred,
461  const std::string& user_code="" );
462 
463 template<
464  typename InputIterator1,
465  typename InputIterator2,
466  typename OutputIterator,
467  typename T,
468  typename BinaryPredicate>
469 OutputIterator
471  InputIterator1 first1,
472  InputIterator1 last1,
473  InputIterator2 first2,
474  OutputIterator result,
475  T init,
476  BinaryPredicate binary_pred,
477  const std::string& user_code="" );
478 
479 
526 template<
527  typename InputIterator1,
528  typename InputIterator2,
529  typename OutputIterator,
530  typename T,
531  typename BinaryPredicate,
532  typename BinaryFunction>
533 OutputIterator
535  control &ctl,
536  InputIterator1 first1,
537  InputIterator1 last1,
538  InputIterator2 first2,
539  OutputIterator result,
540  T init,
541  BinaryPredicate binary_pred,
542  BinaryFunction binary_funct,
543  const std::string& user_code="" );
544 
545 template<
546  typename InputIterator1,
547  typename InputIterator2,
548  typename OutputIterator,
549  typename T,
550  typename BinaryPredicate,
551  typename BinaryFunction>
552 OutputIterator
554  InputIterator1 first1,
555  InputIterator1 last1,
556  InputIterator2 first2,
557  OutputIterator result,
558  T init,
559  BinaryPredicate binary_pred,
560  BinaryFunction binary_funct,
561  const std::string& user_code="" );
562 
563 
565 }// end of bolt::amp namespace
566 }// end of bolt namespace
567 
568 #include <bolt/amp/detail/scan_by_key.inl>
569 
570 #endif