2009/8/11 Ondrej Certik <ond...@certik.cz> > > On Mon, Aug 10, 2009 at 5:34 PM, Fabian Pedregosa<fab...@fseoane.net> > wrote: > > > > In the following series of patches, I implement a refine() method that > simplifies > > expressions based on its assumptions. > > > > I also deleted some code from the old assumption system. All deleted code > (and tests) > > are now in sympy/queries or in sympy/refine/ > > > > You can pull from my branch refine: git pull > http://fseoane.net/git/sympy.git refine > > This test fails for me: > > > ________________________________________________________________________________ > ________ sympy/concrete/tests/test_sums_products.py:test_composite_sums > ________ > File > "/home/ondrej/repos/sympy/sympy/concrete/tests/test_sums_products.py", > line 41, in test_composite_sums > s = sum(f, (n, a, b)) > File "/home/ondrej/repos/sympy/sympy/concrete/summations.py", line 164, in > sum > return summation.doit() > File "/home/ondrej/repos/sympy/sympy/concrete/summations.py", line 69, in > doit > f = eval_sum(f, (i, a, b)) > File "/home/ondrej/repos/sympy/sympy/concrete/summations.py", line > 231, in eval_sum > value = eval_sum_symbolic(f.expand(), (i, a, b)) > File "/home/ondrej/repos/sympy/sympy/concrete/summations.py", line > 255, in eval_sum_symbolic > rsum = eval_sum_symbolic(R, (i, a, b)) > File "/home/ondrej/repos/sympy/sympy/concrete/summations.py", line > 252, in eval_sum_symbolic > lrsum = telescopic(L, R, (i, a, b)) > File "/home/ondrej/repos/sympy/sympy/concrete/summations.py", line > 211, in telescopic > s = solve(L.subs(i, i + m) + R, m)[0] > File "/home/ondrej/repos/sympy/sympy/solvers/solvers.py", line 209, in > solve > result = roots(poly, cubics=True, quartics=True).keys() > File "/home/ondrej/repos/sympy/sympy/polys/rootfinding.py", line 300, in > roots > result = _try_decompose(f) > File "/home/ondrej/repos/sympy/sympy/polys/rootfinding.py", line > 210, in _try_decompose > for r in _try_heuristics(h): > File "/home/ondrej/repos/sympy/sympy/polys/rootfinding.py", line > 242, in _try_heuristics > if f(i).expand().is_zero: > File "/home/ondrej/repos/sympy/sympy/core/assumptions.py", line 366, in > getit > return self._what_known_about(name) > File "/home/ondrej/repos/sympy/sympy/core/assumptions.py", line 279, > in _what_known_about > a = getattr(self,'is_'+pk) > File "/home/ondrej/repos/sympy/sympy/core/assumptions.py", line 366, in > getit > return self._what_known_about(name) > File "/home/ondrej/repos/sympy/sympy/core/assumptions.py", line 256, > in _what_known_about > a = getattr(self,'_eval_is_'+k)() > File "/home/ondrej/repos/sympy/sympy/core/add.py", line 234, in <lambda> > _eval_is_integer = lambda self: > self._eval_template_is_attr('is_integer') > File "/home/ondrej/repos/sympy/sympy/core/operations.py", line 148, > in _eval_template_is_attr > a = getattr(t, is_attr) > File "/home/ondrej/repos/sympy/sympy/core/assumptions.py", line 366, in > getit > return self._what_known_about(name) > File "/home/ondrej/repos/sympy/sympy/core/assumptions.py", line 265, > in _what_known_about > self._learn_new_facts( ((k,a),) ) > File "/home/ondrej/repos/sympy/sympy/core/assumptions.py", line 340, > in _learn_new_facts > self._assume_rules.deduce_all_facts(facts, base) > File "/home/ondrej/repos/sympy/sympy/core/facts.py", line 882, in > deduce_all_facts > assert new_facts[k] == v, ('inconsitency between facts',new_facts,k,v) > AssertionError: ('inconsitency between facts', {'prime': False, > 'real': True, 'comparable': False, 'noninteger': True, 'irrational': > False, 'nonpositive': True, 'composite': False, 'positive': False, > 'even': False, 'negative': None, 'nonnegative': None, 'zero': False, > 'complex': True, 'bounded': None, 'unbounded': None, 'integer': False, > 'imaginary': False, 'nonzero': True, 'odd': False, 'commutative': > True}, 'negative', True) > > tests finished: 1589 passed, 1 failed, 6 skipped, 28 xfailed, 1 > xpassed in 155.72 seconds > DO *NOT* COMMIT! > > > everything else seems to be running, in general it looks good. > > Vinzent, if you have time, please review it too. I will go over it > carefully in the evening, to make sure no functionality is lost, but > so far it looks good.
I can confirm that it does not fail on 32-bit. There are only two regressions I see: .is_even and friends are broken and the "proper" alternative is much slower. Vinzent --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy-patches" group. To post to this group, send email to sympy-patches@googlegroups.com To unsubscribe from this group, send email to sympy-patches+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sympy-patches?hl=en -~----------~----~----~----~------~----~------~--~---