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
Extension function spec, used for complicated argument custom functions.
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 ...
std::map< std::string, double > Statistics
base class for custom instance data