Flowgraphs [Experimental]#
Primary APIs#
- pystencils.flow.block(func=None, /, preds=None, name=None)#
Define a flowgraph block using
letsyntax.blockis a decorator used to define flowgraph blocks using Python function syntax.- Parameters:
preds (-) – Predecessor nodes to this block
name (-) – Name of this block. If none is given, the function’s name will be used
func (Callable[[EquationsBlockBuilder], None] | None)
- pystencils.flow.cases(func=None, /, preds=None, name=None)#
Define a flowgraph cases block.
casesis a decorator used to define flowgraph case blocks using Python function syntax.- Parameters:
func (Callable[[CasesBuilder], None] | None)
preds (Iterable[FlowgraphNode] | None)
name (str | None)
- pystencils.flow.tie(*nodes, name=None)#
Tie multiple nodes together into a flowgraph
- Return type:
- Parameters:
nodes (FlowgraphNode)
name (str | None)
- pystencils.flow.subgraph(*args, preds=(), name=None)#
- Return type:
- Parameters:
args (Flowgraph | FlowgraphNode)
preds (Sequence[FlowgraphNode])
name (str | None)
Flowgraph Nodes#
Inheritance Diagram#

Classes#
- pystencils.flow.flowgraph.SymbolicMemoryLoc = pystencils.field.Field.Access | pystencils.sympyextensions.pointers.mem_acc | pystencils.grids.protocols.IFieldAccess#
Expression types that are valid memory locations and can be used on the LHS of
Store.
A closed flowgraph in canonical form. |
|
Base class for assignments. |
|
|
|
|
|
|
|
|
|
Base class for data-flow graph nodes in pystencils.flow. |
|
A flowgraph's top node. |
|
A flowgraph's bottom node. |
|
A block of symbol assignments in static single-assignment form. |
|
Another flowgraph embedded as a subgraph. |
|
Case distinction. |
Builders#
Builder for equation blocks. |
|
Canonicalization#
Check a flowgraph for consistency and transform it into canonical form. |
|
Result of the flowgraph canonicalizer |
|
Indicates that a flowgraph violates a canonicality condition. |