Affiliation:
1. University of California at San Diego, USA
Abstract
Floating-point numbers are an essential part of modern software, recently gaining particular prominence on the web as the exclusive numeric format of Javascript. To use floating-point numbers, we require a way to convert binary machine representations into human readable decimal outputs. Existing conversion algorithms make trade-offs between completeness and performance. The classic Dragon4 algorithm by Steele and White and its later refinements achieve completeness --- i.e. produce correct and optimal outputs on all inputs --- by using arbitrary precision integer (bignum) arithmetic which leads to a high performance cost. On the other hand, the recent Grisu3 algorithm by Loitsch shows how to recover performance by using native integer arithmetic but sacrifices optimality for 0.5% of all inputs. We present Errol, a new complete algorithm that is guaranteed to produce correct and optimal results for all inputs while simultaneously being 2x faster than the incomplete Grisu3 and 4x faster than previous complete methods.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference14 articles.
1. Printing floating-point numbers quickly and accurately
2. Special Feature an Implementation Guide to a Proposed Standard for Floating-Point Arithmetic
3. J. T. Coonen. Contributions to a Proposed Standard for Binary Floating-point Arithmetic (Computer Arithmetic). PhD thesis 1984. J. T. Coonen. Contributions to a Proposed Standard for Binary Floating-point Arithmetic (Computer Arithmetic). PhD thesis 1984.
4. A floating-point technique for extending the available precision
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Characterizing uncertainties of Earth system modeling with heterogeneous many-core architecture computing;Geoscientific Model Development;2022-09-05
2. Number parsing at a gigabyte per second;Software: Practice and Experience;2021-05-11
3. Ryū revisited: printf floating point conversion;Proceedings of the ACM on Programming Languages;2019-10-10
4. Rigorous Estimation of Floating-Point Round-Off Errors with Symbolic Taylor Expansions;ACM Transactions on Programming Languages and Systems;2019-03
5. Ryū: fast float-to-string conversion;Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation;2018-06-11