-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Accurate number parsing #19
Comments
I'm sorry, but I couldn't find the energy to keep working on the library. I am aware that numbers in the "denormalized" range and IIRC with extreme exponents aren't parsed correctly. The rarer cases have a "goto" line to move their code out of the hot loop, but no implementation. The common range of values used in the original benchmark was supposed to be parsed accurately though. You have done a great job with Mir for the Dlang ecosystem and I think if "fast" was supposed to be a JSON parser, building on top of that foundation would be a good idea. But it was really supposed to be a no dependency, everything inlined type of collection of some particularly fast algorithms developed in recent years or simply standard algorithms, but with the use of the latest SSE or AVX instruction sets. Fast number parsing was one such aspect with JSON as a practical application. If the benchmark is changed to use more extreme values, I'd just opt for removing "fast" from the table. I had a good time with it and feel like it inspired others to try and optimize their implementations which may have benefited users of Firefox and other open or closed source software. |
Additionally: - D fast is removed from the tests (it doesn't work with the new test suite: etcimon/fast#19 and it's most likely it's not going to be fixed); - Java (ND4J) test has been fixed to use the same algorithms as other tests; - Some merge issues have been resolved.
* Initial primes tests have been added. * Fixed link. * Maintenance update May 11. 2021. Additionally: - D fast is removed from the tests (it doesn't work with the new test suite: etcimon/fast#19 and it's most likely it's not going to be fixed); - Java (ND4J) test has been fixed to use the same algorithms as other tests; - Some merge issues have been resolved.
Current implementation has inaccurate number parsing.
How to Read Floating Point Numbers Accurately by William D. Clinger - a classic paper on number parsing.
mir.bignum.decimal can be used for parsing and precise conversion to double.
The text was updated successfully, but these errors were encountered: