org.apache.commons.math3.analysis.interpolation

## Class BicubicSplineInterpolator

- java.lang.Object
- - org.apache.commons.math3.analysis.interpolation.BicubicSplineInterpolator

All Implemented Interfaces:
  BivariateGridInterpolator

Direct Known Subclasses:
  SmoothingPolynomialBicubicSplineInterpolator

    public class BicubicSplineInterpolator
    extends Object
    implements BivariateGridInterpolator

Generates a bicubic interpolating function.

Since:
  2.2
Version:
  $Id: BicubicSplineInterpolator.java 1385313 2012-09-16 16:35:23Z tn $

### Constructor Summary

Constructors
Constructor and Description
`BicubicSplineInterpolator()`

### Method Summary

Methods
`BicubicSplineInterpolatingFunction` `interpolate(double[] xval, double[] yval, double[][] fval)` Compute an interpolating function for the dataset.
`private int` `nextIndex(int i, int max)` Computes the next index of an array, clipping if necessary.
`private int` `previousIndex(int i)` Computes the previous index of an array, clipping if necessary.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BicubicSplineInterpolator

    public BicubicSplineInterpolator()

### Method Detail

#### interpolate

    public BicubicSplineInterpolatingFunction interpolate(double[] xval,
                                                 double[] yval,
                                                 double[][] fval)
                                                   throws NoDataException,
                                                          DimensionMismatchException,
                                                          NonMonotonicSequenceException

Compute an interpolating function for the dataset.

Specified by:
  `interpolate` in interface `BivariateGridInterpolator`
Parameters:
  `xval` - All the x-coordinates of the interpolation points, sorted in increasing order.
  `yval` - All the y-coordinates of the interpolation points, sorted in increasing order.
  `fval` - The values of the interpolation points on all the grid knots: `fval[i][j] = f(xval[i], yval[j])`.
Returns:
  a function which interpolates the dataset.
Throws:
  `NoDataException` - if any of the arrays has zero length.
  `DimensionMismatchException` - if the array lengths are inconsistent.
  `NonMonotonicSequenceException`

#### nextIndex

    private int nextIndex(int i,
                int max)

Computes the next index of an array, clipping if necessary. It is assumed (but not checked) that `i >= 0`.

Parameters:
  `i` - Index.
  `max` - Upper limit of the array.
Returns:
  the next index.

#### previousIndex

    private int previousIndex(int i)

Computes the previous index of an array, clipping if necessary. It is assumed (but not checked) that `i` is smaller than the size of the array.

Parameters:
  `i` - Index.
Returns:
  the previous index.