[Tim Peters] > > I'll repeat that it's hard to do this correctly and quickly (c.f. earlier > comments about the history of Python's subtly buggy attempts). > [...] > > 0x01ff * > 0x00ff > ------ > 0000 > 00ff > 0000 > fe01 > -------- > 0001fd01 > ^ oops > That was sloppy on my part. Thanks for showing me my error. (That's as gracious as I can be while saying "D'Oh!" on the inside. :-) Clearly you know the long answer to this problem. It could involve taking the ugly expression I had and adding 3 more terms to see if it adds up to a problem. Or if all those integer multiplies make it less attractive than just going to double, then taking the log2() of each operand and counting the bits to see if there is a problem. Or using the PyLong_* machinery. Or something similar. And you've got your fast path past the test for the common case, so it looks like you're just hesitant to make the big ugly macro... __________________________________________________ Do you Yahoo!? Faith Hill - Exclusive Performances, Videos & More http://faith.yahoo.com
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4