Add getXmax, getXmin, getYmax, getYmin to BicubicInterpolatingFunction. These can be useful to manage an OutOfRangeException without the need to access the original x and y arrays.
Closes #9. Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/3ac3ff62 Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/3ac3ff62 Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/3ac3ff62 Branch: refs/heads/master Commit: 3ac3ff62b862ee89effcf1a4889b04f32fd8dbb2 Parents: 088d0f9 Author: Luc Maisonobe <l...@apache.org> Authored: Sun Jul 5 10:21:53 2015 +0200 Committer: Luc Maisonobe <l...@apache.org> Committed: Sun Jul 5 10:21:53 2015 +0200 ---------------------------------------------------------------------- src/changes/changes.xml | 5 +++ .../BicubicInterpolatingFunction.java | 32 ++++++++++++++++++++ .../BicubicInterpolatingFunctionTest.java | 14 +++++++-- 3 files changed, 49 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-math/blob/3ac3ff62/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 83d03e1..63df40a 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -54,6 +54,11 @@ If the output is not quite correct, check for invisible trailing spaces! </release> <release version="4.0" date="XXXX-XX-XX" description=""> + <action dev="luc" type="add" due-to="Lorenzoexe"> + Add getXmax(), getXmin(), getYmax(), getYmin() to bicubic interpolating function. + These can be useful to manage an OutOfRangeException without the need to access + the original x and y arrays. + </action> <action dev="luc" type="add" > Added mapping functions to MathArrays. These methods allow to map any univariate or bivariate functions to arrays. http://git-wip-us.apache.org/repos/asf/commons-math/blob/3ac3ff62/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java b/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java index b89a517..f1c10f8 100644 --- a/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java +++ b/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java @@ -185,6 +185,38 @@ public class BicubicInterpolatingFunction } /** + * Returns the minimum value of the first coordinate + * @return xval[0]. + */ + public double getXmin() { + return xval[0]; + } + + /** + * Returns the maximum value of the second coordinate + * @return xval[xval.length - 1]. + */ + public double getXmax() { + return xval[xval.length - 1]; + } + + /** + * Returns the minimum value of the second coordinate + * @return yval[0]. + */ + public double getYmin() { + return yval[0]; + } + + /** + * Returns the maximum value of the second coordinate + * @return yval[yval.length - 1]. + */ + public double getYmax() { + return yval[yval.length - 1]; + } + + /** * @param c Coordinate. * @param val Coordinate samples. * @return the index in {@code val} corresponding to the interval http://git-wip-us.apache.org/repos/asf/commons-math/blob/3ac3ff62/src/test/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunctionTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunctionTest.java b/src/test/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunctionTest.java index 0ec77aa..b54c750 100644 --- a/src/test/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunctionTest.java +++ b/src/test/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunctionTest.java @@ -160,7 +160,12 @@ public final class BicubicInterpolatingFunctionTest { try { bcf.value(x, y); Assert.fail("OutOfRangeException expected"); - } catch (OutOfRangeException expected) {} + } catch (OutOfRangeException expected) { + Assert.assertEquals(xMin, bcf.getXmin(), 1.0e-15); + Assert.assertEquals(xMax, bcf.getXmax(), 1.0e-15); + Assert.assertEquals(yMin, bcf.getYmin(), 1.0e-15); + Assert.assertEquals(yMax, bcf.getYmax(), 1.0e-15); + } x = xMin; y = yMax + small; @@ -169,7 +174,12 @@ public final class BicubicInterpolatingFunctionTest { try { bcf.value(x, y); Assert.fail("OutOfRangeException expected"); - } catch (OutOfRangeException expected) {} + } catch (OutOfRangeException expected) { + Assert.assertEquals(xMin, bcf.getXmin(), 1.0e-15); + Assert.assertEquals(xMax, bcf.getXmax(), 1.0e-15); + Assert.assertEquals(yMin, bcf.getYmin(), 1.0e-15); + Assert.assertEquals(yMax, bcf.getYmax(), 1.0e-15); + } } /**