Open access research
publication repository
publication repository
Champagne Gareau, Jaël et Lemire, Daniel
ORCID: https://orcid.org/0000-0003-3306-6922
(In Press).
Converting an integer to a decimal string in under two nanoseconds. Software: Practice and Experience.
|
PDF
- numbertostring-7.pdf
Content : Draft Version License : Creative Commons Attribution. |
|
| Item Type: | Journal Articles |
|---|---|
| Refereed: | Yes |
| Status: | In Press |
| Abstract: | Converting binary integers to variable-length decimal strings is a fundamental operation in computing. Conventional fast approaches rely on recursive division and small lookup tables. We propose a SIMD-based algorithm that leverages integer multiply-add instructions available on recent AMD and Intel processors. Our method eliminates lookup tables entirely and computes multiple quotients and remainders in parallel. Additionally, we introduce a dual-variant design with dynamic selection that adapts to input characteristics: a branch-heavy variant optimized for homogeneous digit-length distributions and a branch-light variant for heterogeneous datasets. Our single-core algorithm consistently outperforms all competing methods across the full range of integer sizes, running 1.4-2x faster than the closest competitor and 2-4x faster than the C++ standard library function std::to_chars across tested workloads. |
| Depositor: | Lemire, Daniel |
| Owner / Manager: | Daniel Lemire |
| Deposited: | 29 Apr 2026 15:57 |
| Last Modified: | 05 May 2026 18:51 |
|
RÉVISER |