You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2017/06/03 00:32:35 UTC

[1/2] [math] MATH-1416: Depend on "Commons Numbers".

Repository: commons-math
Updated Branches:
  refs/heads/master d9979fa97 -> 6f27b4ae8


MATH-1416: Depend on "Commons Numbers".

Use utility methods now defined in module "commons-numbers-angle".


Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/af7f247b
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/af7f247b
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/af7f247b

Branch: refs/heads/master
Commit: af7f247b648bb255307c87764c787c0f0fff8df9
Parents: d9979fa
Author: Gilles <er...@apache.org>
Authored: Sat Jun 3 02:29:30 2017 +0200
Committer: Gilles <er...@apache.org>
Committed: Sat Jun 3 02:29:30 2017 +0200

----------------------------------------------------------------------
 pom.xml                                                   |  6 ++++++
 .../commons/math4/geometry/euclidean/twod/Line.java       | 10 +++++-----
 .../apache/commons/math4/geometry/spherical/oned/Arc.java |  5 +++--
 .../commons/math4/geometry/spherical/oned/ArcsSet.java    |  7 ++++---
 .../commons/math4/geometry/spherical/oned/S1Point.java    |  3 ++-
 .../commons/math4/geometry/spherical/twod/Edge.java       |  3 ++-
 .../commons/math4/fitting/HarmonicCurveFitterTest.java    |  9 +++++----
 .../geometry/euclidean/threed/FieldRotationDSTest.java    |  4 ++--
 .../geometry/euclidean/threed/FieldRotationDfpTest.java   |  4 ++--
 .../math4/geometry/euclidean/threed/RotationTest.java     |  4 ++--
 10 files changed, 33 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 43346cf..3a754a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -388,6 +388,12 @@
 
     <dependency>
       <groupId>org.apache.commons</groupId>
+      <artifactId>commons-numbers-angle</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-client-api</artifactId>
       <version>1.0</version>
     </dependency>

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
index 076179b..c25d6fa 100644
--- a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
+++ b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
@@ -17,6 +17,7 @@
 package org.apache.commons.math4.geometry.euclidean.twod;
 
 import org.apache.commons.numbers.arrays.LinearCombination;
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
 import org.apache.commons.math4.geometry.Point;
