Another cool project: make double.to!string CTFEable

tcak via Digitalmars-d digitalmars-d at puremagic.com
Wed Dec 16 09:04:08 PST 2015


On Wednesday, 16 December 2015 at 15:44:45 UTC, Andrei 
Alexandrescu wrote:
> This has been discussed in the past and at a point Walter was 
> looking into it.
>
> Currently std.conv.to applied to double uses snprintf, which is 
> obviously non-CTFEable.
>
> There's been recent work (also discussed here) on fast accurate 
> printing of floating point values, see library 
> "double-conversion" written in C++ and the associated paper 
> http://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf.
>
> Implementing that in D would be awesome because there are many 
> many applications of CTFEing doubles converted to text.
>
>
> Andrei

If the purpose is to make it CTFEable, then we need to make it 
work at first. So, there
is no need to focus on fast accurate implementation. I will try 
to implement it by
multiplication and modulus operations at compile time. But I am 
not sure about how long the decimal part (I don't know what the 
part after point is called) should be. Would it be acceptable if 
it becomes 100 digits in string? What is the limit?


More information about the Digitalmars-d mailing list