rfc:grisu3-strtod
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
rfc:grisu3-strtod [2011/07/15 16:26] – dsp | rfc:grisu3-strtod [2014/04/08 22:47] – Inactive levim | ||
---|---|---|---|
Line 3: | Line 3: | ||
* Date: 2011-07-15 | * Date: 2011-07-15 | ||
* Author: David Soria Parra <dsp at php dot net> | * Author: David Soria Parra <dsp at php dot net> | ||
- | * Status: | + | * Status: |
* Proposed for: PHP 5.4 | * Proposed for: PHP 5.4 | ||
Line 11: | Line 11: | ||
is David Gays strtod algorithm. This algorithm is used in PHP and can be found in zend_strtod. Recently | is David Gays strtod algorithm. This algorithm is used in PHP and can be found in zend_strtod. Recently | ||
Florian Loitsch found a new algorithm, called grisu3, to this problem. His algorithm is faster than David Gays algorithm. An | Florian Loitsch found a new algorithm, called grisu3, to this problem. His algorithm is faster than David Gays algorithm. An | ||
- | OpenSource implementation exists [[http:// | + | OpenSource implementation exists [[http:// |
+ | 0.5% cases. The library will fall back to David Gays algorithm in that case. | ||
===== Proposal ===== | ===== Proposal ===== | ||
Line 22: | Line 23: | ||
Using grisu3 will speed up string to double and double to string conversions. In particular json_encode and json_decode | Using grisu3 will speed up string to double and double to string conversions. In particular json_encode and json_decode | ||
- | of json data includign doubles will be faster. Simple microbenchmarks show about 30% faster json_decode. | + | of json data includign doubles will be faster. Simple microbenchmarks show about 20% faster json_decode. |
+ | |||
+ | The library includes strtod (string to double) and dtoa (double to string) conversion methods. | ||
+ | zend_strtod and zend_dtoa will provide the same signature. The current algorithm will be moved to zend_strtod_dragon4.c | ||
+ | and the zend_strtod/ | ||
===== Common Misconceptions ===== | ===== Common Misconceptions ===== |
rfc/grisu3-strtod.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1