Bolt  1.3
C++ template library with support for OpenCL
scatter.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_SCATTER_H )
19 #define BOLT_CL_SCATTER_H
20 #pragma once
21 
22 #include "bolt/cl/device_vector.h"
23 #include "bolt/cl/functional.h"
24 
25 
31 namespace bolt {
32  namespace cl {
33 
80  template< typename InputIterator1,
81  typename InputIterator2,
82  typename OutputIterator >
83  void scatter( ::bolt::cl::control &ctl,
84  InputIterator1 first,
85  InputIterator1 last,
86  InputIterator2 map,
87  OutputIterator result,
88  const std::string& user_code="" );
89 
90  template< typename InputIterator1,
91  typename InputIterator2,
92  typename OutputIterator >
93  void scatter( InputIterator1 first,
94  InputIterator1 last1,
95  InputIterator2 map,
96  OutputIterator result,
97  const std::string& user_code="" );
98 
136  template< typename InputIterator1,
137  typename InputIterator2,
138  typename InputIterator3,
139  typename OutputIterator >
140  void scatter_if( bolt::cl::control &ctl,
141  InputIterator1 first1,
142  InputIterator1 last1,
143  InputIterator2 map,
144  InputIterator3 stencil,
145  OutputIterator result,
146  const std::string& user_code="" );
147 
148  template< typename InputIterator1,
149  typename InputIterator2,
150  typename InputIterator3,
151  typename OutputIterator >
152  void scatter_if( InputIterator1 first1,
153  InputIterator1 last1,
154  InputIterator2 map,
155  InputIterator3 stencil,
156  OutputIterator result,
157  const std::string& user_code="" );
158 
209  template< typename InputIterator1,
210  typename InputIterator2,
211  typename InputIterator3,
212  typename OutputIterator,
213  typename Predicate >
214  void scatter_if( bolt::cl::control &ctl,
215  InputIterator1 first1,
216  InputIterator1 last1,
217  InputIterator2 map,
218  InputIterator3 stencil,
219  OutputIterator result,
220  Predicate pred,
221  const std::string& user_code="" );
222 
223  template< typename InputIterator1,
224  typename InputIterator2,
225  typename InputIterator3,
226  typename OutputIterator,
227  typename Predicate >
228  void scatter_if( InputIterator1 first1,
229  InputIterator1 last1,
230  InputIterator2 map,
231  InputIterator3 stencil,
232  OutputIterator result,
233  Predicate pred,
234  const std::string& user_code="" );
235 
236 
238  };
239 };
240 
241 #include <bolt/cl/detail/scatter.inl>
242 #endif