⚠️ r-Libre Maintenance

Due to scheduled maintenance, the platform will be unavailable on Monday, May 4th, 2026 (all day).
Thank you for your patience and understanding.

LogoTeluq
Français
Logo
Open access research
publication repository

Converting an integer to a decimal string in under two nanoseconds [r-libre/4056]

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.

File(s) available for this item:
[thumbnail of numbertostring-7.pdf]  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

Actions (login required)

RÉVISER RÉVISER

--
R
-
L
I
B
R
E
-
P
R
E
P
R
O
D
--
--
R
-
L
I
B
R
E
-
P
R
E
P
R
O
D
--