TailLoop#
- class hugr.ops.TailLoop(just_inputs: list[~hugr.tys.Type], rest: list[~hugr.tys.Type], _just_outputs: list[~hugr.tys.Type] | None = None, extension_delta: list[str] = <factory>)[source]#
Bases:
DfParentOp
,DataflowOp
Tail controlled loop operation, child dataflow graph iterates while it outputs the first variant of a sum type.
Methods
Inner signature of the child dataflow graph.
Name of the operation.
The external signature of this operation.
Get the kind of the given port.
Get the type of the given dataflow port from the signature of the operation.
Attributes
Types that are only outputs of the child graph.
The number of output ports for this operation.
Types that are only inputs of the child graph.
Types that are appended to both inputs and outputs of the graph.
extension_delta
- inner_signature() FunctionType [source]#
Inner signature of the child dataflow graph.
- property just_outputs: list[Type]#
Types that are only outputs of the child graph.
- Raises:
IncompleteOp – If the outputs have not been set.
- property num_out: int#
The number of output ports for this operation.
Example
>>> op = Const(val.TRUE) >>> op.num_out 1
- outer_signature() FunctionType [source]#
The external signature of this operation. Defines the valid external connectivity of the node the operation belongs to.
- port_kind(port: InPort | OutPort) ValueKind | ConstKind | FunctionKind | CFKind | OrderKind #
Get the kind of the given port.
Example
>>> op = Const(val.TRUE) >>> op.port_kind(OutPort(Node(0), 0)) ConstKind(Bool)