Bolt  1.3
C++ template library with support for OpenCL
gather.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_GATHER_H )
19 #define BOLT_CL_GATHER_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 gather( ::bolt::cl::control &ctl,
84  InputIterator1 map_first,
85  InputIterator1 map_last,
86  InputIterator2 input_first,
87  OutputIterator result,
88  const std::string& user_code="" );
89 
90  template< typename InputIterator1,
91  typename InputIterator2,
92  typename OutputIterator >
93  void gather( InputIterator1 map_first,
94  InputIterator1 map_last,
95  InputIterator2 input_first,
96  OutputIterator result,
97  const std::string& user_code="" );
98 
99 
136  template< typename InputIterator1,
137  typename InputIterator2,
138  typename InputIterator3,
139  typename OutputIterator >
140  void gather_if( bolt::cl::control &ctl,
141  InputIterator1 map_first,
142  InputIterator1 map_last,
143  InputIterator2 stencil,
144  InputIterator3 input_first,
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 gather_if( InputIterator1 map_first,
153  InputIterator1 map_last,
154  InputIterator2 stencil,
155  InputIterator3 input_first,
156  OutputIterator result,
157  const std::string& user_code="" );
158 
211  template< typename InputIterator1,
212  typename InputIterator2,
213  typename InputIterator3,
214  typename OutputIterator,
215  typename Predicate >
216  void gather_if( bolt::cl::control &ctl,
217  InputIterator1 map_first,
218  InputIterator1 map_last,
219  InputIterator2 stencil,
220  InputIterator3 input,
221  OutputIterator result,
222  Predicate pred,
223  const std::string& user_code="" );
224 
225  template< typename InputIterator1,
226  typename InputIterator2,
227  typename InputIterator3,
228  typename OutputIterator,
229  typename Predicate >
230  void gather_if( InputIterator1 map_first,
231  InputIterator1 map_last,
232  InputIterator2 stencil,
233  InputIterator3 input,
234  OutputIterator result,
235  Predicate pred,
236  const std::string& user_code="" );
237 
238 
240  };
241 };
242 
243 #include <bolt/cl/detail/gather.inl>
244 #endif