46 #include "detail/Skeleton.h"
47 #include "detail/Program.h"
54 template <
typename>
class Out;
56 template<
typename>
class Zip;
96 template<
typename Tleft,
99 class Zip<Tout(Tleft, Tright)> :
public detail::Skeleton {
111 const std::string& funcName
112 = std::string(
"func"));
151 template <
template <
typename>
class C,
153 C<Tout> operator()(
const C<Tleft>& left,
154 const C<Tright>& right,
200 template <
template <
typename>
class C,
202 C<Tout>& operator()(Out<C<Tout>> output,
203 const C<Tleft>& left,
204 const C<Tright>& right,
212 const std::string& source()
const;
219 const std::string& func()
const;
222 template <
template <
typename>
class C,
224 void execute(C<Tout>& output,
225 const C<Tleft>& left,
226 const C<Tright>& right,
229 template <
template <
typename>
class C>
230 void prepareInput(
const C<Tleft>& left,
231 const C<Tright>& right);
233 template <
template <
typename>
class C>
234 void prepareOutput(C<Tout>& output,
235 const C<Tleft>& left,
236 const C<Tright>& right);
238 detail::Program createAndBuildProgram(
const std::string& source,
239 const std::string& funcName)
const;
241 const std::string _source;
242 const std::string _funcName;
243 const detail::Program _program;
273 template<
typename Tleft,
275 class Zip<void(Tleft, Tright)> :
public detail::Skeleton {
287 const std::string& funcName
288 = std::string(
"func"));
326 template <
template <
typename>
class C,
328 void operator()(
const C<Tleft>& left,
329 const C<Tright>& right,
333 template <
template <
typename>
class C,
335 void execute(
const C<Tleft>& left,
336 const C<Tright>& right,
339 template <
template <
typename>
class C>
340 void prepareInput(
const C<Tleft>& left,
341 const C<Tright>& right);
343 detail::Program createAndBuildProgram(
const std::string& source,
344 const std::string& funcName)
const;
346 const detail::Program _program;
355 #include "detail/ZipDef.h"
This class is a unified wrapper for defining source code in SkelCL.
An instance of the Zip class describes a calculation which can be performed on one or more devices...
An instance of the Zip class describes a calculation which can be performed on one or more devices...