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
-~----------~----~----~----~------~----~------~--~---

Reply via email to