November 07, 2015
On Saturday, 7 November 2015 at 20:34:06 UTC, Dan Olson wrote:
> Joakim <dlang@joakim.fea.st> writes:
>> Hmm, that's strange, this commit didn't fix the 64-bit issues for you? I believe it fixed them for me on Android/ARM:
>>
>> https://github.com/ldc-developers/phobos/commit/9d1b49578ffa4b2e848159cfe5afe80b5e4c26eb
>
> Yes, but there is still one case not working for both iOS armv7 and arm64 in 0.16.1.  It is only off by one ulp so I'll make a PR for that.
>
> https://github.com/ldc-developers/phobos/blob/ldc/std/internal/math/gammafunction.d#L540

OK, somehow doesn't assert for me on Android/ARMv7.

> And then this new stuff in 2.068 is failing in various places.
>
> https://github.com/ldc-developers/phobos/commit/9b86eebed53c800a58dfa7e065dcb9e11cdae5c5

Yeah, that's the new function I mentioned earlier.  Initializing the constant maxY ends up calling log2 through CTFE, the intrinsic for which doesn't exist in Kai's longdouble2 branch.  I was going to look at writing one, feel free to beat me to it. ;)

Or if you added that log2 to your branch already, could be other issues too, haven't gotten that far.
November 07, 2015
Joakim <dlang@joakim.fea.st> writes:

> On Saturday, 7 November 2015 at 20:34:06 UTC, Dan Olson wrote:
>> Joakim <dlang@joakim.fea.st> writes:
>>> Hmm, that's strange, this commit didn't fix the 64-bit issues for you? I believe it fixed them for me on Android/ARM:
>>>
>>> https://github.com/ldc-developers/phobos/commit/9d1b49578ffa4b2e848159cfe5afe80b5e4c26eb
>>
>> Yes, but there is still one case not working for both iOS armv7 and arm64 in 0.16.1.  It is only off by one ulp so I'll make a PR for that.
>>
>> https://github.com/ldc-developers/phobos/blob/ldc/std/internal/math/gammafunction.d#L540
>
> OK, somehow doesn't assert for me on Android/ARMv7.

Different math libs I suspect is the cause.

>> And then this new stuff in 2.068 is failing in various places.
>>
>> https://github.com/ldc-developers/phobos/commit/9b86eebed53c800a58dfa7e065dcb9e11cdae5c5
>
> Yeah, that's the new function I mentioned earlier.  Initializing the constant maxY ends up calling log2 through CTFE, the intrinsic for which doesn't exist in Kai's longdouble2 branch.  I was going to look at writing one, feel free to beat me to it. ;)
>
> Or if you added that log2 to your branch already, could be other issues too, haven't gotten that far.

I don't use longdouble2 branch currently, but only because I had another simpler 64-bit specific solution.  Yes, I had to add log() to it for CTFE.

longdouble2 does need to get into LDC to make general support of cross-compilers easier.  Kai's main concern was about CTFE accuracy for functions like sin().  Someone or us should start on that.

I traced through the new gammafunction errors and several are due to subnormals getting fed to log(). Many iOS math functions treat subnormals as zero, producing different results.  I just have to find them and revise the unitttests.
1 2
Next ›   Last »