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(ab)) < tolerance
L2 norm: equals(a, b, tolerance) = sqrt(sum((ab)^2)) < tolerance
Linfinity norm: equals(a, b, tolerance) = max(abs(ab)) < tolerance
All are useful.
Which did you think you wanted?
On Tue, Apr 28, 2009 at 6:23 AM, Gilles Sadowski <
gilles@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 precisionlevel, they should be considered
> equal.
>
> 
> To unsubscribe, email: devunsubscribe@commons.apache.org
> For additional commands, email: devhelp@commons.apache.org
>
>

Ted Dunning, CTO
DeepDyve
111 West Evelyn Ave. Ste. 202
Sunnyvale, CA 94086
www.deepdyve.com
8584140013 (m)
4087730220 (fax)
