5 papers
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…
Converting Binary Floating-Point Numbers to Shortest Decimal Strings: An Experimental Review
Jaël Champagne Gareau, Daniel Lemire
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…
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…