42 using Func2 = double(
double,
double);
43 using Func3 = double(
double,
double,
double);
44 using Func4 = double(
double,
double,
double,
double);
45 using Func5 = double(
double,
double,
double,
double,
double);
46 using Func6 = double(
double,
double,
double,
double,
double,
double);
51 using Funcn = double(
int,
double *);
86 :
_type(
FUNC2), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(2), _maxargs(2)
90 :
_type(
FUNC3), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(3), _maxargs(3)
94 :
_type(
FUNC4), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(4), _maxargs(4)
98 :
_type(
FUNC5), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(5), _maxargs(5)
102 :
_type(
FUNC6), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(6), _maxargs(6)
106 :
_type(
FUNC1V), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(1), _maxargs(1)
110 :
_type(
FUNC2V), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(2), _maxargs(2)
114 :
_type(
FUNC1VV), _retType(ExprType().FP(3).Varying()), _scalar(false),
_func((void*)f), _minargs(1), _maxargs(1)
118 :
_type(
FUNC2VV), _retType(ExprType().FP(3).Varying()), _scalar(false),
_func((void*)f), _minargs(2), _maxargs(2)
122 :
_type(
FUNCN), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(
min), _maxargs(
max)
126 :
_type(
FUNCNV), _retType(ExprType().FP(1).Varying()), _scalar(true),
_func((void*)f), _minargs(
min), _maxargs(
max)
130 :
_type(
FUNCNVV), _retType(ExprType().FP(3).Varying()), _scalar(false),
_func((void*)f), _minargs(
min), _maxargs(
max)
Node that calls a function.
double(double, double, double, double) Func4
Vec3d(int, const Vec3d *) Funcnvv
double(int, double *) Funcn
ExprType prep(ExprFuncNode *node, bool scalarWanted, ExprVarEnvBuilder &envBuilder) const override
int buildInterpreter(const ExprFuncNode *node, Interpreter *interpreter) const override
Build an interpreter to evaluate the expression.
ExprFuncStandard(FuncType funcType, void *f)
No argument function.
FuncType getFuncType() const
double(const Vec3d &) Func1v
double(const Vec3d &, const Vec3d &) Func2v
double(double, double, double, double, double, double) Func6
double(double, double, double) Func3
Vec3d(const Vec3d &) Func1vv
double(int, const Vec3d *) Funcnv
double(double, double, double, double, double) Func5
Vec3d(const Vec3d &, const Vec3d &) Func2vv
double(double, double) Func2
void * getFuncPointer() const
Extension function spec, used for complicated argument custom functions.
Function Definition, used in parse tree and func table.
Variable scope builder is used by the type checking and code gen to track visiblity of variables and ...
double max(double x, double y)
double min(double x, double y)
Vec< double, 3, false > Vec3d