46 #include "detail/MapHelper.h"
47 #include "detail/Skeleton.h"
48 #include "detail/skelclDll.h"
57 template <
typename>
class Out;
58 namespace detail {
class Program; }
60 template<
typename>
class Map;
129 template<
typename Tin,
typename Tout>
130 class Map<Tout(Tin)> :
public detail::Skeleton,
131 private detail::MapHelper<Tout(Tin)> {
142 const std::string& funcName = std::string(
"func"));
164 template <
template <
typename>
class C,
166 C<Tout> operator()(
const C<Tin>& input,
167 Args&&... args)
const;
196 template <
template <
typename>
class C,
198 C<Tout>& operator()(Out<C<Tout>> output,
200 Args&&... args)
const;
203 template <
template <
typename>
class C,
205 void execute(C<Tout>& output,
207 Args&&... args)
const;
209 detail::Program createAndBuildProgram(
const std::string& source,
210 const std::string& funcName)
const;
245 template<
typename Tin>
246 class Map<void(Tin)> :
public detail::Skeleton,
247 private detail::MapHelper<void(Tin)> {
258 const std::string& funcName = std::string(
"func"));
273 template <
template <
typename>
class C,
275 void operator()(
const C<Tin>& input,
276 Args&&... args)
const;
279 template <
template <
typename>
class C,
281 void execute(
const C<Tin>& input,
282 Args&&... args)
const;
284 detail::Program createAndBuildProgram(
const std::string& source,
285 const std::string& funcName)
const;
320 template<
typename Tout>
321 class Map<Tout(
Index)> :
public detail::Skeleton,
322 private detail::MapHelper<Tout(Index)> {
333 const std::string& funcName = std::string(
"func"));
352 template <
typename... Args>
354 Args&&... args)
const;
380 template <
typename... Args>
383 Args&&... args)
const;
386 template <
typename... Args>
389 Args&&... args)
const;
391 detail::Program createAndBuildProgram(
const std::string& source,
392 const std::string& funcName)
const;
427 class SKELCL_DLL Map<void(
Index)> :
public detail::Skeleton,
428 private detail::MapHelper<void(Index)> {
438 Map(
const Source& source,
const std::string& funcName = std::string(
"func"));
452 template <
typename... Args>
454 Args&&... args)
const;
457 template <
typename... Args>
459 Args&&... args)
const;
461 detail::Program createAndBuildProgram(
const std::string& source,
462 const std::string& funcName)
const;
497 template<
typename Tout>
499 private detail::MapHelper<Tout(IndexPoint)> {
510 const std::string& funcName = std::string(
"func"));
529 template <
typename... Args>
531 Args&&... args)
const;
557 template <
typename... Args>
560 Args&&... args)
const;
563 template <
typename... Args>
566 Args&&... args)
const;
568 detail::Program createAndBuildProgram(
const std::string& source,
569 const std::string& funcName)
const;
605 :
public detail::Skeleton,
private detail::MapHelper<void(IndexPoint)> {
615 Map(
const Source& source,
const std::string& funcName = std::string(
"func"));
629 template <
typename... Args>
631 Args&&... args)
const;
634 template <
typename... Args>
636 Args&&... args)
const;
638 detail::Program createAndBuildProgram(
const std::string& source,
639 const std::string& funcName)
const;
645 #include "detail/MapDef.h"
This version of the Map skeleton is executed over an two-dimensional index space defined b...
The Matrix class is a two dimensional container which makes its data accessible on the host as well a...
This class is a unified wrapper for defining source code in SkelCL.
This class implements the Map skeleton, which describes calculations performed on one or more devices...
The Vector class is a one dimensional container which makes its data accessible on the host as well a...
This class defines an two-dimensional IndexPoint, i.e. a pair of unsigned integers representing a val...
This class defines an Index, i.e. an unsigned integer representing a value in a one-dimensional index...
This version of the Map skeleton is executed over an one-dimensional index space defined b...
This version of the Map skeleton is used, when the user-defined function has the return ty...
The IndexVector (a.k.a. Vector) class is a special implementation of a Vector with Elements of...
The IndexMatrix (a.k.a. Matrix) class is a special implementation of a Matrix with Elemen...