Open Search
    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 
    )