Open access research
publication repository
publication repository
Champagne Gareau, Jaël, & Lemire, Daniel (In Press). Converting binary floating-point numbers to shortest decimal strings: An experimental review. Software: Practice and Experience.
File(s) available for this item:|
PDF
- floatserialize.pdf
Content : Final, unpublished version License : Creative Commons Attribution. |
|
| Item Type: | Journal Articles |
|---|---|
| Refereed: | Yes |
| Status: | In Press |
| Abstract: | When sharing or logging numerical data, we must convert binary floating-point numbers into their decimal string representations. For example, the number π might become 3.1415927. Engineers have perfected many algorithms for producing such accurate, short strings. We present an empirical comparison across diverse hardware architectures and datasets. Cutting-edge techniques like Schubfach and Dragonbox achieve up to a tenfold speedup over Steele and White's Dragon4, executing as few as 210 instructions per conversion compared to Dragon4's 1500-5000 instructions. Often per their specification, none of the implementations we surveyed consistently produced the shortest possible strings-some generate outputs up to 30% longer than optimal. We find that standard library implementations in languages such as C++ and Swift execute significantly more instructions than the fastest methods, with performance gaps varying across CPU architectures and compilers. We suggest some optimization targets for future research. |
| Depositor: | Lemire, Daniel |
| Owner / Manager: | Daniel Lemire |
| Deposited: | 16 Jan 2026 15:42 |
| Last Modified: | 16 Jan 2026 15:42 |
|
RÉVISER |