summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/distance/DistanceUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/distance/DistanceUtil.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/distance/DistanceUtil.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/distance/DistanceUtil.java b/src/de/lmu/ifi/dbs/elki/distance/DistanceUtil.java
index 7a394b8b..eaa6c96c 100644
--- a/src/de/lmu/ifi/dbs/elki/distance/DistanceUtil.java
+++ b/src/de/lmu/ifi/dbs/elki/distance/DistanceUtil.java
@@ -23,7 +23,10 @@ package de.lmu.ifi.dbs.elki.distance;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+import de.lmu.ifi.dbs.elki.database.query.distance.DistanceQuery;
+import de.lmu.ifi.dbs.elki.distance.distancefunction.DistanceFunction;
import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance;
+import de.lmu.ifi.dbs.elki.distance.distancevalue.DoubleDistance;
/**
* Class with distance related utility functions.
@@ -89,4 +92,26 @@ public final class DistanceUtil {
return d1;
}
}
+
+ /**
+ * Test whether a distance function is double-valued.
+ *
+ * @param df Distance function
+ * @return True when the distance function returns double values
+ */
+ public static boolean isDoubleDistanceFunction(DistanceFunction<?, ?> df) {
+ Object factory = df.getDistanceFactory();
+ return (factory == DoubleDistance.FACTORY) || (factory instanceof DoubleDistance);
+ }
+
+ /**
+ * Test whether a distance query is double-valued.
+ *
+ * @param df Distance function
+ * @return True when the distance function returns double values
+ */
+ public static boolean isDoubleDistanceFunction(DistanceQuery<?, ?> df) {
+ Object factory = df.getDistanceFactory();
+ return (factory == DoubleDistance.FACTORY) || (factory instanceof DoubleDistance);
+ }
} \ No newline at end of file