Number parsing at a gigabyte per second. (11th May 2021)
- Record Type:
- Journal Article
- Title:
- Number parsing at a gigabyte per second. (11th May 2021)
- Main Title:
- Number parsing at a gigabyte per second
- Authors:
- Lemire, Daniel
- Abstract:
- Abstract: With disks and networks providing gigabytes per second, parsing decimal numbers from strings becomes a bottleneck. We consider the problem of parsing decimal numbers to the nearest binary floating‐point value. The general problem requires variable‐precision arithmetic. However, we need at most 17 digits to represent 64‐bit standard floating‐point numbers (IEEE 754). Thus, we can represent the decimal significand with a single 64‐bit word. By combining the significand and precomputed tables, we can compute the nearest floating‐point number using as few as one or two 64‐bit multiplications. Our implementation can be several times faster than conventional functions present in standard C libraries on modern 64‐bit systems (Intel, AMD, ARM, and POWER9). Our work is available as open source software used by major systems such as Apache Arrow and Yandex ClickHouse. The Go standard library has adopted a version of our approach.
- Is Part Of:
- Software, practice & experience. Volume 51:Number 8(2021)
- Journal:
- Software, practice & experience
- Issue:
- Volume 51:Number 8(2021)
- Issue Display:
- Volume 51, Issue 8 (2021)
- Year:
- 2021
- Volume:
- 51
- Issue:
- 8
- Issue Sort Value:
- 2021-0051-0008-0000
- Page Start:
- 1700
- Page End:
- 1727
- Publication Date:
- 2021-05-11
- Subjects:
- floating‐point numbers -- IEEE‐754 -- parsing -- software performance
Computer software -- Periodicals
Computer programming -- Periodicals
Computer programs -- Periodicals
005.3 - Journal URLs:
- http://onlinelibrary.wiley.com/ ↗
- DOI:
- 10.1002/spe.2984 ↗
- Languages:
- English
- ISSNs:
- 0038-0644
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 8321.453000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 17446.xml