Bolt  1.1
C++ template library with support for OpenCL
scan.h
Go to the documentation of this file.
1 /***************************************************************************
2 * Copyright 2012 - 2013 Advanced Micro Devices, Inc.
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 /******************************************************************************
19  * OpenCL Scan
20  *****************************************************************************/
21 
22 #if !defined( BOLT_CL_SCAN_H )
23 #define BOLT_CL_SCAN_H
24 #pragma once
25 
26 #include <bolt/cl/bolt.h>
27 #include <bolt/cl/functional.h>
28 #include <bolt/cl/device_vector.h>
29 
30 
36 namespace bolt
37 {
38 namespace cl
39 {
40 
80 template< typename InputIterator, typename OutputIterator >
81 OutputIterator
82  inclusive_scan( control &ctl, InputIterator first, InputIterator last,
83  OutputIterator result, const std::string& user_code="" );
84 
85 template< typename InputIterator, typename OutputIterator >
86 OutputIterator
88  InputIterator first,
89  InputIterator last,
90  OutputIterator result,
91  const std::string& user_code="" );
92 
93 
94 
121 template< typename InputIterator, typename OutputIterator, typename BinaryFunction >
122 OutputIterator inclusive_scan( control &ctl, InputIterator first, InputIterator last,
123  OutputIterator result, BinaryFunction binary_op, const std::string& user_code="" );
124 
125 template< typename InputIterator, typename OutputIterator, typename BinaryFunction >
126 OutputIterator
128  InputIterator first,
129  InputIterator last,
130  OutputIterator result,
131  BinaryFunction binary_op,
132  const std::string& user_code="" );
133 
134 
159 template< typename InputIterator, typename OutputIterator >
160 OutputIterator
161  exclusive_scan( control& ctl, InputIterator first, InputIterator last,
162  OutputIterator result, const std::string& user_code="" );
163 
164 template< typename InputIterator, typename OutputIterator >
165 OutputIterator
166  exclusive_scan( InputIterator first, InputIterator last, OutputIterator result,
167  const std::string& user_code="" );
168 
169 
198 template< typename InputIterator, typename OutputIterator, typename T >
199 OutputIterator
200  exclusive_scan( control& ctl, InputIterator first, InputIterator last, OutputIterator result, T init,
201  const std::string& user_code="" );
202 
203 template< typename InputIterator, typename OutputIterator, typename T >
204 OutputIterator
205  exclusive_scan( InputIterator first, InputIterator last, OutputIterator result, T init,
206  const std::string& user_code="" );
207 
237 template< typename InputIterator, typename OutputIterator, typename T, typename BinaryFunction >
238 OutputIterator
239  exclusive_scan( control &ctl, InputIterator first, InputIterator last,
240  OutputIterator result, T init, BinaryFunction binary_op, const std::string& user_code="" );
241 
242 template< typename InputIterator, typename OutputIterator, typename T, typename BinaryFunction >
243 OutputIterator
244  exclusive_scan( InputIterator first, InputIterator last, OutputIterator result, T init, BinaryFunction binary_op,
245  const std::string& user_code="" );
246 
247 
249 }// end of bolt::cl namespace
250 }// end of bolt namespace
251 
252 #include <bolt/cl/detail/scan.inl>
253 
254 #endif // BOLT_CL_SCAN_H