On Monday, 16 May 2016 at 18:44:57 UTC, Jonathan M Davis wrote:
On Sunday, May 15, 2016 15:49:27 Walter Bright via
Digitalmars-d wrote:
My proposal removes the "whim" by requiring 128 bit precision
for CTFE.
Based on some of the recent discussions, it sounds like having
soft floating point in the compiler would also help with
cross-compilation. So, completely aside from the precision
chosen, it sounds like having a soft floating point
implementation in CTFE would definitely help - though maybe I
misunderstood. My understanding of the floating point stuff is
pretty bad, unfortunately.
My understanding of floating point is bad too. I understand
fixed floating point (a number of bits is considered the
fraction) but as I recall while trying to break down and answer
questions while referring to as much of the information as I
could, the power/significand portion I got stuck when looking at
the raw bits and proper answers failed to come out.
As for soft floating point, I'd hopefully see an option to
control how much precision you can raise it to (so it would
probably be a template struct), as well as making it a library we
can use. Same with fixed integers which we could then incorporate
cent and ucent until such a time that the types are commonly
avaliable. (Afterall 128bit computers will come sooner or later,
maybe in 20 years? I doubt the memory model would need to move up
from 64bit though)
Although for implementation it could use BCD math instead (which
is easier to print off as decimal); Just specify the number of
digits for precision (40+), how many digits it can shift
larger/smaller; The floating point type would be related to the
8-bit computers of old but on steroids! Actually basic floating
point like that wouldn't be too hard to implement over a weekend.