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 2021/05/26 21:37:26 UTC

[commons-math] 01/03: Use functionality defined in "Commons Numbers".

This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch modularized_master
in repository https://gitbox.apache.org/repos/asf/commons-math.git

commit 8df971ce64f013a5ae75a2ff3f430650271ef55c
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Wed May 26 18:49:51 2021 +0200

    Use functionality defined in "Commons Numbers".
---
 .../interpolation/UnivariatePeriodicInterpolator.java         | 11 +++++++----
 .../interpolation/UnivariatePeriodicInterpolatorTest.java     | 10 ++++++----
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolator.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolator.java
index b0020cd..c89a5f0 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolator.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolator.java
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.math4.legacy.analysis.interpolation;
 
+import org.apache.commons.numbers.angle.Reduce;
+
 import org.apache.commons.math4.legacy.analysis.UnivariateFunction;
 import org.apache.commons.math4.legacy.exception.MathIllegalArgumentException;
 import org.apache.commons.math4.legacy.exception.NonMonotonicSequenceException;
@@ -91,24 +93,25 @@ public class UnivariatePeriodicInterpolator
 
         MathArrays.checkOrder(xval);
         final double offset = xval[0];
+        final Reduce reduce = new Reduce(offset, period);
 
         final int len = xval.length + extend * 2;
         final double[] x = new double[len];
         final double[] y = new double[len];
         for (int i = 0; i < xval.length; i++) {
             final int index = i + extend;
-            x[index] = MathUtils.reduce(xval[i], period, offset);
+            x[index] = reduce.applyAsDouble(xval[i]);
             y[index] = yval[i];
         }
 
         // Wrap to enable interpolation at the boundaries.
         for (int i = 0; i < extend; i++) {
             int index = xval.length - extend + i;
-            x[i] = MathUtils.reduce(xval[index], period, offset) - period;
+            x[i] = reduce.applyAsDouble(xval[index]) - period;
             y[i] = yval[index];
 
             index = len - extend + i;
-            x[index] = MathUtils.reduce(xval[i], period, offset) + period;
+            x[index] = reduce.applyAsDouble(xval[i]) + period;
             y[index] = yval[i];
         }
 
@@ -119,7 +122,7 @@ public class UnivariatePeriodicInterpolator
             /** {@inheritDoc} */
             @Override
             public double value(final double x) throws MathIllegalArgumentException {
-                return f.value(MathUtils.reduce(x, period, offset));
+                return f.value(reduce.applyAsDouble(x));
             }
         };
     }
diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolatorTest.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolatorTest.java
index 1fb3449..5213f65 100644
--- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolatorTest.java
+++ b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/interpolation/UnivariatePeriodicInterpolatorTest.java
@@ -16,21 +16,23 @@
  */
 package org.apache.commons.math4.legacy.analysis.interpolation;
 
-import java.util.Random;
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.simple.RandomSource;
 
 import org.apache.commons.math4.legacy.analysis.UnivariateFunction;
 import org.apache.commons.math4.legacy.exception.NonMonotonicSequenceException;
 import org.apache.commons.math4.legacy.exception.NumberIsTooSmallException;
 import org.apache.commons.math4.legacy.util.FastMath;
-import org.junit.Assert;
-import org.junit.Test;
 
 
 /**
  * Test for {@link UnivariatePeriodicInterpolator}.
  */
 public class UnivariatePeriodicInterpolatorTest {
-    private final Random rng = new Random(1224465L);
+    private final UniformRandomProvider rng = RandomSource.create(RandomSource.KISS);
 
     @Test
     public void testSine() {