Le dimanche 01 mai 2011 à 09:43 -0700, Ondrej Certik a écrit : > On Sun, May 1, 2011 at 7:43 AM, Ronan Lamy <ronan.l...@gmail.com> wrote: > > Le samedi 30 avril 2011 à 23:47 -0700, Ondrej Certik a écrit : > >> On Sat, Apr 30, 2011 at 10:36 AM, Haz <christian.mu...@gmail.com> wrote: > >> > So a few things to respond to... > >> > Tom: > >> >>Can you describe what went wrong with these branches? In particular, > >> >>why can the following naive strategy not work: > >> >> > >> >>1. Make the new system at least as good as the old one. That is > >> >>whenever I can write foo.is_bar I can write ask(foo, Q.bar) and I will > >> >>get at least as good an answer. In particular Symbol('x', > >> >>positive=True) should register automatically in the global assumptions > >> >>that x > 0 (if I understand correctly how the new system works...). > >> >>2. Replace all queries foo.is_bar by ask(foo, Q.bar). > >> >>3. Remove all implementations of the is_bar properties. > >> >>4. Remove all remaining remnants of the old system. > >> > This is what was largely tried with a branch last summer: > >> > - https://github.com/haz/sympy/tree/disconnect-assumptions-2 > >> > There was push-back from the community since removing the Symbol('x', > >> > positive=True) syntax was largely frowned upon. > >> > >> I am still very much convinced, that this disconnect-assumptions-2 is > >> the simplest and easiest way to get rid of the old assumptions, so > >> that we can start speeding up the core, and start using some other > >> system for them. > >> > > BTW, isn't certik/remove_assumptions slightly more recent? Anyway, you > > I am not sure at the moment, but the branch I am referring to is the > one that Christian worked for about a week during his GSoC. Then the > discouragement from the community forced him to stop. > > > never explained why the old assumptions are slowing us down. Everything > > I've seen so far points in the other direction. > > I claim that no assumptions are faster than assumptions. I claim that > the core should not deal with assumptions by default, just like ginac > (that Sage uses) doesn't deal with assumptions, and thus is fast.
Sure, it's faster if you don't have assumptions than if you need to deal with them. But we need them: how else could we simplify, for instance, sqrt(x**2)? I believe you think that we shouldn't simplify anything implicitly, but in that case expressions get unwieldy very fast - you can't even assume that Symbols are commutative. So you have to check for simplifications all the time, which brings you back to dealing with assumptions all the time, except you've traded a system that was optimised for that kind of checking for one that isn't. > > > >> I would be interested in the community vote on this idea. I vote +1. I > >> am aware that Ronan voted -1 last year. What do others think? > > > > What are you voting +1 on, concretely? Your branch is one year old, so > > I vote to continue on that branch, which passed almost all tests > (rebase it/rework it to the latest master). > > > it would have to be updated. There were also many test failures > > Those need to be fixed, just like the ones in the core, that were already > fixed. > > > remaining and it was unbearably slow for complex calculations, what's > > your plan for that? > > As Christian remarked, it was slower if the caching was turned down. > Caching is another problem, that needs to be addressed, as Christian > remarked. My plan is that preferably the cache should be off by > default, and/or flushing it the way Christian did it. If I remember > well, it was not slower. Well, turning off the cache slows sympy so much that it's not a realistic option at the moment. -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.