Class PiecewiseBicubicSplineInterpolatingFunction

java.lang.Object
org.apache.commons.math3.analysis.interpolation.PiecewiseBicubicSplineInterpolatingFunction
All Implemented Interfaces:
BivariateFunction

public class PiecewiseBicubicSplineInterpolatingFunction extends Object implements BivariateFunction
Function that implements the bicubic spline interpolation. This implementation currently uses AkimaSplineInterpolator as the underlying one-dimensional interpolator, which requires 5 sample points; insufficient data will raise an exception when the value method is called.
Since:
3.4
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final double[][]
    Set of cubic splines patching the whole data grid
    private static final int
    The minimum number of points that are needed to compute the function.
    private final double[]
    Samples x-coordinates
    private final double[]
    Samples y-coordinates
  • Constructor Summary

    Constructors
    Constructor
    Description
    PiecewiseBicubicSplineInterpolatingFunction(double[] x, double[] y, double[][] f)
     
  • Method Summary

    Modifier and Type
    Method
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • MIN_NUM_POINTS

      private static final int MIN_NUM_POINTS
      The minimum number of points that are needed to compute the function.
      See Also:
    • 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 Details

  • Method Details

    • value

      public double value(double x, double y) throws OutOfRangeException
      Compute the value for the function.
      Specified by:
      value in interface BivariateFunction
      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:
      true if (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 querying
      count - total number of elements forward from beginning that will be queried
      Returns:
      the index in val corresponding to the interval containing c.
      Throws:
      OutOfRangeException - if c is out of the range defined by the boundary values of val.