Fix references to util functions not yet released.
diff --git a/src/main/java/org/apache/datasketches/ExponentiallySpacedPoints.java b/src/main/java/org/apache/datasketches/ExponentiallySpacedPoints.java
deleted file mode 100644
index ebc62c5..0000000
--- a/src/main/java/org/apache/datasketches/ExponentiallySpacedPoints.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches;
-
-import static java.lang.Math.E;
-import static java.lang.Math.exp;
-import static java.lang.Math.pow;
-import static org.apache.datasketches.Util.evenlySpaced;
-import static org.apache.datasketches.Util.evenlySpacedFloats;
-
-/**
- * @author Lee Rhodes
- */
-public class ExponentiallySpacedPoints {
-
-  /**
-   * Generates a double[] of monotonic points that are exponentially distributed between the
-   * endpoints x1 and x2.
-   * @param x1 The first point
-   * @param x2 The last point
-   * @param numPoints must be greater than 2
-   * @param exponent must be positive and ≥ 1.0
-   * @param denseHigh if true, the highest density of points will be close to x2, otherwise x1.
-   * @return the exponentially distributed points.
-   */
-  public static double[] expSpaced(final double x1, final double x2, final int numPoints,
-      final double exponent, final boolean denseHigh) {
-    final double[] outArr = evenlySpaced(0.0, 1.0, numPoints);
-    final double range = x2 - x1;
-
-    if (denseHigh) {
-      for (int i = 0; i < numPoints; i++) {
-        final double y = 1.0 - ( exp(pow(1.0 - outArr[i], exponent)) - 1.0) / (E - 1.0);
-        outArr[i] = y * range + x1;
-      }
-    } else { //denseLow
-      for (int i = 0; i < numPoints; i++) {
-        final double y = (exp(pow(outArr[i], exponent)) - 1.0) / (E - 1.0);
-        outArr[i] = y * range + x1;
-      }
-    }
-    return outArr;
-  }
-
-  /**
-   * Generates a float[] of monotonic points that are exponentially distributed between the
-   * endpoints x1 and x2.
-   * @param x1 The first point
-   * @param x2 The last point
-   * @param numPoints must be greater than 2
-   * @param exponent must be positive and &ge; 1.0
-   * @param denseHigh if true, the highest density of points will be close to x2, otherwise x1.
-   * @return the exponentially distributed points.
-   */
-  public static float[] expSpacedFloats(final double x1, final double x2, final int numPoints,
-      final double exponent, final boolean denseHigh) {
-    final float[] outArr = evenlySpacedFloats(0.0f, 1.0f, numPoints);
-    final double range = x2 - x1;
-
-    if (denseHigh) {
-      for (int i = 0; i < numPoints; i++) {
-        final double y = 1.0 - ( exp(pow(1.0 - outArr[i], exponent)) - 1.0) / (E - 1.0);
-        outArr[i] = (float)(y * range + x1);
-      }
-    } else { //denseLow
-      for (int i = 0; i < numPoints; i++) {
-        final double y = (exp(pow(outArr[i], exponent)) - 1.0) / (E - 1.0);
-        outArr[i] = (float)(y * range + x1);
-      }
-    }
-    return outArr;
-  }
-
-  static void println(final Object o) { System.out.println(o.toString()); }
-}
diff --git a/src/main/java/org/apache/datasketches/SpacedPoints.java b/src/main/java/org/apache/datasketches/SpacedPoints.java
new file mode 100644
index 0000000..1e0aa30
--- /dev/null
+++ b/src/main/java/org/apache/datasketches/SpacedPoints.java
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.datasketches;
+
+import static java.lang.Math.E;
+import static java.lang.Math.exp;
+import static java.lang.Math.log;
+import static java.lang.Math.pow;
+
+/**
+ * @author Lee Rhodes
+ */
+public class SpacedPoints {
+  private static final double LOG2 = log(2.0);
+
+  /**
+   * Generates a double[] of monotonic points that are exponentially distributed between the
+   * endpoints x1 and x2.
+   * @param x1 The first point
+   * @param x2 The last point
+   * @param numPoints must be greater than 2
+   * @param exponent must be positive and &ge; 1.0
+   * @param denseHigh if true, the highest density of points will be close to x2, otherwise x1.
+   * @return the exponentially distributed points.
+   */
+  public static double[] expSpaced(final double x1, final double x2, final int numPoints,
+      final double exponent, final boolean denseHigh) {
+    final double[] outArr = evenlySpaced(0.0, 1.0, numPoints);
+    final double range = x2 - x1;
+
+    if (denseHigh) {
+      for (int i = 0; i < numPoints; i++) {
+        final double y = 1.0 - ( exp(pow(1.0 - outArr[i], exponent)) - 1.0) / (E - 1.0);
+        outArr[i] = y * range + x1;
+      }
+    } else { //denseLow
+      for (int i = 0; i < numPoints; i++) {
+        final double y = (exp(pow(outArr[i], exponent)) - 1.0) / (E - 1.0);
+        outArr[i] = y * range + x1;
+      }
+    }
+    return outArr;
+  }
+
+  /**
+   * Generates a float[] of monotonic points that are exponentially distributed between the
+   * endpoints x1 and x2.
+   * @param x1 The first point
+   * @param x2 The last point
+   * @param numPoints must be greater than 2
+   * @param exponent must be positive and &ge; 1.0
+   * @param denseHigh if true, the highest density of points will be close to x2, otherwise x1.
+   * @return the exponentially distributed points.
+   */
+  public static float[] expSpacedFloats(final double x1, final double x2, final int numPoints,
+      final double exponent, final boolean denseHigh) {
+    final float[] outArr = evenlySpacedFloats(0.0f, 1.0f, numPoints);
+    final double range = x2 - x1;
+
+    if (denseHigh) {
+      for (int i = 0; i < numPoints; i++) {
+        final double y = 1.0 - ( exp(pow(1.0 - outArr[i], exponent)) - 1.0) / (E - 1.0);
+        outArr[i] = (float)(y * range + x1);
+      }
+    } else { //denseLow
+      for (int i = 0; i < numPoints; i++) {
+        final double y = (exp(pow(outArr[i], exponent)) - 1.0) / (E - 1.0);
+        outArr[i] = (float)(y * range + x1);
+      }
+    }
+    return outArr;
+  }
+
+  /**
+   * Returns a double array of evenly spaced values between value1 and value2 inclusive.
+   * If value2 &gt; value1, the resulting sequence will be increasing.
+   * If value2 &lt; value1, the resulting sequence will be decreasing.
+   * @param value1 will be in index 0 of the returned array
+   * @param value2 will be in the highest index of the returned array
+   * @param num the total number of values including value1 and value2. Must be 2 or greater.
+   * @return a double array of evenly spaced values between value1 and value2 inclusive.
+   */
+  public static double[] evenlySpaced(final double value1, final double value2, final int num) {
+    if (num < 2) {
+      throw new SketchesArgumentException("num must be >= 2");
+    }
+    final double[] out = new double[num];
+    out[0] = value1;
+    out[num - 1] = value2;
+    if (num == 2) { return out; }
+
+    final double delta = (value2 - value1) / (num - 1);
+
+    for (int i = 1; i < num - 1; i++) { out[i] = i * delta + value1; }
+    return out;
+  }
+
+  /**
+   * Returns a float array of evenly spaced values between value1 and value2 inclusive.
+   * If value2 &gt; value1, the resulting sequence will be increasing.
+   * If value2 &lt; value1, the resulting sequence will be decreasing.
+   * @param value1 will be in index 0 of the returned array
+   * @param value2 will be in the highest index of the returned array
+   * @param num the total number of values including value1 and value2. Must be 2 or greater.
+   * @return a float array of evenly spaced values between value1 and value2 inclusive.
+   */
+  public static float[] evenlySpacedFloats(final float value1, final float value2, final int num) {
+    if (num < 2) {
+      throw new SketchesArgumentException("num must be >= 2");
+    }
+    final float[] out = new float[num];
+    out[0] = value1;
+    out[num - 1] = value2;
+    if (num == 2) { return out; }
+
+    final float delta = (value2 - value1) / (num - 1);
+
+    for (int i = 1; i < num - 1; i++) { out[i] = i * delta + value1; }
+    return out;
+  }
+
+  /**
+   * Returns a double array of values between min and max inclusive where the log of the
+   * returned values are evenly spaced.
+   * If value2 &gt; value1, the resulting sequence will be increasing.
+   * If value2 &lt; value1, the resulting sequence will be decreasing.
+   * @param value1 will be in index 0 of the returned array, and must be greater than zero.
+   * @param value2 will be in the highest index of the returned array, and must be greater than zero.
+   * @param num the total number of values including value1 and value2. Must be 2 or greater
+   * @return a double array of exponentially spaced values between value1 and value2 inclusive.
+   */
+  public static double[] evenlyLogSpaced(final double value1, final double value2, final int num) {
+    if (num < 2) {
+      throw new SketchesArgumentException("num must be >= 2");
+    }
+    if (value1 <= 0 || value2 <= 0) {
+      throw new SketchesArgumentException("value1 and value2 must be > 0.");
+    }
+
+    final double[] arr = evenlySpaced(log(value1) / LOG2, log(value2) / LOG2, num);
+    for (int i = 0; i < arr.length; i++) { arr[i] = pow(2.0,arr[i]); }
+    return arr;
+  }
+
+
+
+
+  static void println(final Object o) { System.out.println(o.toString()); }
+}
diff --git a/src/test/java/org/apache/datasketches/characterization/quantiles/ReqSketchAccuracyProfile.java b/src/test/java/org/apache/datasketches/characterization/quantiles/ReqSketchAccuracyProfile.java
index 68460a2..b9b5ddd 100644
--- a/src/test/java/org/apache/datasketches/characterization/quantiles/ReqSketchAccuracyProfile.java
+++ b/src/test/java/org/apache/datasketches/characterization/quantiles/ReqSketchAccuracyProfile.java
@@ -20,7 +20,7 @@
 package org.apache.datasketches.characterization.quantiles;
 
 import static java.lang.Math.round;
-import static org.apache.datasketches.ExponentiallySpacedPoints.expSpaced;
+import static org.apache.datasketches.SpacedPoints.expSpaced;
 import static org.apache.datasketches.GaussianRanks.GAUSSIANS_3SD;
 import static org.apache.datasketches.Util.evenlySpaced;
 import static org.apache.datasketches.Util.pwr2LawNext;