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.


Reply via email to