org.apache.commons.math.analysis.interpolation

## Class BicubicSplineInterpolator

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

All Implemented Interfaces:
  BivariateRealGridInterpolator

Direct Known Subclasses:
  SmoothingPolynomialBicubicSplineInterpolator

    public class BicubicSplineInterpolator
    extends Object
    implements BivariateRealGridInterpolator

Generates a bicubic interpolating function.

Since:
  2.2
Version:
  $Revision: 980944 $ $Date: 2010-07-30 22:31:11 +0200 (ven. 30 juil. 2010) $

### Constructor Summary

Constructors
Constructor and Description
`BicubicSplineInterpolator()`

### Method Summary

Methods
`BicubicSplineInterpolatingFunction` `interpolate(double[] xval, double[] yval, double[][] fval)` Computes an interpolating function for the data set.
`private int` `nextIndex(int i, int max)` Compute the next index of an array, clipping if necessary.
`private int` `previousIndex(int i)` Compute 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 MathException,
                                                          IllegalArgumentException

Computes an interpolating function for the data set.

Specified by:
  `interpolate` in interface `BivariateRealGridInterpolator`
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 data set.
Throws:
  `MathException` - if arguments violate assumptions made by the interpolation algorithm.
  `IllegalArgumentException`

#### nextIndex

    private int nextIndex(int i,
                int max)

Compute the next index of an array, clipping if necessary. It is assumed (but not checked) that `i` is larger than or equal to 0}.

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

#### previousIndex

    private int previousIndex(int i)

Compute 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