CTL  0.6.1
Computed Tomography Library
openclfunctions.h
1 #ifndef CTL_OPENCLFUNCTIONS_H
2 #define CTL_OPENCLFUNCTIONS_H
3 
4 #include <string>
5 #include <vector>
6 
7 namespace CTL {
8 
39 {
40 public:
41  class OpenCLFunction;
42  using OpenCLFunctionGen = OpenCLFunction (*)();
43 
44  OpenCLFunctions(std::initializer_list<OpenCLFunctionGen> functionList);
45  OpenCLFunctions(OpenCLFunctionGen function);
46 
47  const std::vector<OpenCLFunction>& functions() const;
48  std::string declarations() const;
49  std::string declarationsAndDefinitions() const;
50 
51  // list of `static` generator functions providing the OpenCL C source code
55  // ...
56 
57 private:
58  std::vector<OpenCLFunction> _functions;
59 };
60 
71 {
72 public:
73  OpenCLFunction(const char* clSourceCode);
74  OpenCLFunction(std::string clSourceCode);
75 
76  std::string declaration() const;
77  std::string definition() const;
78  std::string signature() const;
79 
80 private:
81  std::string _code;
82 };
83 
84 } // namespace CTL
85 
86 #endif // CTL_OPENCLFUNCTIONS_H
std::string _code
Source code (definition) of the OpenCL C function.
Definition: openclfunctions.h:81
std::string declaration() const
Definition: openclfunctions.cpp:241
static OpenCLFunction atomic_addf_g()
Definition: openclfunctions.cpp:122
std::string declarationsAndDefinitions() const
Definition: openclfunctions.cpp:92
The OpenCLFunctions class provides additional OpenCL C functions.
Definition: openclfunctions.h:38
const std::vector< OpenCLFunction > & functions() const
Definition: openclfunctions.cpp:70
std::string signature() const
Definition: openclfunctions.cpp:258
std::string definition() const
Definition: openclfunctions.cpp:249
std::string declarations() const
Definition: openclfunctions.cpp:78
std::vector< OpenCLFunction > _functions
The list of OpenCL C functions.
Definition: openclfunctions.h:58
OpenCLFunction(const char *clSourceCode)
Definition: openclfunctions.cpp:216
OpenCLFunctions(std::initializer_list< OpenCLFunctionGen > functionList)
Definition: openclfunctions.cpp:24
Representation of a single OpenCL C function.
Definition: openclfunctions.h:70
static OpenCLFunction write_bufferf()
Definition: openclfunctions.cpp:191
static OpenCLFunction atomic_addf_l()
Definition: openclfunctions.cpp:159