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, INDEX_SEQUENCE >
class   OperatorNodeHelper< OP, RESULT, TYPES, std::index_sequence< I... > >
class   OperatorNode< OP, SIGNATURE >
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);
参数
[in] N Name of the class to define.
[in] op A unary operator such as -.
[in] T Type 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);
参数
[in] N Name of the class to define.
[in] op A binary operator such as +.
[in] T1 Type of the left operand.
[in] T2 Type 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);
参数
[in] N Name of the class to define.
[in] func A 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 
)