[ https://issues.apache.org/jira/browse/NUMBERS-90?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16753152#comment-16753152 ]
Matt Juntunen commented on NUMBERS-90: -------------------------------------- {quote}Is the "thickness" (*absolute* tolerance) the same for small coordinates as for very large ones? {quote} It's set by the caller for each object. Normally, you would use the same value for all of the objects that you're working with at the time to keep things consistent. For example, you'd choose a relatively large epsilon if you expect your coordinate value range to be large and a smaller one if you expect it to be small. {quote}Unless I'm missing something, I don't think it should be for figuring out whether two points are close. {quote} Are there other options? > DoublePrecisionContext > ---------------------- > > Key: NUMBERS-90 > URL: https://issues.apache.org/jira/browse/NUMBERS-90 > Project: Commons Numbers > Issue Type: New Feature > Reporter: Matt Juntunen > Priority: Blocker > Time Spent: 0.5h > Remaining Estimate: 0h > > We should add a new class to commons-numbers-core that encapsulates > configurable strategies for comparing doubles. This is required for > GEOMETRY-11. Here is what I'm picturing: > {code:java} > // abstract class for the general concept of comparisons > public abstract class DoublePrecisionContext implements Comparator<Double> { > public abstract boolean equals(double a, double b); > public int compare(double a, double b) { /* ... */ } > public int compare(Double a, Double b) { /* ... */ } > } > // ... > // concrete class implementing a specific strategy > public class EpsilonUlpDoublePrecisionContext extends DoublePrecisionContext { > public EpsilonUlpDoublePrecisionContext(double eps, double maxUlps) { /* > ... */ } > @Override > public boolean equals(double a, double b) { /* ... */ } > } {code} > Pull request: https://github.com/apache/commons-numbers/pull/28 -- This message was sent by Atlassian JIRA (v7.6.3#76005)