Class PiecewiseBicubicSplineInterpolatingFunction
- java.lang.Object
-
- org.apache.commons.math3.analysis.interpolation.PiecewiseBicubicSplineInterpolatingFunction
-
- All Implemented Interfaces:
BivariateFunction
public class PiecewiseBicubicSplineInterpolatingFunction extends java.lang.Object implements BivariateFunction
Function that implements the bicubic spline interpolation. This implementation currently usesAkimaSplineInterpolatoras the underlying one-dimensional interpolator, which requires 5 sample points; insufficient data will raise an exception when thevaluemethod is called.- Since:
- 3.4
-
-
Field Summary
Fields Modifier and Type Field Description private double[][]fvalSet of cubic splines patching the whole data gridprivate static intMIN_NUM_POINTSThe minimum number of points that are needed to compute the function.private double[]xvalSamples x-coordinatesprivate double[]yvalSamples y-coordinates
-
Constructor Summary
Constructors Constructor Description PiecewiseBicubicSplineInterpolatingFunction(double[] x, double[] y, double[][] f)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisValidPoint(double x, double y)Indicates whether a point is within the interpolation range.private intsearchIndex(double c, double[] val, int offset, int count)doublevalue(double x, double y)Compute the value for the function.
-
-
-
Field Detail
-
MIN_NUM_POINTS
private static final int MIN_NUM_POINTS
The minimum number of points that are needed to compute the function.- See Also:
- Constant Field Values
-
xval
private final double[] xval
Samples x-coordinates
-
yval
private final double[] yval
Samples y-coordinates
-
fval
private final double[][] fval
Set of cubic splines patching the whole data grid
-
-
Constructor Detail
-
PiecewiseBicubicSplineInterpolatingFunction
public PiecewiseBicubicSplineInterpolatingFunction(double[] x, double[] y, double[][] f) throws DimensionMismatchException, NullArgumentException, NoDataException, NonMonotonicSequenceException- Parameters:
x- Sample values of the x-coordinate, in increasing order.y- Sample values of the y-coordinate, in increasing order.f- Values of the function on every grid point. the expected number of elements.- Throws:
NonMonotonicSequenceException- ifxoryare not strictly increasing.NullArgumentException- if any of the arguments are nullNoDataException- if any of the arrays has zero length.DimensionMismatchException- if the length of x and y don't match the row, column height of f
-
-
Method Detail
-
value
public double value(double x, double y) throws OutOfRangeExceptionCompute the value for the function.- Specified by:
valuein interfaceBivariateFunction- Parameters:
x- Abscissa for which the function value should be computed.y- Ordinate for which the function value should be computed.- Returns:
- the value.
- Throws:
OutOfRangeException
-
isValidPoint
public boolean isValidPoint(double x, double y)Indicates whether a point is within the interpolation range.- Parameters:
x- First coordinate.y- Second coordinate.- Returns:
trueif (x, y) is a valid point.- Since:
- 3.3
-
searchIndex
private int searchIndex(double c, double[] val, int offset, int count)- Parameters:
c- Coordinate.val- Coordinate samples.offset- how far back from found value to offset for queryingcount- total number of elements forward from beginning that will be queried- Returns:
- the index in
valcorresponding to the interval containingc. - Throws:
OutOfRangeException- ifcis out of the range defined by the boundary values ofval.
-
-