1#ifndef AMPGEN_COMPILEDEXPRESSIONBASE_H
2#define AMPGEN_COMPILEDEXPRESSIONBASE_H
11#include <unordered_map>
22 class MinuitParameter;
37 const std::string&
name,
39 const std::map<std::string, unsigned>& evtMapping = {} );
43 void compile(
const std::string& fname=
"");
52 std::string
fcnSignature(
const std::vector<std::string>& argList )
const;
53 virtual bool link(
void*) = 0;
54 virtual bool link(
const std::string&) = 0;
63 virtual std::vector<std::string>
types()
const = 0;
67 virtual std::string
arg_type(
const unsigned& counter)
const =0;
84 void addDebug( std::ostream& stream )
const;
85 void addDependentExpressions( std::ostream& stream,
size_t& sizeOfStream )
const;
(Internal) class to aide in the resolution of the dependencies of expression trees.
Base class for compiled expressions, i.e.
virtual std::string arg_type(const unsigned &counter) const =0
void resolve(const MinuitParameterSet *mps=nullptr)
CompiledExpressionBase(const Expression &expression, const std::string &name, const DebugSymbols &db=DebugSymbols(), const std::map< std::string, unsigned > &evtMapping={})
virtual bool use_rto() const =0
std::string progName() const
void compileWithParameters(std::ostream &stream) const
std::map< std::string, unsigned > m_evtMap
virtual std::vector< real_t > externBuffer() const =0
void compileDetails(std::ostream &stream) const
std::vector< std::pair< uint64_t, Expression > > m_dependentSubexpressions
virtual void print() const =0
std::vector< const CacheTransfer * > orderedCacheFunctors() const
std::vector< std::pair< uint64_t, Expression > > m_debugSubexpressions
virtual std::string returnTypename() const =0
virtual bool link(void *)=0
virtual void resizeExternalCache(const size_t &)=0
Expression expression() const
std::shared_ptr< ASTResolver > m_resolver
std::vector< std::shared_ptr< CacheTransfer > > m_cacheTransfers
virtual unsigned returnTypeSize() const =0
virtual void setExternal(const double &, const unsigned &)=0
std::string fcnSignature(const std::vector< std::string > &argList) const
virtual std::vector< std::string > types() const =0
virtual ~CompiledExpressionBase()
virtual bool link(const std::string &)=0
void to_stream(std::ostream &stream) const
bool m_includePythonBindings
std::vector< std::string > m_additionalHeaders
unsigned int hash() const
void compileBatch(std::ostream &stream) const
virtual bool isReady() const =0
CompiledExpressionBase(const std::string &name)
std::string fcnSignature() const
void compile(const std::string &fname="")
Wrapper class for shared_ptrs to virtual expressions for use in conjunction with operators to build e...
std::ostream & operator<<(std::ostream &os, const CompiledExpressionBase &expression)
std::string programatic_name(std::string s)
std::vector< DebugSymbol > DebugSymbols