Hello,

I am working on a port of DragonBox to Java. If there is interest in
contributing this is most welcome.

Suminda

On Fri, 5 Feb 2021 at 21:51, Raffaello Giulietti <
raffaello.giulie...@gmail.com> wrote:

> Hello,
>
> as a reminder, a Java implementation of Schubfach [1] intended to
> replace the current slow and expensive OpenJDK (Double|Float)::toString
> algorithm has been discussed, presented and contributed to this mailing
> list in several posts. The last implementation is available in pre-Skara
> webrev form, as referenced in [2]. On my laptop hardware, the speedup
> factor is 17.7x wrt OpenJDK.
>
>
>
> Recently, Alexander Bolz translated Schubfach to C++ for the purpose of
> comparing the performance of several bin2dec floating-point numbers
> algorithms [3].
>
> In the meantime, Junekey Jeon implemented and perfected his own
> Dragonbox in C++, a new algorithm based on Schubfach [4]. From [5]: "In
> addition to the core idea of Schubfach, Dragonbox utilizes some
> Grisu-like ideas to minimize the number of expensive 128-bit × 64-bit
> multiplications, at the cost of having more branches and
> divisions-by-constants."
>
> In the C++ ecosystem, Schubfach has been the fastest known algorithm
> before being gently pushed aside by Dragonbox, as can be seen in the
> graphs in [3].
>
>
>
> While developing Schubfach back in 2018, I experimented myself with
> blending core Schubfach with my own earlier algorithm similar to Grisu.
> However, probably due to uncontrollable JIT compilation behavior, I
> could not observe any benefit. On the contrary, I measured performance
> drops probably because of the added complexity, which is public enemy
> nr. 1 for JIT compilers. Therefore, I opted for the simpler current
> design that seemed more suitable for (the then 2018 version of) C2.
>
>
>
> I hope this can somehow revive this community's interest and confidence
> toward Schubfach to definitely supplant the current expensive
> (Double|Float)::toString algorithm.
>
>
> Greetings
> Raffaello
>
> ----
>
> [1] https://drive.google.com/open?id=1luHhyQF9zKlM8yJ1nebU0OgVYhfC6CBN
> [2]
>
> https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-March/065297.html
> [3] https://github.com/abolz/Drachennest
> [4] https://github.com/jk-jeon/dragonbox
> [5]
> https://github.com/jk-jeon/dragonbox/blob/master/other_files/Dragonbox.pdf
>

Reply via email to