KSeExpr  4.0.4.0
Public Types | Public Member Functions | Private Attributes | List of all members
KSeExpr::ExprFuncStandard Class Reference

#include <ExprFuncStandard.h>

Inheritance diagram for KSeExpr::ExprFuncStandard:
KSeExpr::ExprFuncX

Public Types

enum  FuncType {
  NONE = 0 , FUNC0 , FUNC1 , FUNC2 ,
  FUNC3 , FUNC4 , FUNC5 , FUNC6 ,
  FUNCN , VEC , FUNC1V = VEC , FUNC2V ,
  FUNCNV , VECVEC , FUNC1VV = VECVEC , FUNC2VV ,
  FUNCNVV
}
 
using Func0 = double()
 
using Func1 = double(double)
 
using Func2 = double(double, double)
 
using Func3 = double(double, double, double)
 
using Func4 = double(double, double, double, double)
 
using Func5 = double(double, double, double, double, double)
 
using Func6 = double(double, double, double, double, double, double)
 
using Func1v = double(const Vec3d &)
 
using Func2v = double(const Vec3d &, const Vec3d &)
 
using Func1vv = Vec3d(const Vec3d &)
 
using Func2vv = Vec3d(const Vec3d &, const Vec3d &)
 
using Funcn = double(int, double *)
 
using Funcnv = double(int, const Vec3d *)
 
using Funcnvv = Vec3d(int, const Vec3d *)
 

Public Member Functions

 ExprFuncStandard (FuncType funcType, void *f)
 No argument function. More...
 
 ExprFuncStandard ()
 
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. More...
 
void * getFuncPointer () const
 
FuncType getFuncType () const
 
- Public Member Functions inherited from KSeExpr::ExprFuncX
 ExprFuncX (const bool threadSafe)
 
 ExprFuncX (const ExprFuncX &)=default
 
 ExprFuncX (ExprFuncX &&)=default
 
ExprFuncXoperator= (const ExprFuncX &)=default
 
ExprFuncXoperator= (ExprFuncX &&)=default
 
virtual ExprType type () const
 
virtual ~ExprFuncX ()=default
 
bool isThreadSafe () const
 
virtual size_t sizeInBytes () const
 Return memory usage of a funcX in bytes. More...
 
virtual void statistics (Statistics &) const
 Give this function a chance to populate its statistics. More...
 

Private Attributes

FuncType _funcType {}
 
void * _func {nullptr}
 

Additional Inherited Members

- Protected Attributes inherited from KSeExpr::ExprFuncX
bool _isScalar {}
 
ExprType _type
 

Detailed Description

Definition at line 14 of file ExprFuncStandard.h.

Member Typedef Documentation

◆ Func0

Definition at line 40 of file ExprFuncStandard.h.

◆ Func1

using KSeExpr::ExprFuncStandard::Func1 = double(double)

Definition at line 41 of file ExprFuncStandard.h.

◆ Func1v

using KSeExpr::ExprFuncStandard::Func1v = double(const Vec3d &)

Definition at line 47 of file ExprFuncStandard.h.

◆ Func1vv

Definition at line 49 of file ExprFuncStandard.h.

◆ Func2

using KSeExpr::ExprFuncStandard::Func2 = double(double, double)

Definition at line 42 of file ExprFuncStandard.h.

◆ Func2v

using KSeExpr::ExprFuncStandard::Func2v = double(const Vec3d &, const Vec3d &)

Definition at line 48 of file ExprFuncStandard.h.

◆ Func2vv

Definition at line 50 of file ExprFuncStandard.h.

◆ Func3

using KSeExpr::ExprFuncStandard::Func3 = double(double, double, double)

Definition at line 43 of file ExprFuncStandard.h.

◆ Func4

using KSeExpr::ExprFuncStandard::Func4 = double(double, double, double, double)

Definition at line 44 of file ExprFuncStandard.h.

◆ Func5

using KSeExpr::ExprFuncStandard::Func5 = double(double, double, double, double, double)

Definition at line 45 of file ExprFuncStandard.h.

◆ Func6

using KSeExpr::ExprFuncStandard::Func6 = double(double, double, double, double, double, double)

Definition at line 46 of file ExprFuncStandard.h.

◆ Funcn

using KSeExpr::ExprFuncStandard::Funcn = double(int, double *)

Definition at line 51 of file ExprFuncStandard.h.

◆ Funcnv

using KSeExpr::ExprFuncStandard::Funcnv = double(int, const Vec3d *)

Definition at line 52 of file ExprFuncStandard.h.

◆ Funcnvv

Definition at line 53 of file ExprFuncStandard.h.

Member Enumeration Documentation

◆ FuncType

Enumerator
NONE 
FUNC0 
FUNC1 
FUNC2 
FUNC3 
FUNC4 
FUNC5 
FUNC6 
FUNCN 
VEC 
FUNC1V 
FUNC2V 
FUNCNV 
VECVEC 
FUNC1VV 
FUNC2VV 
FUNCNVV 

Definition at line 17 of file ExprFuncStandard.h.

Constructor & Destructor Documentation

◆ ExprFuncStandard() [1/2]

KSeExpr::ExprFuncStandard::ExprFuncStandard ( FuncType  funcType,
void *  f 
)
inline

No argument function.

Definition at line 73 of file ExprFuncStandard.h.

◆ ExprFuncStandard() [2/2]

KSeExpr::ExprFuncStandard::ExprFuncStandard ( )
inline

Definition at line 135 of file ExprFuncStandard.h.

Member Function Documentation

◆ buildInterpreter()

int KSeExpr::ExprFuncStandard::buildInterpreter ( const ExprFuncNode node,
Interpreter interpreter 
) const
overridevirtual

◆ getFuncPointer()

void* KSeExpr::ExprFuncStandard::getFuncPointer ( ) const
inline

Definition at line 142 of file ExprFuncStandard.h.

References _func.

◆ getFuncType()

FuncType KSeExpr::ExprFuncStandard::getFuncType ( ) const
inline

Definition at line 146 of file ExprFuncStandard.h.

References _funcType.

◆ prep()

ExprType KSeExpr::ExprFuncStandard::prep ( ExprFuncNode node,
bool  scalarWanted,
ExprVarEnvBuilder env 
) const
overridevirtual

Member Data Documentation

◆ _func

void* KSeExpr::ExprFuncStandard::_func {nullptr}
private

Definition at line 153 of file ExprFuncStandard.h.

Referenced by buildInterpreter(), and getFuncPointer().

◆ _funcType

FuncType KSeExpr::ExprFuncStandard::_funcType {}
private

Definition at line 152 of file ExprFuncStandard.h.

Referenced by buildInterpreter(), getFuncType(), and prep().


The documentation for this class was generated from the following files: