<div dir="ltr"><div>Hello,</div><div><div></div><div><br></div><div>this has been fixed in pygame upstream here: <a href="https://github.com/pygame/pygame/pull/391/commits/630b40ecd7be4ac5583d9ace0ad125190c6abf33">https://github.com/pygame/pygame/pull/391/commits/630b40ecd7be4ac5583d9ace0ad125190c6abf33</a><br></div><div><br></div><div>It will be part of the pygame 1.9.4 upstream release.<br></div><div><br></div><div>best regards,<br></div><div><br></div><br></div><div><br></div><div>On Sun, 21 May 2017 21:50:58 +0100 Edmund Grimley Evans <<a href="mailto:edmund.grimley.evans@gmail.com">edmund.grimley.evans@gmail.com</a>> wrote:</div>> On arm64 and at least one other architecture, the error says:<br>> <br>> -3.2862601528904633e-16 != 0<br>> <br>> It looks as though the test is computing (1.2 * 3.4 - 3.4 * 1.2).<br>> <br>> Now, the log to base 2 of (1.2 * 3.4) divided by 3.286e-16 is about<br>> 53.5. There are 52 bits in the mantissa of a 64-bit float, or 53<br>> including the implicit "1". So I would guess that the error comes from<br>> multiply and subtract being combined into a single operation, so that<br>> the error in computing 1.2 * 3.4 is revealed.<br>> <br>> If this is a real problem, perhaps "cross" could be implemented in a<br>> way that prevents multiply-subtract from being used. If it is not a<br>> real problem, then the test should be made less sensitive, perhaps by<br>> requiring the absolute value of the result to be less than 1e-12 or<br>> some other arbitrary epsilon.<br>> <br>> <br></div>