Re: Questions about powf inaccuracies on ARM Cortex-M7
Paul Zimmermann <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Hi Matthias, I'm not sure if the code used on ARM is the same as the one used on x86_64. Anyway you can try the following entries from [1] and [2]: x1 = 0x1.d55902p-1 y1 = -0x1.fe037ep+9 powf(x1,y1) yields an error of 169 ulps in Newlib 4.4.0: libm gives 0x1.fffa12p+127 mpfr gives 0x1.fff8cp+127 x2 = 0x1.d6411cp-102 y2 = 0x1.793482p+0 powf(x2,y2) yields an error of 1.0 ulp in Newlib 4.5.0, this is the largest error I found with Newlib 4.5.0 on x86_64 with rounding to nearest (the entry "169" in Table 1 of [2] should read 1.00, I forgot to update it, this will be fixed in the next update). If you find different values than on x86_64, you can try the "check_sample2.c" code we provide to find large errors on ARM (cf [1] or [2]). Best regards, Paul [1] https://members.loria.fr/PZimmermann/papers/glibc240.pdf [2] https://members.loria.fr/PZimmermann/papers/accuracy.pdf