On Thu, Jul 25, 2013 at 5:26 PM, Thiago Macieira <[email protected]>wrote:
> > if ((qFuzzyIsNull(p1) && qFuzzyIsNull(p2)) || qFuzzyCompare(p1, p2)) > > That's exactly like the macro with which I end up "convering" the current Qt implementation. On your first reply, you also said that On Thu, Jul 25, 2013 at 1:19 AM, Thiago Macieira <[email protected]>wrote: > > You have to somehow tell qFuzzyCompare about the magnitude of your > comparison. > An error of 1000000 is acceptable when your numbers are in the order of > 1e12. > > ... > > Can't do and won't do that. qFuzzyCompare is meant for non-zero numbers. We > don't want to add the overhead of zero comparisons when the numbers in > question can't be null. > > In my opinion, if a function requires the user to provide a magnitude value (for whatever reason), then that value should be explicitly given in an additional parameter, not implicitly given as an added value to the already given parameters... I think that's a very bad design decision, which finds it's own limitations very fast with the example I gave in the first mail: working with magnitudes of 1e12, I cannot just call qFuzzyCompare(a + 1e12, b + 1e12), because a or b might be -1e12! On the other hand, explicitly not supporting zero values seems to me like a rather arbitrary imposition for a function which compares values. There are so many possible scenarios in which to compare 2 floating-point numbers in which one or both might be "human zero". Temperatures, speeds, weights, coordinates, time-travelling, you name it!
_______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
