[libcxx-commits] [PATCH] D70631: Microsoft's floating-point to_chars powered by Ryu and Ryu Printf

Mark de Wever via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Feb 9 10:47:07 PST 2021

Mordante added a comment.

In D70631#2550277 <https://reviews.llvm.org/D70631#2550277>, @STL_MSFT wrote:

>> Are you fine by me commandeering this patch?
> Please go ahead!


>> Do you know whether there are important changes at Microsoft's side that aren't in this patch?
> We've made a few changes upstream, fixing a couple of bugs in extreme corner cases and optimizing things slightly. https://github.com/microsoft/STL/commits/main/stl/inc/charconv shows what's changed.


> There have been a couple of algorithmic developments very recently - for parsing (from_chars), the Eisel-Lemire algorithm is much faster than the technique used here. I would have used it if it were available back then! For formatting, Dragonbox is reportedly slightly faster, but I believe it would be a significant undertaking to replace Ryu/Ryu Printf in this code. (There's the core algorithms, the changes to implement bounds checking, and then the layer that handles fixed/general notation.)

I wasn't aware of the Eisel-Lemire algorithm it looks interesting, thanks. I had a look at Dragonbox before. I was considering whether to implement Dragonbox or Ryu until Louis pointed me at this patch.



More information about the libcxx-commits mailing list