Bolt  1.3
C++ template library with support for OpenCL
scan.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 /******************************************************************************
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/device_vector.h"
27 #include "bolt/cl/functional.h"
28 
29 
35 namespace bolt
36 {
37 namespace cl
38 {
39 
78 template< typename InputIterator,
79  typename OutputIterator >
80 OutputIterator
82  control &ctl,
83  InputIterator first,
84  InputIterator last,
85  OutputIterator result,
86  const std::string& user_code="" );
87 
88 template< typename InputIterator,
89  typename OutputIterator >
90 OutputIterator
92  InputIterator first,
93  InputIterator last,
94  OutputIterator result,
95  const std::string& user_code="" );
96 
97 
98 
125 template< typename InputIterator,
126  typename OutputIterator,
127  typename BinaryFunction >
128 OutputIterator
130  control &ctl,
131  InputIterator first,
132  InputIterator last,
133  OutputIterator result,
134  BinaryFunction binary_op,
135  const std::string& user_code="" );
136 
137 template< typename InputIterator, typename OutputIterator, typename BinaryFunction >
138 OutputIterator
140  InputIterator first,
141  InputIterator last,
142  OutputIterator result,
143  BinaryFunction binary_op,
144  const std::string& user_code="" );
145 
146 
171 template< typename InputIterator, typename OutputIterator >
172 OutputIterator
173  exclusive_scan( control& ctl, InputIterator first, InputIterator last,
174  OutputIterator result, const std::string& user_code="" );
175 
176 template< typename InputIterator, typename OutputIterator >
177 OutputIterator
178  exclusive_scan( InputIterator first, InputIterator last, OutputIterator result,
179  const std::string& user_code="" );
180 
181 
210 template< typename InputIterator, typename OutputIterator, typename T >
211 OutputIterator
212  exclusive_scan( control& ctl, InputIterator first, InputIterator last, OutputIterator result, T init,
213  const std::string& user_code="" );
214 
215 template< typename InputIterator, typename OutputIterator, typename T >
216 OutputIterator
217  exclusive_scan( InputIterator first, InputIterator last, OutputIterator result, T init,
218  const std::string& user_code="" );
219 
249 template< typename InputIterator, typename OutputIterator, typename T, typename BinaryFunction >
250 OutputIterator
251  exclusive_scan( control &ctl, InputIterator first, InputIterator last,
252  OutputIterator result, T init, BinaryFunction binary_op, const std::string& user_code="" );
253 
254 template< typename InputIterator, typename OutputIterator, typename T, typename BinaryFunction >
255 OutputIterator
256  exclusive_scan( InputIterator first, InputIterator last, OutputIterator result, T init, BinaryFunction binary_op,
257  const std::string& user_code="" );
258 
259 
261 }// end of bolt::cl namespace
262 }// end of bolt namespace
263 
264 #include <bolt/cl/detail/scan.inl>
265 
266 #endif // BOLT_CL_SCAN_H