## org.apache.commons.math.analysis.interpolation
Class SmoothingBicubicSplineInterpolator

    java.lang.Object
      org.apache.commons.math.analysis.interpolation.SmoothingBicubicSplineInterpolator

All Implemented Interfaces:
  BivariateRealGridInterpolator

    public class SmoothingBicubicSplineInterpolator

extends java.lang.Object
implements BivariateRealGridInterpolator

Generates a bicubic interpolation function. Before interpolating, smoothing of the input data is performed using splines. See Handbook on splines for the user, ISBN 084939404X, chapter 2.

Since:
  2.1
Version:
  $Revision$ $Date$

Constructor Summary
`SmoothingBicubicSplineInterpolator()`

Method Summary
`BivariateRealFunction` `interpolate(double[] xval, double[] yval, double[][] zval)` 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

### SmoothingBicubicSplineInterpolator

    public SmoothingBicubicSplineInterpolator()

Method Detail

### interpolate

    public BivariateRealFunction interpolate(double[] xval,
                                             double[] yval,
                                             double[][] zval)
                                      throws MathException,
                                             java.lang.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.
    `zval` - the values of the interpolation points on all the grid knots: `zval[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
    `java.lang.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

Copyright (c) 2003-2011 Apache Software Foundation