Hi all, the new limits code is in there, seems to be very robust and bug free so far. It's time to make a release. But first, we need to fix bugs all over sympy. There are many, so let's reduce the number of open issues!
The most important issue to fix is: http://code.google.com/p/sympy/issues/detail?id=395 apart from that, we are ready for a release, the other are not a high priority. But let's fix as much as we can, for example let's implement the lambda function and unapplied functions from the sandbox, at least some of it, I think it is neede for the 395 issue. As to the limits: I managed to triage all the bugs in tests and except the case #needs a special logic for deciding that sin(x) is bounded: assert limit(sin(x)/x,x,oo) == 0 #216b that should be handled in limits.py (but I don't think this is even mentioned in the Gruntz thesis), all the other bugs are in the series facility in SymPy. Sometimes it returns an exception (that is fine), but sometimes it returns a wrong series or the leadterm() doesn't work, which results in returning a wrong limit. If series returns an exception, the limit() prints a nice information which series it needs, so that we can check it in some other tools if the problem is in the series expansion, or in the limit algorithm (requesting an unmeaningful/undefined series). I reported 13 bugs in the series code: http://code.google.com/p/sympy/issues/list?can=2&q=%22series+bug%22&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary&cells=tiles (just search for "series bug" including the "). I think when those are fixed, all limits test in SymPy should pass (except the case above). See also the failing tests, I added to each of them a number of issue, which causes them to fail. The new code is in series/limits.py and that is the limit function in sympy. However, there is also series/limits_series.py, that contains the old limit code and that one is executed in Basic.inflimit(), which is used in the series expansion and Order. That way, we may use some restricted limits in the series expansion. If we do it right, we should be able to call the full fledged algorithm in limits.py from series, but at the moment, it always results in infinite recursion. So for the time being, the new algoritm just requests an expansion of a series and takes it as a blackbox, either it works, or not. I also removed the table of limits in the limits_series.py, which made it much faster to load, it made the whole testsuite run 15s faster (it failed some tests in test_limit_series.py, but they were for the general case anyway, and that is fixed by the general algorithm, so it's ok). My idea is now to look at the series expansion once again, and fix it once and for all, preferably getting rid of the buggy limit_series and either use no limits at all, or the full algorithm in limits.py. The limits are not yet using any caching, so they could be made even faster, but this is so that we can now easily fix bugs and wrong results are not cached. But anyway, the limit algorithm itself seems to work, and the other problems in the series are not such a high priority imho. Maybe some of them are easy to fix, so let's do so, but let's concentrate on quality now, because I think the urgent things are done, now it's time to polish. Ondrej --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sympy?hl=en -~----------~----~----~----~------~----~------~--~---
