diff options
author | Reynold Xin <rxin@databricks.com> | 2015-07-30 01:04:24 -0700 |
---|---|---|
committer | Reynold Xin <rxin@databricks.com> | 2015-07-30 01:04:24 -0700 |
commit | 4a8bb9d00d8181aff5f5183194d9aa2a65deacdf (patch) | |
tree | 8ba07a935861132fe5e83aa10c73283308ba716e /core/src/main/java | |
parent | 76f2e393a5fad0db8b56c4b8dad5ef686bf140a4 (diff) | |
download | spark-4a8bb9d00d8181aff5f5183194d9aa2a65deacdf.tar.gz spark-4a8bb9d00d8181aff5f5183194d9aa2a65deacdf.tar.bz2 spark-4a8bb9d00d8181aff5f5183194d9aa2a65deacdf.zip |
Revert "[SPARK-9458] Avoid object allocation in prefix generation."
This reverts commit 9514d874f0cf61f1eb4ec4f5f66e053119f769c9.
Diffstat (limited to 'core/src/main/java')
-rw-r--r-- | core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java b/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java index a9ee6042fe..600aff7d15 100644 --- a/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java +++ b/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java @@ -29,6 +29,7 @@ public class PrefixComparators { public static final StringPrefixComparator STRING = new StringPrefixComparator(); public static final IntegralPrefixComparator INTEGRAL = new IntegralPrefixComparator(); + public static final FloatPrefixComparator FLOAT = new FloatPrefixComparator(); public static final DoublePrefixComparator DOUBLE = new DoublePrefixComparator(); public static final class StringPrefixComparator extends PrefixComparator { @@ -54,6 +55,21 @@ public class PrefixComparators { public final long NULL_PREFIX = Long.MIN_VALUE; } + public static final class FloatPrefixComparator extends PrefixComparator { + @Override + public int compare(long aPrefix, long bPrefix) { + float a = Float.intBitsToFloat((int) aPrefix); + float b = Float.intBitsToFloat((int) bPrefix); + return Utils.nanSafeCompareFloats(a, b); + } + + public long computePrefix(float value) { + return Float.floatToIntBits(value) & 0xffffffffL; + } + + public final long NULL_PREFIX = computePrefix(Float.NEGATIVE_INFINITY); + } + public static final class DoublePrefixComparator extends PrefixComparator { @Override public int compare(long aPrefix, long bPrefix) { |