org.apache.commons.math3.analysis.interpolation

## Class TricubicSplineInterpolator

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

All Implemented Interfaces:
  TrivariateGridInterpolator

    public class TricubicSplineInterpolator
    extends Object
    implements TrivariateGridInterpolator

Generates a tricubic interpolating function.

Since:
  2.2
Version:
  $Id: TricubicSplineInterpolator.java 1379904 2012-09-01 23:54:52Z erans $

### Constructor Summary

Constructors
Constructor and Description
`TricubicSplineInterpolator()`

### Method Summary

Methods
`TricubicSplineInterpolatingFunction` `interpolate(double[] xval, double[] yval, double[] zval, double[][][] fval)` Compute an interpolating function for the dataset.
`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

#### TricubicSplineInterpolator

    public TricubicSplineInterpolator()

### Method Detail

#### interpolate

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

Compute an interpolating function for the dataset.

Specified by:
  `interpolate` in interface `TrivariateGridInterpolator`
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` - All the z-coordinates of the interpolation points, sorted in increasing order.
  `fval` - the values of the interpolation points on all the grid knots: `fval[i][j][k] = f(xval[i], yval[j], zval[k])`.
Returns:
  a function that interpolates the data set.
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)

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