24#ifndef ACLELEMENTBASE_H
25#define ACLELEMENTBASE_H
29#include "Kernels/aclKernelConfiguration.h"
44 extern const std::string
INDEX;
68 vector<shared_ptr<ElementBase> > & localDeclarations)
const = 0;
74 typedef std::shared_ptr<ElementBase>
Element;
virtual void addToKernelSource(vector< shared_ptr< ElementBase > > &arguments, vector< shared_ptr< ElementBase > > &localDeclarations) const =0
Adds ElementBase to the kernel source either as an argument or as a local declaration.
virtual string str(const KernelConfiguration &kernelConfig=KERNEL_BASIC) const =0
ElementBase(bool isWritable_, unsigned int size_, TypeID typeID_)
CommandQueue getQueue() const
virtual string getLocalDeclaration(const KernelConfiguration &kernelConfig=KERNEL_BASIC) const =0
virtual string getTypeSignature(const KernelConfiguration &kernelConfig=KERNEL_BASIC) const =0
virtual void setAsArgument(cl::Kernel &kernel, unsigned int argumentIndex) const =0
virtual string getAddressSpaceQualifier() const
virtual string getName() const =0
unsigned int getSize() const
ACL Kernel configuration class.
Class interface for cl_kernel.
const KernelConfiguration KERNEL_BASIC
Advanced Computational Language.
std::shared_ptr< cl::CommandQueue > CommandQueue
std::shared_ptr< ElementBase > Element
The OpenCL C++ bindings are defined within this namespace.