rfc:grisu3-strtod

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:grisu3-strtod [2011/07/15 16:26] dsprfc:grisu3-strtod [2017/09/22 13:28] (current) – external edit 127.0.0.1
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: Under Discussion+  * Status: Inactive
   * 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://code.google.com/p/double-conversion/|here]].+OpenSource implementation exists [[http://code.google.com/p/double-conversion/|here]]. The grisu3 algorithm fails in about 
 +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/dtoa wrapper for the double-conversion library will go to zend_strtdo_grisu3.cc
  
 ===== Common Misconceptions ===== ===== Common Misconceptions =====
rfc/grisu3-strtod.1310747216.txt.gz · Last modified: 2017/09/22 13:28 (external edit)