[PATCH 0/4] Fix huge error for pow detected by Paul Zimmermann
Andoni Arregi
andoni.arregui@gtd-gmbh.de
Thu Apr 13 14:39:22 GMT 2023
Dear Paul,
thank *you* for detecting the errors/inaccuracies first (questions are as important as the answers) and then
independently confirming that the patch solves them.
You know how tricky this is and how easy it is to fix something here and break it there. That's why such an independent
verification in addition to our tests is so important :-)
By the way, most of the submitted work is product of the effort of our colleague Fabian Schriever.
Best regards
On Thu, 2023-04-13 at 14:16 +0200, Paul Zimmermann wrote:
> Hi Andoni,
>
> I had time to check this patch series on top of be2749c.
>
> I confirm the issue I reported is fixed.
>
> In addition, the maximal known error, which was 636 ulps
> apart from the above issue, has dropped to less than 1 ulp:
>
> pow 0 -1 0x1.4c3064d46aef3p-851,-0x1.cef4118ed50c2p-10 [0.893] 0.892119 0.8921192373561432
>
> Thank you, great work!
>
> Paul
>
> > From: Andoni Arregi <andoni.arregui@gtd-gmbh.de>
> > Cc: Andoni Arregi <andoni.arregui@gtd-gmbh.de>
> > Date: Wed, 12 Apr 2023 17:34:41 +0200
> >
> > This patch series fixes in pow the huge error detected by Paul
> > Zimmermann where x is negative and y is a large odd integer.
> >
> > There is also an accuracy fix for cases where x is close to 1 and y is
> > large.
> >
> > Andoni Arregi (4):
> > Fix missing sign for overflow/underflow where x is negative and y is
> > large odd integer
> > Fix x close to 1, y between 2^31 and 2^64
> > Compare j as unsigned
> > Replace always true if with else
> >
> > newlib/libm/math/e_pow.c | 48 +++++++++++++++++++++-------------------
> > 1 file changed, 25 insertions(+), 23 deletions(-)
> >
> > --
> > 2.40.0
> >
> >
> >
--
Andoni Arregi
Geschäftsführer
GTD GmbH
Ravensburger Str. 32a, 88677 Markdorf
T: +49 7544 96440 22 | M: +49 151 65620499 | F: +49 7544 96440 29
http://www.gtd-gmbh.de andoni.arregi@gtd-gmbh.de
More information about the Newlib
mailing list