116 static int EvalOp(
int* opData,
double* fp,
char** c, std::vector<int>& callStack);
virtual ExprType prep(ExprFuncNode *node, bool scalarWanted, ExprVarEnvBuilder &envBuilder) const
virtual int buildInterpreter(const ExprFuncNode *node, Interpreter *interpreter) const
Build an interpreter to evaluate the expression.
Node that calls a function.
Vec< double, d, true > inFp(int i)
ExprFuncNode::Data * data
Vec< double, d, true > outFpHandle()
Return a vector handle which is easier to assign to.
ArgHandle(int *opData, double *fp, char **c, std::vector< int > &callStack)
virtual ExprFuncNode::Data * evalConstant(const ExprFuncNode *node, ArgHandle args) const =0
virtual int buildInterpreter(const ExprFuncNode *node, Interpreter *interpreter) const
Build an interpreter to evaluate the expression.
ExprFuncSimple(const bool threadSafe)
virtual void eval(ArgHandle args)=0
static int EvalOp(int *opData, double *fp, char **c, std::vector< int > &callStack)
virtual ExprType prep(ExprFuncNode *node, bool scalarWanted, ExprVarEnvBuilder &envBuilder) const =0
virtual ExprType type() const
virtual ExprType prep(ExprFuncNode *node, bool scalarWanted, ExprVarEnvBuilder &env) const =0
ExprFuncX(const bool threadSafe)
virtual int buildInterpreter(const ExprFuncNode *node, Interpreter *interpreter) const =0
Build an interpreter to evaluate the expression.
virtual void statistics(Statistics &) const
Give this function a chance to populate its statistics.
virtual size_t sizeInBytes() const
Return memory usage of a funcX in bytes.
bool isThreadSafe() const
Variable scope builder is used by the type checking and code gen to track visiblity of variables and ...
Variable scope for tracking variable lookup.
std::map< std::string, double > Statistics
base class for custom instance data