@@ -59,7 +60,6 @@ import org.apache.commons.math4.util.MathUtils;
  * @since 3.0
  */
 public class Line implements Hyperplane<Euclidean2D>, Embedding<Euclidean2D, Euclidean1D> {
-
     /** Angle with respect to the abscissa axis. */
     private double angle;
 
@@ -125,7 +125,7 @@ public class Line implements Hyperplane<Euclidean2D>, Embedding<Euclidean2D, Euc
      * @param line line to copy
      */
     public Line(final Line line) {
-        angle        = MathUtils.normalizeAngle(line.angle, FastMath.PI);
+        angle        = PlaneAngleRadians.normalizeBetweenZeroAndTwoPi(line.angle);
         cos          = line.cos;
         sin          = line.sin;
         originOffset = line.originOffset;
@@ -168,7 +168,7 @@ public class Line implements Hyperplane<Euclidean2D>, Embedding<Euclidean2D, Euc
      */
     public void reset(final Cartesian2D p, final double alpha) {
         unlinkReverse();
-        this.angle   = MathUtils.normalizeAngle(alpha, FastMath.PI);
+        this.angle   = PlaneAngleRadians.normalizeBetweenZeroAndTwoPi(alpha);
         cos          = FastMath.cos(this.angle);
         sin          = FastMath.sin(this.angle);
         originOffset = LinearCombination.value(cos, p.getY(), -sin, p.getX());
@@ -414,7 +414,7 @@ public class Line implements Hyperplane<Euclidean2D>, Embedding<Euclidean2D, Euc
      * @return the angle of the line with respect to the abscissa axis
      */
     public double getAngle() {
-        return MathUtils.normalizeAngle(angle, FastMath.PI);
+        return PlaneAngleRadians.normalizeBetweenZeroAndTwoPi(angle);
     }
 
     /** Set the angle of the line.
@@ -422,7 +422,7 @@ public class Line implements Hyperplane<Euclidean2D>, Embedding<Euclidean2D, Euc
      */
     public void setAngle(final double angle) {
         unlinkReverse();
-        this.angle = MathUtils.normalizeAngle(angle, FastMath.PI);
+        this.angle = PlaneAngleRadians.normalizeBetweenZeroAndTwoPi(angle);
         cos        = FastMath.cos(this.angle);
         sin        = FastMath.sin(this.angle);
     }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/Arc.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/spherical/oned/Arc.java b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/Arc.java
index 84c6c5c..ae1f3bd 100644
--- a/src/main/java/org/apache/commons/math4/geometry/spherical/oned/Arc.java
+++ b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/Arc.java
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.math4.geometry.spherical.oned;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.exception.NumberIsTooLargeException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
 import org.apache.commons.math4.geometry.partitioning.Region.Location;
@@ -67,7 +68,7 @@ public class Arc {
             this.upper  = MathUtils.TWO_PI;
             this.middle = FastMath.PI;
         } else  if (lower <= upper) {
-            this.lower  = MathUtils.normalizeAngle(lower, FastMath.PI);
+            this.lower  = PlaneAngleRadians.normalizeBetweenZeroAndTwoPi(lower);
             this.upper  = this.lower + (upper - lower);
             this.middle = 0.5 * (this.lower + this.upper);
         } else {
@@ -119,7 +120,7 @@ public class Arc {
      * Location#INSIDE}, {@link Location#OUTSIDE} or {@link Location#BOUNDARY}
      */
     public Location checkPoint(final double point) {
-        final double normalizedPoint = MathUtils.normalizeAngle(point, middle);
+        final double normalizedPoint = PlaneAngleRadians.normalize(point, middle);
         if (normalizedPoint < lower - tolerance || normalizedPoint > upper + tolerance) {
             return Location.OUTSIDE;
         } else if (normalizedPoint > lower + tolerance && normalizedPoint < upper - tolerance) {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/ArcsSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/spherical/oned/ArcsSet.java b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/ArcsSet.java
index 3e33c81..3db15a3 100644
--- a/src/main/java/org/apache/commons/math4/geometry/spherical/oned/ArcsSet.java
+++ b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/ArcsSet.java
@@ -22,6 +22,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
 import org.apache.commons.math4.exception.MathInternalError;
 import org.apache.commons.math4.exception.NumberIsTooLargeException;
@@ -139,7 +140,7 @@ public class ArcsSet extends AbstractRegion<Sphere1D, Sphere1D> implements Itera
         }
 
         // this is a regular arc, covering only part of the circle
-        final double normalizedLower = MathUtils.normalizeAngle(lower, FastMath.PI);
+        final double normalizedLower = PlaneAngleRadians.normalizeBetweenZeroAndTwoPi(lower);
         final double normalizedUpper = normalizedLower + (upper - lower);
         final SubHyperplane<Sphere1D> lowerCut =
                 new LimitAngle(new S1Point(normalizedLower), false, tolerance).wholeHyperplane();
@@ -731,7 +732,7 @@ public class ArcsSet extends AbstractRegion<Sphere1D, Sphere1D> implements Itera
         final double arcLength = arc.getSup() - arc.getInf();
 
         for (final double[] a : this) {
-            final double syncedStart = MathUtils.normalizeAngle(a[0], reference) - arc.getInf();
+            final double syncedStart = PlaneAngleRadians.normalize(a[0], reference) - arc.getInf();
             final double arcOffset   = a[0] - syncedStart;
             final double syncedEnd   = a[1] - arcOffset;
             if (syncedStart < arcLength) {
@@ -828,7 +829,7 @@ public class ArcsSet extends AbstractRegion<Sphere1D, Sphere1D> implements Itera
             for (int i = 0; i < limits.size(); ++i) {
                 final int    j  = (i + 1) % limits.size();
                 final double lA = limits.get(i);
-                final double lB = MathUtils.normalizeAngle(limits.get(j), lA);
+                final double lB = PlaneAngleRadians.normalize(limits.get(j), lA);
                 if (FastMath.abs(lB - lA) <= getTolerance()) {
                     // the two limits are too close to each other, we remove both of them
                     if (j > 0) {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/S1Point.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/spherical/oned/S1Point.java b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/S1Point.java
index d57d02c..e308bf4 100644
--- a/src/main/java/org/apache/commons/math4/geometry/spherical/oned/S1Point.java
+++ b/src/main/java/org/apache/commons/math4/geometry/spherical/oned/S1Point.java
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.math4.geometry.spherical.oned;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.geometry.Point;
 import org.apache.commons.math4.geometry.Space;
 import org.apache.commons.math4.geometry.euclidean.twod.Cartesian2D;
@@ -48,7 +49,7 @@ public class S1Point implements Point<Sphere1D> {
      * @see #getAlpha()
      */
     public S1Point(final double alpha) {
-        this(MathUtils.normalizeAngle(alpha, FastMath.PI),
+        this(PlaneAngleRadians.normalizeBetweenZeroAndTwoPi(alpha),
              new Cartesian2D(FastMath.cos(alpha), FastMath.sin(alpha)));
     }
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/main/java/org/apache/commons/math4/geometry/spherical/twod/Edge.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/spherical/twod/Edge.java b/src/main/java/org/apache/commons/math4/geometry/spherical/twod/Edge.java
index 975407d..c2139f7 100644
--- a/src/main/java/org/apache/commons/math4/geometry/spherical/twod/Edge.java
+++ b/src/main/java/org/apache/commons/math4/geometry/spherical/twod/Edge.java
@@ -18,6 +18,7 @@ package org.apache.commons.math4.geometry.spherical.twod;
 
 import java.util.List;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.geometry.euclidean.threed.Cartesian3D;
 import org.apache.commons.math4.geometry.spherical.oned.Arc;
 import org.apache.commons.math4.util.FastMath;
@@ -128,7 +129,7 @@ public class Edge {
         // get the inside arc, synchronizing its phase with the edge itself
         final double edgeStart        = circle.getPhase(start.getLocation().getVector());
         final Arc    arc              = circle.getInsideArc(splitCircle);
-        final double arcRelativeStart = MathUtils.normalizeAngle(arc.getInf(), edgeStart + FastMath.PI) - edgeStart;
+        final double arcRelativeStart = PlaneAngleRadians.normalize(arc.getInf(), edgeStart + FastMath.PI) - edgeStart;
         final double arcRelativeEnd   = arcRelativeStart + arc.getSize();
         final double unwrappedEnd     = arcRelativeEnd - MathUtils.TWO_PI;
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/test/java/org/apache/commons/math4/fitting/HarmonicCurveFitterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/fitting/HarmonicCurveFitterTest.java b/src/test/java/org/apache/commons/math4/fitting/HarmonicCurveFitterTest.java
index e3b1959..8a79a80 100644
--- a/src/test/java/org/apache/commons/math4/fitting/HarmonicCurveFitterTest.java
+++ b/src/test/java/org/apache/commons/math4/fitting/HarmonicCurveFitterTest.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.analysis.function.HarmonicOscillator;
 import org.apache.commons.math4.exception.MathIllegalStateException;
 import org.apache.commons.math4.exception.NumberIsTooSmallException;
@@ -56,7 +57,7 @@ public class HarmonicCurveFitterTest {
         final double[] fitted = fitter.fit(points.toList());
         Assert.assertEquals(a, fitted[0], 1.0e-13);
         Assert.assertEquals(w, fitted[1], 1.0e-13);
-        Assert.assertEquals(p, MathUtils.normalizeAngle(fitted[2], p), 1e-13);
+        Assert.assertEquals(p, PlaneAngleRadians.normalize(fitted[2], p), 1e-13);
 
         final HarmonicOscillator ff = new HarmonicOscillator(fitted[0], fitted[1], fitted[2]);
         for (double x = -1.0; x < 1.0; x += 0.01) {
@@ -81,7 +82,7 @@ public class HarmonicCurveFitterTest {
         final double[] fitted = fitter.fit(points.toList());
         Assert.assertEquals(a, fitted[0], 7.6e-4);
         Assert.assertEquals(w, fitted[1], 2.7e-3);
-        Assert.assertEquals(p, MathUtils.normalizeAngle(fitted[2], p), 1.3e-2);
+        Assert.assertEquals(p, PlaneAngleRadians.normalize(fitted[2], p), 1.3e-2);
     }
 
     @Test
@@ -118,7 +119,7 @@ public class HarmonicCurveFitterTest {
         final double[] fitted = fitter.fit(points.toList());
         Assert.assertEquals(a, fitted[0], 1.2e-3);
         Assert.assertEquals(w, fitted[1], 3.3e-3);
-        Assert.assertEquals(p, MathUtils.normalizeAngle(fitted[2], p), 1.7e-2);
+        Assert.assertEquals(p, PlaneAngleRadians.normalize(fitted[2], p), 1.7e-2);
     }
 
     @Test
@@ -160,7 +161,7 @@ public class HarmonicCurveFitterTest {
         final double[] fitted = fitter.fit(points.toList());
         Assert.assertEquals(a, fitted[0], 7.6e-4);
         Assert.assertEquals(w, fitted[1], 3.5e-3);
-        Assert.assertEquals(p, MathUtils.normalizeAngle(fitted[2], p), 1.5e-2);
+        Assert.assertEquals(p, PlaneAngleRadians.normalize(fitted[2], p), 1.5e-2);
     }
 
     @Test(expected=MathIllegalStateException.class)

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDSTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDSTest.java b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDSTest.java
index b54e2e0..873a80a 100644
--- a/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDSTest.java
+++ b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDSTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.math4.geometry.euclidean.threed;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.analysis.differentiation.DerivativeStructure;
 import org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
@@ -33,7 +34,6 @@ import org.apache.commons.math4.random.UnitSphereRandomVectorGenerator;
 import org.apache.commons.rng.UniformRandomProvider;
 import org.apache.commons.rng.simple.RandomSource;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -1227,7 +1227,7 @@ public class FieldRotationDSTest {
     }
 
     private void checkAngle(DerivativeStructure a1, double a2) {
-        Assert.assertEquals(a1.getReal(), MathUtils.normalizeAngle(a2, a1.getReal()), 1.0e-10);
+        Assert.assertEquals(a1.getReal(), PlaneAngleRadians.normalize(a2, a1.getReal()), 1.0e-10);
     }
 
     private void checkRotationDS(FieldRotation<DerivativeStructure> r, double q0, double q1, double q2, double q3) {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDfpTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDfpTest.java b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDfpTest.java
index f4f3403..4586bad 100644
--- a/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDfpTest.java
+++ b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/FieldRotationDfpTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.math4.geometry.euclidean.threed;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.dfp.Dfp;
 import org.apache.commons.math4.dfp.DfpField;
 import org.apache.commons.math4.exception.MathArithmeticException;
@@ -32,7 +33,6 @@ import org.apache.commons.math4.random.UnitSphereRandomVectorGenerator;
 import org.apache.commons.rng.UniformRandomProvider;
 import org.apache.commons.rng.simple.RandomSource;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -992,7 +992,7 @@ public class FieldRotationDfpTest {
     }
 
     private void checkAngle(Dfp a1, double a2) {
-        Assert.assertEquals(a1.getReal(), MathUtils.normalizeAngle(a2, a1.getReal()), 1.0e-10);
+        Assert.assertEquals(a1.getReal(), PlaneAngleRadians.normalize(a2, a1.getReal()), 1.0e-10);
     }
 
     private void checkRotationDS(FieldRotation<Dfp> r, double q0, double q1, double q2, double q3) {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/af7f247b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/RotationTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/RotationTest.java b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/RotationTest.java
index a02ac26..e754a51 100644
--- a/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/RotationTest.java
+++ b/src/test/java/org/apache/commons/math4/geometry/euclidean/threed/RotationTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.math4.geometry.euclidean.threed;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
 import org.apache.commons.math4.geometry.euclidean.threed.CardanEulerSingularityException;
@@ -25,7 +26,6 @@ import org.apache.commons.math4.geometry.euclidean.threed.Rotation;
 import org.apache.commons.math4.geometry.euclidean.threed.RotationOrder;
 import org.apache.commons.math4.geometry.euclidean.threed.Cartesian3D;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -813,7 +813,7 @@ public class RotationTest {
   }
 
   private void checkAngle(double a1, double a2) {
-    Assert.assertEquals(a1, MathUtils.normalizeAngle(a2, a1), 1.0e-10);
+    Assert.assertEquals(a1, PlaneAngleRadians.normalize(a2, a1), 1.0e-10);
   }
 
   private void checkRotation(Rotation r, double q0, double q1, double q2, double q3) {


[2/2] [math] MATH-1416: Delete functionality available in "Commons Numbers".

Posted by er...@apache.org.
MATH-1416: Delete functionality available in "Commons Numbers".


Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/6f27b4ae
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/6f27b4ae
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/6f27b4ae

Branch: refs/heads/master
Commit: 6f27b4ae8f8ecb62698e760ab7df3973874b1f51
Parents: af7f247
Author: Gilles <er...@apache.org>
Authored: Sat Jun 3 02:31:16 2017 +0200
Committer: Gilles <er...@apache.org>
Committed: Sat Jun 3 02:31:16 2017 +0200

----------------------------------------------------------------------
 .../apache/commons/math4/util/MathUtils.java    | 23 -------------------
 .../commons/math4/util/MathUtilsTest.java       | 24 +++++---------------
 2 files changed, 6 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/6f27b4ae/src/main/java/org/apache/commons/math4/util/MathUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/util/MathUtils.java b/src/main/java/org/apache/commons/math4/util/MathUtils.java
index e42f449..3031465 100644
--- a/src/main/java/org/apache/commons/math4/util/MathUtils.java
+++ b/src/main/java/org/apache/commons/math4/util/MathUtils.java
@@ -85,29 +85,6 @@ public final class MathUtils {
         return Arrays.hashCode(value);
     }
 
-    /**
-     * Normalize an angle in a 2&pi; wide interval around a center value.
-     * <p>This method has three main uses:</p>
-     * <ul>
-     *   <li>normalize an angle between 0 and 2&pi;:<br>
-     *       {@code a = MathUtils.normalizeAngle(a, FastMath.PI);}</li>
-     *   <li>normalize an angle between -&pi; and +&pi;<br>
-     *       {@code a = MathUtils.normalizeAngle(a, 0.0);}</li>
-     *   <li>compute the angle between two defining angular positions:<br>
-     *       {@code angle = MathUtils.normalizeAngle(end, start) - start;}</li>
-     * </ul>
-     * <p>Note that due to numerical accuracy and since &pi; cannot be represented
-     * exactly, the result interval is <em>closed</em>, it cannot be half-closed
-     * as would be more satisfactory in a purely mathematical view.</p>
-     * @param a angle to normalize
-     * @param center center of the desired 2&pi; interval for the result
-     * @return a-2k&pi; with integer k and center-&pi; &lt;= a-2k&pi; &lt;= center+&pi;
-     * @since 1.2
-     */
-     public static double normalizeAngle(double a, double center) {
-         return a - TWO_PI * FastMath.floor((a + FastMath.PI - center) / TWO_PI);
-     }
-
      /** Find the maximum of two field elements.
       * @param <T> the type of the field elements
       * @param e1 first element

http://git-wip-us.apache.org/repos/asf/commons-math/blob/6f27b4ae/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java b/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
index 2e116a2..2536f84 100644
--- a/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
+++ b/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
@@ -13,6 +13,7 @@
  */
 package org.apache.commons.math4.util;
 
+import org.apache.commons.numbers.angle.PlaneAngleRadians;
 import org.apache.commons.math4.distribution.RealDistribution;
 import org.apache.commons.math4.distribution.UniformRealDistribution;
 import org.apache.commons.math4.exception.MathArithmeticException;
@@ -154,19 +155,6 @@ public final class MathUtilsTest {
     }
 
     @Test
-    public void testNormalizeAngle() {
-        for (double a = -15.0; a <= 15.0; a += 0.1) {
-            for (double b = -15.0; b <= 15.0; b += 0.2) {
-                double c = MathUtils.normalizeAngle(a, b);
-                Assert.assertTrue((b - FastMath.PI) <= c);
-                Assert.assertTrue(c <= (b + FastMath.PI));
-                double twoK = FastMath.rint((a - c) / FastMath.PI);
-                Assert.assertEquals(c, a - twoK * FastMath.PI, 1.0e-14);
-            }
-        }
-    }
-
-    @Test
     public void testReduce() {
         final double period = -12.222;
         final double offset = 13;
@@ -220,15 +208,15 @@ public final class MathUtilsTest {
     }
 
     @Test
-    public void testReduceComparedWithNormalizeAngle() {
-        final double tol = Math.ulp(1d);
+    public void testReduceComparedWithNormalize() {
         final double period = 2 * Math.PI;
         for (double a = -15; a <= 15; a += 0.5) {
             for (double center = -15; center <= 15; center += 1) {
-                final double nA = MathUtils.normalizeAngle(a, center);
+                final double nA = PlaneAngleRadians.normalize(a, center);
                 final double offset = center - Math.PI;
-                final double r = MathUtils.reduce(a, period, offset);
-                Assert.assertEquals(nA, r + offset, tol);
+                final double r = MathUtils.reduce(a, period, offset) + offset;
+                Assert.assertEquals("a=" + a + " center=" + center,
+                                    nA, r, 52 * Math.ulp(nA));
             }
         }
     }