Overflow-less integer arithmetic?

Andrew Dalke dalke at acm.org
Sun Aug 19 21:40:45 EDT 2001


Tim:
>Do you really find such OverflowErrors more useful than not?  I'm asking
>because PEP 237 seeks to eradicate them:
>
>    http://python.sf.net/peps/pep-0237.html

Despite what I said yesterday, I have used and needed lont ints
a few times in real code.  There are two cases:
  1) I expect to get large values (>2**31) frequently
  2) I expect to get them infrequently

Case #1 is the more common, and is solved by using an 'L' in the
appropriate initialization.  There have been many times when the
omission of the L was not caught until the testing phase, which
means automatic conversion would have been prefered.

Case #2 has only occured once, where >98% of the times the
value could fit in a regular integer and I wanted the
faster math performance.  In that case I did
  try:
    operation
  except OverflowError:
    redo the operation with longs

So I have have no problems with the current 237 PEP, where
int operations convert to long rather than raising an exception.

                    Andrew
                    dalke at dalkescientific.com






More information about the Python-list mailing list