The current mitk::Equal method for float and double values does only compare these in respect to an absolute epsilon. This leads to the problem that the result of the comparison is only meaningful for numbers in specific ranges since the allowed epsilon must be known.
Example:
If 10000 is compared to 10000.001 they seem to be equal, since there is only a difference of 0.001. But if 0.1 is compared to 0.101 this is very likely not equal, even though the absolute difference is still the same.
We should implement the method described in http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ and provide 3 possible mitk::equal-functions for floating point values.
One showing the same behaviour like the current implementation, one that compares to ULP (e.g. floating point distance) and one compares to with respect to both methods. (Usefull if values near zero are possible, see link)
To ensure that the compare functions work properly we should implement some unit tests which compare fixed floating point values. Since the outcome will be known it can be tested if the comparison method works as intended.