Class PiecewiseBicubicSplineInterpolatingFunction

  • All Implemented Interfaces:
    BivariateFunction

    public class PiecewiseBicubicSplineInterpolatingFunction
    extends java.lang.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 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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 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
    • Method Detail

      • 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.