corenodes_implementer.h File Reference

Classes

struct  OperatorNodeLlvmBase
 
struct  OperatorNodeLlvm< T >
 
class  OperatorNodeBase< TYPES, I >
 
class  OperatorNodeBase< ParameterPack< IN >, 0 >
 
class  OperatorMicroNode< OP, I >
 
class  OperatorNodeHelper< OP, RESULT, TYPES, std::index_sequence< I... > >
 
class  OperatorNode< OP, RESULT(IN...)>
 

Namespaces

 maxon
 
 maxon::corenodes
 
 maxon::corenodes::details
 

Macros

#define PRIVATE_MAXON_CORENODE_OPERATOR_INDEX(x, i, a)
 
#define PRIVATE_MAXON_CORENODE_OPERATOR_PARAM(x, i, a)
 
#define PRIVATE_MAXON_CORENODE_OPERATOR_NAME(x, i, a)
 
#define PRIVATE_MAXON_CORENODE_OPERATOR_DECLVAL(x, i, a)
 
#define PRIVATE_MAXON_CORENODE_OPERATOR(op, N, R, ...)
 
#define MAXON_CORENODE_OPERATOR_UNARY(N, op, T)
 
#define MAXON_CORENODE_OPERATOR_BINARY(N, op, T1, T2)
 
#define MAXON_CORENODE_FUNCTION(N, func, ...)
 
#define MAXON_CORENODE_OPERATOR_UNARY_LLVM(OP, LLVM, LLVMTYPE)
 
#define MAXON_CORENODE_OPERATOR_BINARY_LLVM(OP, LLVM, LLVMTYPE)
 

Macro Definition Documentation

◆ PRIVATE_MAXON_CORENODE_OPERATOR_INDEX

#define PRIVATE_MAXON_CORENODE_OPERATOR_INDEX (   x,
  i,
 
)

◆ PRIVATE_MAXON_CORENODE_OPERATOR_PARAM

#define PRIVATE_MAXON_CORENODE_OPERATOR_PARAM (   x,
  i,
 
)

◆ PRIVATE_MAXON_CORENODE_OPERATOR_NAME

#define PRIVATE_MAXON_CORENODE_OPERATOR_NAME (   x,
  i,
 
)

◆ PRIVATE_MAXON_CORENODE_OPERATOR_DECLVAL

#define PRIVATE_MAXON_CORENODE_OPERATOR_DECLVAL (   x,
  i,
 
)

◆ PRIVATE_MAXON_CORENODE_OPERATOR

#define PRIVATE_MAXON_CORENODE_OPERATOR (   op,
  N,
  R,
  ... 
)

◆ MAXON_CORENODE_OPERATOR_UNARY

#define MAXON_CORENODE_OPERATOR_UNARY (   N,
  op,
 
)

This macro defines a core node implementation class N for the given unary operator op. The implemented core node consists of a single BatchMicroNode. The output port has the name "out", the input port is named "in".

template <typename T> MAXON_CORENODE_OPERATOR_UNARY(NegNode, -, T);
Parameters
[in]NName of the class to define.
[in]opA unary operator such as -.
[in]TType of the operand.

◆ MAXON_CORENODE_OPERATOR_BINARY

#define MAXON_CORENODE_OPERATOR_BINARY (   N,
  op,
  T1,
  T2 
)

This macro defines a core node implementation class N for the given binary operator op. The implemented core node consists of a single BatchMicroNode. The output port has the name "out", the input ports are named "in1", "in2".

MAXON_CORENODE_OPERATOR_BINARY(BooleanOperatorANDNode, &, Bool, Bool);
template <typename T> MAXON_CORENODE_OPERATOR_BINARY(AddNode, +, T, T);
Parameters
[in]NName of the class to define.
[in]opA binary operator such as +.
[in]T1Type of the left operand.
[in]T2Type of the right operand.

◆ MAXON_CORENODE_FUNCTION

#define MAXON_CORENODE_FUNCTION (   N,
  func,
  ... 
)

This macro defines a core node implementation class N for the given function func. The implemented core node consists of a single BatchMicroNode. The output port has the name "out", the input ports are named "in1", "in2", ... (or just "in" for a function with a single parameter).

template <typename T> MAXON_CORENODE_FUNCTION(AbsNode, Abs, T);
template <typename T> MAXON_CORENODE_FUNCTION(BoxStepNode, BoxStep, T, T, T);
Parameters
[in]NName of the class to define.
[in]funcA function such as Abs or BoxStep.
[in]...Port types of the core node. The port values are passed as arguments to func.

◆ MAXON_CORENODE_OPERATOR_UNARY_LLVM

#define MAXON_CORENODE_OPERATOR_UNARY_LLVM (   OP,
  LLVM,
  LLVMTYPE 
)

◆ MAXON_CORENODE_OPERATOR_BINARY_LLVM

#define MAXON_CORENODE_OPERATOR_BINARY_LLVM (   OP,
  LLVM,
  LLVMTYPE 
)