5 papers · 1 filter
Converting an Integer to a Decimal String in Under Two Nanoseconds
Jaël Champagne Gareau, Daniel Lemire
Converting binary integers to variable-length decimal strings is a fundamental operation in computing. Conventional fast approaches rely on recursive division and small lookup tabl…
Scanning HTML at Tens of Gigabytes per Second on ARM Processors
Daniel Lemire
Modern processors have instructions to process 16 bytes or more at once. These instructions are called SIMD, for single instruction, multiple data. Recent advances have leveraged S…
Faster Positional-Population Counts for AVX2, AVX-512, and ASIMD
Robert Clausecker, Daniel Lemire, Florian Schintke
The positional population count operation pospopcnt() counts for an array of w-bit words how often each of the w bits was set. Various applications in bioinformatics, database engi…
Parsing Millions of DNS Records per Second
Jeroen Koekkoek, Daniel Lemire
The Domain Name System (DNS) plays a critical role in the functioning of the Internet. It provides a hierarchical name space for locating resources. Data is typically stored in pla…
Batched Ranged Random Integer Generation
Nevin Brackett-Rozinsky, Daniel Lemire
Pseudorandom values are often generated as 64-bit binary words. These random words need to be converted into ranged values without statistical bias. We present an efficient algorit…