public class PiecewiseBicubicSplineInterpolatingFunction extends java.lang.Object implements BivariateFunction
AkimaSplineInterpolator as the
underlying one-dimensional interpolator, which requires 5 sample points;
insufficient data will raise an exception when the
value method is called.| Modifier and Type | Field and Description |
|---|---|
private double[][] |
fval
Set of cubic splines patching the whole data grid
|
private static int |
MIN_NUM_POINTS
The minimum number of points that are needed to compute the function.
|
private double[] |
xval
Samples x-coordinates
|
private double[] |
yval
Samples y-coordinates
|
| Constructor and Description |
|---|
PiecewiseBicubicSplineInterpolatingFunction(double[] x,
double[] y,
double[][] f) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
isValidPoint(double x,
double y)
Indicates whether a point is within the interpolation range.
|
private int |
searchIndex(double c,
double[] val,
int offset,
int count) |
double |
value(double x,
double y)
Compute the value for the function.
|
private static final int MIN_NUM_POINTS
private final double[] xval
private final double[] yval
private final double[][] fval
public PiecewiseBicubicSplineInterpolatingFunction(double[] x,
double[] y,
double[][] f)
throws DimensionMismatchException,
NullArgumentException,
NoDataException,
NonMonotonicSequenceException
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.NonMonotonicSequenceException - if x or y are 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 fpublic double value(double x,
double y)
throws OutOfRangeException
value in interface BivariateFunctionx - Abscissa for which the function value should be computed.y - Ordinate for which the function value should be computed.OutOfRangeExceptionpublic boolean isValidPoint(double x,
double y)
x - First coordinate.y - Second coordinate.true if (x, y) is a valid point.private int searchIndex(double c,
double[] val,
int offset,
int count)
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
queriedval corresponding to the interval containing
c.OutOfRangeException - if c is out of the range defined by
the boundary values of val.Copyright (c) 2003-2015 Apache Software Foundation