1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- """ Rewrite Rules
- DISCLAIMER: This module is experimental. The interface is subject to change.
- A rule is a function that transforms one expression into another
- Rule :: Expr -> Expr
- A strategy is a function that says how a rule should be applied to a syntax
- tree. In general strategies take rules and produce a new rule
- Strategy :: [Rules], Other-stuff -> Rule
- This allows developers to separate a mathematical transformation from the
- algorithmic details of applying that transformation. The goal is to separate
- the work of mathematical programming from algorithmic programming.
- Submodules
- strategies.rl - some fundamental rules
- strategies.core - generic non-SymPy specific strategies
- strategies.traverse - strategies that traverse a SymPy tree
- strategies.tools - some conglomerate strategies that do depend on SymPy
- """
- from . import rl
- from . import traverse
- from .rl import rm_id, unpack, flatten, sort, glom, distribute, rebuild
- from .util import new
- from .core import (
- condition, debug, chain, null_safe, do_one, exhaust, minimize, tryit)
- from .tools import canon, typed
- from . import branch
- __all__ = [
- 'rl',
- 'traverse',
- 'rm_id', 'unpack', 'flatten', 'sort', 'glom', 'distribute', 'rebuild',
- 'new',
- 'condition', 'debug', 'chain', 'null_safe', 'do_one', 'exhaust',
- 'minimize', 'tryit',
- 'canon', 'typed',
- 'branch',
- ]
|