[PATCH] Optimize logarithm addition and subtraction
Bernd Edlinger
bernd.edlinger@hotmail.de
Sun Aug 5 19:21:00 GMT 2018
On 08/05/18 20:35, Marc Glisse wrote:
> On Sun, 5 Aug 2018, Bernd Edlinger wrote:
>
>>> merging log a + log b => log a*b and
>>
>> Maybe a*b could overflow, while adding the logarithms would not?
>
> Well, that's a discussion that happens every time a new transformation is added to -funsafe-math-optimizations (I assume this one is under that umbrella?). We already may get extra overflow with -fassociative-math for instance. Sure, the overflow (or underflow!) is more likely for log than for addition, but this still seems like the kind of transformation that -ffast-math should enable, in my opinion. Now we can see if I am in the minority...
>
Yes, this should be unsafe-math
Regarding the second transformation, I think it is invalid.
I tried in sage:
sage: a=2
sage: b=3
sage: x=5
sage: y=6
sage: p = x*log(a) + y*log(b)
sage: q = x*y*log(a*b)
sage: print p
6*log(3) + 5*log(2)
sage: print q
30*log(6)
sage: print numerical_approx(p)
10.0574096348084
sage: print numerical_approx(q)
53.7527840768416
Bernd.
More information about the Gcc-patches
mailing list