Enum EvalOp¶
Defined in File eval_expr.hpp
Enum Documentation¶
-
enum class sequant::EvalOp¶
defines types of binary operations that can be performed on two EvalExpr objects.
Values:
-
enumerator Sum¶
Represents the sum of two EvalExpr objects. Such as a tensor plus a tensor and a constant plus a constant.
-
enumerator Product¶
Represents the product of two EvalExpr objects. Such as tensor times a tensor, a constant times a constant, or a tensor times a constant (in either order).
-
enumerator Adjoint¶
Represents the adjoint (conjugate transpose) of one EvalExpr
object. The result equals the bra/ket-swapped, complex-conjugated operand. The IR representation is “structurally binary, lexically
unary”: an Adjoint node holds the bare-label operand as its left child and a Constant(1) sentinel as its right child (so the
FullBinaryNode invariant — every non-leaf has both children — is preserved). Evaluate dispatches on this op_type and only uses the left operand; the right is ignored.
-
enumerator Power¶
Represents the element-wise rational power of one tensor-valued EvalExpr object (the evaluation of a TensorPower). Unary like Adjoint: the left child is the operand subtree and the right child is a Constant sentinel holding the rational exponent (see power_exponent()). The node’s expression is a symmetry-free Tensor over the operand’s slots; the result is operand^exponent, element by element.
-
enumerator Broadcast¶
Represents the expansion of one EvalExpr object (a summand of a broadcast Sum
under a result head, see is_valid(const
ResultExpr&)) over the head modes it lacks. Unary like
Power: the left child is the operand subtree, a tensor or a scalar, and the right child is a Constant(1) sentinel. The node’s expression is a symmetry-free Tensor over the head’s slots and its canon indices are the head’s indices in slot order; the result is constant along every mode the operand lacks and equals the operand along the others.
-
enumerator Sum¶