Source code for modelparameters.sympy.strategies.branch.tools
from __future__ import print_function, division
from .core import exhaust, multiplex
from .traverse import top_down
[docs]def canon(*rules):
""" Strategy for canonicalization
Apply each branching rule in a top-down fashion through the tree.
Multiplex through all branching rule traversals
Keep doing this until there is no change.
"""
return exhaust(multiplex(*map(top_down, rules)))