finesse.graph.operator_graph.OperatorGraph.reduce

OperatorGraph.reduce(self, keep=None, reductions=None)

Reduces the graph to as few evaluations nodes as possible. Evaluation nodes are those that must be solved for when solving a system such as Ma = b. All other nodes are then either sinks or sources. Sinks do not need to be included in M as evaluation and source nodes solutions can be simply propagated to them.

Parameters
keep[list|tuple], optional

nodes that should not be reduced

reductionslist, optional

Optional list that will be filled with the reductions applied

Returns
Number of reductions applied