August 23, 2013
Am Fri, 23 Aug 2013 01:34:39 +0200
schrieb Iain Buclaw <ibuclaw@ubuntu.com>:
> 
> Make Don aware of this. But looks ok to me.  Does it fail in the same way for double on x86/x86_64?

If I modify frexp to use double instead of real it also fails on
x86 in the same way:
http://dpaste.dzfl.pl/72725240


But the double code path is not used on x86. x86 always uses the real version and therefore doesn't show this issue. I'll file a pull request on github and ping Don about this.
August 23, 2013
Am Fri, 16 Aug 2013 18:33:14 +0200
schrieb "Iain Buclaw" <ibuclaw@ubuntu.com>:

> I've pushed in pure implementations of functions in std.math, removing the workaround in core.stdc.math.
> 
> This passes for x64/x32. Can any ARM testers please report any problems causecd by this update?

Do you have any uncommitted changes for std.math? There's one remaining
test that fails on the auto-tester and on my machine:
http://d.puremagic.com/test-results/test_data.ghtml?projectid=2&runid=50062&logid=13

In std.math, line 1947:
assert(expi(1.3e5L) == cos(1.3e5L) + sin(1.3e5L) * 1i);

seems like constant folding at work again, this passes:
--------
    real input = 1.3e5L;
    assert(expi(1.3e5L) == cos(input) + sin(input) * 1i);
--------
August 23, 2013
On 23 August 2013 15:04, Johannes Pfau <nospam@example.com> wrote:
> Am Fri, 16 Aug 2013 18:33:14 +0200
> schrieb "Iain Buclaw" <ibuclaw@ubuntu.com>:
>
>> I've pushed in pure implementations of functions in std.math, removing the workaround in core.stdc.math.
>>
>> This passes for x64/x32. Can any ARM testers please report any problems causecd by this update?
>
> Do you have any uncommitted changes for std.math? There's one remaining
> test that fails on the auto-tester and on my machine:
> http://d.puremagic.com/test-results/test_data.ghtml?projectid=2&runid=50062&logid=13
>
> In std.math, line 1947:
> assert(expi(1.3e5L) == cos(1.3e5L) + sin(1.3e5L) * 1i);
>
> seems like constant folding at work again, this passes:
> --------
>     real input = 1.3e5L;
>     assert(expi(1.3e5L) == cos(input) + sin(input) * 1i);
> --------

Weird, I've never noticed this when running on 32bit/64bit test machines locally (maybe because I use gcc-4.9 development?)

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
1 2
Next ›   Last »