This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients mark.dickinson, vstinner
Date 2009-12-29.18:15:19
SpamBayes Score 5.8969496e-13
Marked as misclassified No
Message-id <1262110522.04.0.340155972192.issue5576@psf.upfronthosting.co.za>
In-reply-to
Content
> Long double (80 bits) exponent is in range [-16382; 16383] and so 
would
> fits in an int, unsigned int, size_t or Py_ssize_t.

Sure, but I don't think that's relevant to the point I was attempting to 
make:  PyLong_AsScaledDouble returns the number of bits in the given 
PyLong, and that number can be (theoretically) as large as 
PY_SSIZE_T_MAX * PyLong_SHIFT.  So Py_ssize_t is a better fit than int 
to hold this number:  otherwise you'll get unnecessary overflows on a 
64-bit system.

I'm working on refactoring PyLong_AsScaledDouble and PyLong_AsDouble to 
have them both use the same core code.  This would make 
PyLong_AsScaledDouble correctly rounded, and hence independent of the 
implementation of a PyLong (in particular, independent of the decision 
to use 15-bit or 30-bit digits for PyLongs: this decision really 
shouldn't affect the result of a log function or any other functions 
using _PyLong_AsScaledDouble).
History
Date User Action Args
2009-12-29 18:15:22mark.dickinsonsetrecipients: + mark.dickinson, vstinner
2009-12-29 18:15:22mark.dickinsonsetmessageid: <1262110522.04.0.340155972192.issue5576@psf.upfronthosting.co.za>
2009-12-29 18:15:20mark.dickinsonlinkissue5576 messages
2009-12-29 18:15:19mark.dickinsoncreate