[aarch64-port-dev ] RFR: 8189107 - AARCH64: create intrinsic for pow

Andrew Dinn adinn at redhat.com
Fri Aug 24 10:46:29 UTC 2018


On 23/08/18 15:41, Dmitrij Pochepko wrote:
> Since we're talking about large rounding/underflow error, it appearing
> in cases when multipliers and and/or added numbers are very small.
> So, looking at  L1X+ x *(L2X+ x *L3X)+ x^3 * (L4X+ x *(L5X+ x *L6X))
> we can see that there are several cases to check:
> 1) x is near 0
> 2) L1X+ x *(L2X+ x *L3X) is near zero (0.599999999999994648725 + x *
> (0.428571428578550184252 + x *0.333333329818377432918)). Solving
> equation: x = [-0.642857 - 1.1776*i, -0.642857 + 1.1776*i]
> 3) L4X+ x *(L5X+ x *L6X) is near zero (0.272728123808534006489 + x *
> (0.230660745775561754067 + x *0.206975017800338417784)). Solving
> equation: x = [-0.557219 - 1.00359*i, -0.557219 + 1.00359*i]

Well, strictly, this ignores two other cases

4) (L2X + x *L3X) is near zero
5) (L5X + x *L6X) is near zero

i.e.

4') 0.428571428578550184252 + x * 0.333333329818377432918 ~= 0.0
5') 0.230660745775561754067 + x *0.206975017800338417784 ~= 0.0

However, since x is computed as ((x0-1)/(x0+1))^2 -- i.e. it is always
positive -- these equations will never be satisfied either.

regards,


Andrew Dinn
-----------



More information about the aarch64-port-dev mailing list