Feat(API): In simplify first typing then optimize
This commit is contained in:
parent
505d2f1c09
commit
5ab5314899
@ -81,15 +81,20 @@ x^7
|
|||||||
(2 + 3) * x + 2
|
(2 + 3) * x + 2
|
||||||
5x + 2
|
5x + 2
|
||||||
|
|
||||||
>>> e = Expression.from_str("2x^2+2x+3x")
|
>>> e = Expression.from_str("1+2x^2+3x+4+5x")
|
||||||
>>> e_simplified = e.simplify()
|
>>> e_simplified = e.simplify()
|
||||||
>>> print(e_simplified)
|
>>> print(e_simplified)
|
||||||
2x^2 + 5x
|
2x^2 + 5 + 8x
|
||||||
>>> for s in e_simplified.explain():
|
>>> for s in e_simplified.explain():
|
||||||
... print(s)
|
... print(s)
|
||||||
2x^2 + 2x + 3x
|
1 + 2x^2 + 3x + 4 + 5x
|
||||||
2x^2 + (2 + 3) * x
|
2x^2 + 3x + 1 + 4 + 5x
|
||||||
2x^2 + 5x
|
3x + 5 + 2x^2 + 5x
|
||||||
|
2x^2 + 3x + 5x + 5
|
||||||
|
2x^2 + (3 + 5) * x + 5
|
||||||
|
2x^2 + 5 + 8x
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from .expression import Expression
|
from .expression import Expression
|
||||||
|
@ -202,13 +202,14 @@ class Expression(object):
|
|||||||
>>> f._ancestor
|
>>> f._ancestor
|
||||||
<Exp: 2 + 12>
|
<Exp: 2 + 12>
|
||||||
"""
|
"""
|
||||||
if optimize:
|
typed_exp = self._typing()
|
||||||
opt_exp = self._optimize()
|
|
||||||
else:
|
|
||||||
opt_exp = self
|
|
||||||
|
|
||||||
typed_exp = opt_exp._typing()
|
if optimize:
|
||||||
comp_exp = typed_exp._compute()
|
opt_exp = typed_exp._optimize()
|
||||||
|
else:
|
||||||
|
opt_exp = typed_exp
|
||||||
|
|
||||||
|
comp_exp = opt_exp._compute()
|
||||||
|
|
||||||
if typed_exp == comp_exp:
|
if typed_exp == comp_exp:
|
||||||
typed_exp.set_ancestor(self._ancestor)
|
typed_exp.set_ancestor(self._ancestor)
|
||||||
|
Loading…
Reference in New Issue
Block a user