On Sun, Nov 05, 2017 at 11:20:54AM +0100, Oliver Heimlich wrote: > It might be completely unrelated, but I am also seeing arithmetic > problems in Debian's i386 environment that I cannot reproduce locally. > > ####################################### > >>>>> processing crlibm.tst > ***** test verify ("cos", -inf, testdata.cos_rd); > !!!!! test failed > ASSERT errors for: assert (crlibm_function (fname, rnd, > data.input),data.output) > > Location | Observed | Expected | Reason > (23) -0.99317 -0.99317 Abs err 9.5598e-09 exceeds tol 0 > (52) 0.47749 0.4775 Abs err 1.6549e-05 exceeds tol 0 > (82) -0.11467 -0.11467 Abs err 2.1834e-07 exceeds tol 0 > (89) 0.69068 0.69068 Abs err 1.3685e-06 exceeds tol 0 > ####################################### I am able to reproduce this error in my i386 chroot (the host system being amd64). This has already been said several times on this list, but it is important to remember that it is normal to get slightly different numerical results on i386. The reason is that in i386, numerical computations are done with the x87 FPU, which internally stores double-floats with extra precision (80-bits), which means that when several consecutive mathematical operations are done within FPU registers, they do not conform to the IEEE 754 standard for double floats. On the contrary, amd64 uses SSE2 registers, which are 64-bit wide, and therefore conformant to the IEEE standard. However this does not explain why you can't reproduce the result in your i386 chroot… -- ⢀⣴⠾⠻⢶⣦⠀ Sébastien Villemot ⣾⠁⢠⠒⠀⣿⡁ Debian Developer ⢿⡄⠘⠷⠚⠋⠀ http://sebastien.villemot.name ⠈⠳⣄⠀⠀⠀⠀ http://www.debian.org
Attachment:
signature.asc
Description: PGP signature