34 template <
class TYPE>
void resolve(
const TYPE& obj ){}
35 template <
class TYPE,
class ...ARGS>
size_t addCacheFunction(
const std::string& name,
const ARGS&... args )
37 auto it = m_cacheFunctions.find(name);
38 if( it != m_cacheFunctions.end() )
return it->second->address();
39 m_cacheFunctions[name] = std::make_shared<TYPE>(m_nParameters, name, args... );
40 m_nParameters += m_cacheFunctions[name]->size();
41 return m_nParameters - m_cacheFunctions[name]->size();
43 size_t nParams()
const {
return m_nParameters ; }
48 std::map<std::string, std::shared_ptr<CacheTransfer>>
cacheFunctions()
const;
55 std::map<const IExpression*, std::string>
parameters()
const {
return m_resolvedParameters; }
58 std::vector<Parameter> m_unresolvedParameters;
59 std::map<const IExpression*, std::string> m_resolvedParameters;
60 std::map<std::string, std::shared_ptr<CacheTransfer>> m_cacheFunctions;
61 std::map<std::string, unsigned> m_evtMap;
62 std::map<std::string, std::string> m_parameterMapping;
64 std::map<const IExpression*, const SubTree*> m_tempTrees;
65 unsigned int m_nParameters;
66 bool m_enable_cuda {
false};
67 bool m_enable_compileTimeConstants {
false};
68 bool m_enable_avx {
false};
69 bool m_check_hashes {
false};