Updates:
Cc: ness...@googlemail.com
Labels: Assumptions
Comment #3 on issue 3736 by asmeu...@gmail.com: big numbers fail
http://code.google.com/p/sympy/issues/detail?id=3736
Python core and purely numerical libraries are not going to be able to
represent ridiculously large numbers. They will either fail like this, or
hang forever until the memory is exhausted. The only way to do anything
useful with them is to represent them symbolically. That's where SymPy
comes in.
Doing this well requires some thought. We will almost certainly need a
better system for representing unevaluated objects than we have now (issue
2738). Some other thoughts:
Something like 10**10**100 should be represented as Pow(10, Pow(10, 100))
(with at least the outer Pow unevaluated). We should be able to perform
operations on it, like taking the log, which would result in
10**10*log(10). But most importantly, *nothing* should ever try to
numerically evaluate it. We might even disable evalf on such objects as a
safeguard. Computing something like 10**10**100 > E**E**E**E will need to
be done in a symbolic way.
Therefore, we really need an unevaluated object that remains permanently
unevaluated, even when manipulated. Perhaps a simple way would be to create
a wrapper around the numbers that don't look like numbers to anything
(except they have the correct assumptions in the assumptions system).
10**10**100 would then be
NumberWrapper(10)**NumberWrapper(10)**NumberWrapper(100). NumberWrapper
would not allow itself to be evalf'd, and would not advertise that it could
be. Basic facts about it would be deduced from the assumptions system.
Actually, this is an interesting case, because here we can deduce a lot of
facts about a NumberWrapper, without them explicitly being stated (see also
issue 3006). Tom, what are your thoughts on this?
In addition to the assumptions, we should have methods to check just how
large of numbers an expresion containing NumberWrapper would contain, and
if they are not too large, to just evaluate them.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"sympy-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sympy-issues+unsubscr...@googlegroups.com.
To post to this group, send email to sympy-issues@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy-issues?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.