Pfiffikus 957b98a32a well-defined newEpsilon, target-epsilon, invisible default scale
What about to check for a well-defined newEpsilon (cf. http://realtimecollisiondetection.net/blog/?p=89)?
Apart from computational sciences view (cf. https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ or https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) I would prefer two slight modifications referring to https://en.wikipedia.org/wiki/Approximation_error#Formal_Definition:
The given epsilon should refer to the target value, otherwise the result would be unexpected, e.g. 101.02 == Approx(100).epsilon(0.01) gets true. The default scale should be invisible, thus, e.g. 101.01 == Approx(100).epsilon(0.01) gets false. Finally (both modifications accepted) even 101.000001 == Approx(100).epsilon(0.01) should get false, e.g.

To prevent a misuse of epsilon its setting should be checked.
2017-10-26 09:19:57 +02:00
..