From 291b65dd831b47e9596a67ce3fac99cbe5ed35ae Mon Sep 17 00:00:00 2001 From: Raunaq Morarka Date: Sun, 27 Feb 2022 21:26:15 +0530 Subject: [PATCH] Move minExcludeNaN, maxExcludeNaN to MoreMath --- .../java/io/trino/cost/StatisticRange.java | 24 ++----------------- .../src/main/java/io/trino/util/MoreMath.java | 22 +++++++++++++++++ 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/core/trino-main/src/main/java/io/trino/cost/StatisticRange.java b/core/trino-main/src/main/java/io/trino/cost/StatisticRange.java index 98398ef14350..60eb988a4802 100644 --- a/core/trino-main/src/main/java/io/trino/cost/StatisticRange.java +++ b/core/trino-main/src/main/java/io/trino/cost/StatisticRange.java @@ -17,6 +17,8 @@ import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; +import static io.trino.util.MoreMath.maxExcludeNaN; +import static io.trino.util.MoreMath.minExcludeNaN; import static java.lang.Double.NaN; import static java.lang.Double.isFinite; import static java.lang.Double.isInfinite; @@ -173,28 +175,6 @@ public StatisticRange addAndCollapseDistinctValues(StatisticRange other) return new StatisticRange(minExcludeNaN(low, other.low), maxExcludeNaN(high, other.high), newDistinctValues); } - private static double minExcludeNaN(double v1, double v2) - { - if (isNaN(v1)) { - return v2; - } - if (isNaN(v2)) { - return v1; - } - return min(v1, v2); - } - - private static double maxExcludeNaN(double v1, double v2) - { - if (isNaN(v1)) { - return v2; - } - if (isNaN(v2)) { - return v1; - } - return max(v1, v2); - } - @Override public boolean equals(Object o) { diff --git a/core/trino-main/src/main/java/io/trino/util/MoreMath.java b/core/trino-main/src/main/java/io/trino/util/MoreMath.java index 17fb01e4386f..06820b18b384 100644 --- a/core/trino-main/src/main/java/io/trino/util/MoreMath.java +++ b/core/trino-main/src/main/java/io/trino/util/MoreMath.java @@ -122,4 +122,26 @@ public static double averageExcludingNaNs(double first, double second) } return firstNonNaN(first, second); } + + public static double minExcludeNaN(double v1, double v2) + { + if (isNaN(v1)) { + return v2; + } + if (isNaN(v2)) { + return v1; + } + return min(v1, v2); + } + + public static double maxExcludeNaN(double v1, double v2) + { + if (isNaN(v1)) { + return v2; + } + if (isNaN(v2)) { + return v1; + } + return max(v1, v2); + } }