Ted Dunning a écrit : > This is a generally useful thing to have, but there are multiple definitions > for how you apply the tolerance. You should file a JIRA and add a patch! > > Among the definitions that are commonly used, you will find: > > L1 norm: equals(a, b, tolerance) = sum(abs(a-b)) < tolerance > L2 norm: equals(a, b, tolerance) = sqrt(sum((a-b)^2)) < tolerance > L-infinity norm: equals(a, b, tolerance) = max(abs(a-b)) < tolerance > > All are useful.
I'll guess for 3D vector the L2-norm is the more useful as it is invariant when physical orthonormal frames are changed. I'll check in the variant you prefer. Luc > > Which did you think you wanted? > > On Tue, Apr 28, 2009 at 6:23 AM, Gilles Sadowski < > gil...@harfang.homelinux.org> wrote: > >> Could we have a >> >> boolean equals(Vector3D other, >> double tolerance) >> >> method? >> Or even >> >> static boolean equals(Vector3D v1, >> Vector3D v2, >> double tolerance) >> >> that would return true if the components are equal within the given >> tolerance. >> >> >> Best, >> Gilles >> >> P.S. It seems that checking for exact equality (as the "equal(Object)" >> method does) is not very useful: If the two vectors being compared >> come from different computations, they will (most of the time) be >> different although, at the precision-level, they should be considered >> equal. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org