Package org.apache.commons.math3.analysis.interpolation

# Class BicubicInterpolator

java.lang.Object
org.apache.commons.math3.analysis.interpolation.BicubicInterpolator

All Implemented Interfaces:
  `BivariateGridInterpolator`

public class BicubicInterpolator extends Object implements BivariateGridInterpolator
Generates a `bicubic interpolating function`.

Caveat: Because the interpolation scheme requires that derivatives be specified at the sample points, those are approximated with finite differences (using the 2-points symmetric formulae). Since their values are undefined at the borders of the provided interpolation ranges, the interpolated values will be wrong at the edges of the patch. The `interpolate` method will return a function that overrides `BicubicInterpolatingFunction.isValidPoint(double,double)` to indicate points where the interpolation will be inaccurate.

Since:
  3.4

## Constructor Summary

Constructors
Constructor
Description
`BicubicInterpolator()`

## Method Summary

Modifier and Type
Method
Description
`BicubicInterpolatingFunction`
`interpolate(double[] xval, double[] yval, double[][] fval)`
Compute an interpolating function for the dataset.

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

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

## Constructor Details

### BicubicInterpolator

public BicubicInterpolator()

## Method Details

### interpolate

public BicubicInterpolatingFunction interpolate(double[] xval, double[] yval, double[][] fval) throws NoDataException, DimensionMismatchException, NonMonotonicSequenceException, NumberIsTooSmallException
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` - if the array is not sorted.
  `NumberIsTooSmallException` - if the number of points is too small for the order of the interpolation