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_CL_SCAN_BY_KEY_H )
19 #define BOLT_CL_SCAN_BY_KEY_H
20 #pragma once
21 
22 #include "bolt/cl/device_vector.h"
23 
24 
28 namespace bolt
29 {
30 namespace cl
31 {
32 
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 
154 template<
155  typename InputIterator1,
156  typename InputIterator2,
157  typename OutputIterator,
158  typename BinaryPredicate>
159 OutputIterator
161  control &ctl,
162  InputIterator1 first1,
163  InputIterator1 last1,
164  InputIterator2 first2,
165  OutputIterator result,
166  BinaryPredicate binary_pred,
167  const std::string& user_code="" );
168 
169 template<
170  typename InputIterator1,
171  typename InputIterator2,
172  typename OutputIterator,
173  typename BinaryPredicate>
174 OutputIterator
176  InputIterator1 first1,
177  InputIterator1 last1,
178  InputIterator2 first2,
179  OutputIterator result,
180  BinaryPredicate binary_pred,
181  const std::string& user_code="" );
182 
183 
184 
230 template<
231  typename InputIterator1,
232  typename InputIterator2,
233  typename OutputIterator,
234  typename BinaryPredicate,
235  typename BinaryFunction>
236 OutputIterator
238  control &ctl,
239  InputIterator1 first1,
240  InputIterator1 last1,
241  InputIterator2 first2,
242  OutputIterator result,
243  BinaryPredicate binary_pred,
244  BinaryFunction binary_funct,
245  const std::string& user_code="" );
246 
247 
248 template<
249  typename InputIterator1,
250  typename InputIterator2,
251  typename OutputIterator,
252  typename BinaryPredicate,
253  typename BinaryFunction>
254 OutputIterator
256  InputIterator1 first1,
257  InputIterator1 last1,
258  InputIterator2 first2,
259  OutputIterator result,
260  BinaryPredicate binary_pred,
261  BinaryFunction binary_funct,
262  const std::string& user_code="" );
263 
264 
265 /***********************************************************************************************************************
266  * Exclusive Segmented Scan
267  **********************************************************************************************************************/
268 
308 template<
309  typename InputIterator1,
310  typename InputIterator2,
311  typename OutputIterator>
312 OutputIterator
314  control &ctl,
315  InputIterator1 first1,
316  InputIterator1 last1,
317  InputIterator2 first2,
318  OutputIterator result,
319  const std::string& user_code="" );
320 
321 template<
322  typename InputIterator1,
323  typename InputIterator2,
324  typename OutputIterator>
325 OutputIterator
327  InputIterator1 first1,
328  InputIterator1 last1,
329  InputIterator2 first2,
330  OutputIterator result,
331  const std::string& user_code="" );
332 
333 
334 
376 template<
377  typename InputIterator1,
378  typename InputIterator2,
379  typename OutputIterator,
380  typename T>
381 OutputIterator
383  control &ctl,
384  InputIterator1 first1,
385  InputIterator1 last1,
386  InputIterator2 first2,
387  OutputIterator result,
388  T init,
389  const std::string& user_code="" );
390 
391 template<
392  typename InputIterator1,
393  typename InputIterator2,
394  typename OutputIterator,
395  typename T>
396 OutputIterator
398  InputIterator1 first1,
399  InputIterator1 last1,
400  InputIterator2 first2,
401  OutputIterator result,
402  T init,
403  const std::string& user_code="" );
404 
405 
406 
451 template<
452  typename InputIterator1,
453  typename InputIterator2,
454  typename OutputIterator,
455  typename T,
456  typename BinaryPredicate>
457 OutputIterator
459  control &ctl,
460  InputIterator1 first1,
461  InputIterator1 last1,
462  InputIterator2 first2,
463  OutputIterator result,
464  T init,
465  BinaryPredicate binary_pred,
466  const std::string& user_code="" );
467 
468 template<
469  typename InputIterator1,
470  typename InputIterator2,
471  typename OutputIterator,
472  typename T,
473  typename BinaryPredicate>
474 OutputIterator
476  InputIterator1 first1,
477  InputIterator1 last1,
478  InputIterator2 first2,
479  OutputIterator result,
480  T init,
481  BinaryPredicate binary_pred,
482  const std::string& user_code="" );
483 
484 
532 template<
533  typename InputIterator1,
534  typename InputIterator2,
535  typename OutputIterator,
536  typename T,
537  typename BinaryPredicate,
538  typename BinaryFunction>
539 OutputIterator
541  control &ctl,
542  InputIterator1 first1,
543  InputIterator1 last1,
544  InputIterator2 first2,
545  OutputIterator result,
546  T init,
547  BinaryPredicate binary_pred,
548  BinaryFunction binary_funct,
549  const std::string& user_code="" );
550 
551 template<
552  typename InputIterator1,
553  typename InputIterator2,
554  typename OutputIterator,
555  typename T,
556  typename BinaryPredicate,
557  typename BinaryFunction>
558 OutputIterator
560  InputIterator1 first1,
561  InputIterator1 last1,
562  InputIterator2 first2,
563  OutputIterator result,
564  T init,
565  BinaryPredicate binary_pred,
566  BinaryFunction binary_funct,
567  const std::string& user_code="" );
568 
569 
571 }// end of bolt::cl namespace
572 }// end of bolt namespace
573 
574 #include <bolt/cl/detail/scan_by_key.inl>
575 
576 #endif