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() {