On Sun, Jun 29, 2014 at 08:54:49AM +0100, Iain Buclaw via Digitalmars-d wrote:
> On 29 Jun 2014 05:48, "H. S. Teoh via Digitalmars-d" <
> digitalmars-d@puremagic.com> wrote:
> >
> > On Sat, Jun 28, 2014 at 08:41:24PM -0700, Andrei Alexandrescu via
> Digitalmars-d wrote:
> > > On 6/28/14, 6:02 PM, Tofu Ninja wrote:
> > [...]
> > > >I think this thread needs to refocus on the main point, getting
> > > >math overloads for float and double and how to mitigate any
> > > >problems that might arise from that.
> > >
> > > Yes please. -- Andrei
> >
> > Let's see the PR!
> >
> 
> I've already raised one (already linked in this thread).

Are you talking about #2274? Interesting that your implementation is
basically identical to my own idea for fixing std.math -- using unions
instead of pointer casting. However, without compiler support for
repainting scalars in a union, I couldn't get what I needed to work. I'm
trying to make atan2 CTFE-able, but it in turn uses isInfinity, isNaN,
signbit, and possibly one or two others, and while I managed to hack
isInfinity and isNaN, signbit defeated me due to the signedness of NaNs,
which cannot be extracted in any other way.


> More to come!

Are you going to implement repainting unions in CTFE? That would be
*awesome*.


[...]
> > Perhaps we can introduce some intrinsics for implementing these
> > functions so that they work both in CTFE and at runtime?
> >
> >         https://issues.dlang.org/show_bug.cgi?id=3749
> >
> 
> CTFE support for accessing basic types in unions - as in painting
> between all kinds of scalar types, with special support for static
> arrays (via vectors) should be all that is required.

I thought as much. Currently, unions don't support repainting in CTFE,
so it doesn't work. I think that's the last hurdle needed, since with
repainting everything else can be done in code.


> Once CTFE supports that, it won't be difficult to get std.math to be
> CTFE-certified. :)
[...]

Looking forward to that!


T

-- 
Why ask rhetorical questions? -- JC

Reply via email to