pystencils.flow.flowgraph.FlowgraphNode#
- class pystencils.flow.flowgraph.FlowgraphNode(predecessors, name=None)#
Base class for data-flow graph nodes in pystencils.flow.
Data flow graphs are immutable.
- Each node in the data flow graph exposes
zero or more predecessors
zero or more free symbols (that must be provided by exports from direct predecessors)
zero or more exported symbols (that can be consumed by successors)
A node’s successors are not tracked explicitly, as that would break the immutability.
Nodes shall be hashable and equality-comparable.
- Parameters:
predecessors (Iterable[FlowgraphNode])
name (str | None)
- property predecessors: frozenset[FlowgraphNode]#
This node’s predecessors
- property free_symbols: frozenset[Symbol]#
Free symbols of this node.
A symbol is free if it is used in this node’s equations but not defined in this node. Free symbols must be imported from predecessors.
- abstract replace_predecessors(predecessors)#
Return a copy of this node with a new list of predecessors
- Return type:
- Parameters:
predecessors (Iterable[FlowgraphNode])
- walk()#
Iterate the subgraph above this node in depth-first fashion.
- Return type: