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 michael.foord
Recipients eric.smith, mark.dickinson, michael.foord, rhettinger, tim.peters
Date 2011-06-29.09:48:41
SpamBayes Score 0.004584743
Marked as misclassified No
Message-id <1309340922.71.0.421664468816.issue7117@psf.upfronthosting.co.za>
In-reply-to
Content
Wondered if you guys had heard of some recent advances in the state of the art in this field. I'm sure you have, but thought I'd link it here anywhere.

Quote taken from this article (which links to relevant papers):

http://www.serpentine.com/blog/2011/06/29/here-be-dragons-advances-in-problems-you-didnt-even-know-you-had/

In 2010, Florian Loitsch published a wonderful paper in PLDI, "Printing floating-point numbers quickly and accurately with integers", which represents the biggest step in this field in 20 years: he mostly figured out how to use machine integers to perform accurate rendering! Why do I say "mostly"? Because although Loitsch's "Grisu3" algorithm is very fast, it gives up on about 0.5% of numbers, in which case you have to fall back to Dragon4 or a derivative.

If you're a language runtime author, the Grisu algorithms are a big deal: Grisu3 is about 5 times faster than the algorithm used by printf in GNU libc, for instance. A few language implementors have already taken note: Google hired Loitsch, and the Grisu family acts as the default rendering algorithms in both the V8 and Mozilla Javascript engines (replacing David Gay's 17-year-old dtoa code). Loitsch has kindly released implementations of his Grisu algorithms as a library named double-conversion.
History
Date User Action Args
2011-06-29 09:48:42michael.foordsetrecipients: + michael.foord, tim.peters, rhettinger, mark.dickinson, eric.smith
2011-06-29 09:48:42michael.foordsetmessageid: <1309340922.71.0.421664468816.issue7117@psf.upfronthosting.co.za>
2011-06-29 09:48:42michael.foordlinkissue7117 messages
2011-06-29 09:48:41michael.foordcreate