org.apache.commons.math.analysis.interpolation

## Class BicubicSplineFunction

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

All Implemented Interfaces:
  BivariateRealFunction

     class BicubicSplineFunction
    extends Object
    implements BivariateRealFunction

2D-spline function.

Version:
  $Revision$ $Date$

### Field Summary

Fields
`private double[][]` `a` Coefficients
`private static short` `N` Number of points.
`private BivariateRealFunction` `partialDerivativeX` First partial derivative along x.
`private BivariateRealFunction` `partialDerivativeXX` Second partial derivative along x.
`private BivariateRealFunction` `partialDerivativeXY` Second crossed partial derivative.
`private BivariateRealFunction` `partialDerivativeY` First partial derivative along y.
`private BivariateRealFunction` `partialDerivativeYY` Second partial derivative along y.

### Constructor Summary

Constructors
Constructor and Description
`BicubicSplineFunction(double[] a)` Simple constructor.

### Method Summary

Methods
`private double` `apply(double[] pX, double[] pY, double[][] coeff)` Compute the value of the bicubic polynomial.
`private void` `computePartialDerivatives()` Compute all partial derivatives functions.
`BivariateRealFunction` `partialDerivativeX()`
`BivariateRealFunction` `partialDerivativeXX()`
`BivariateRealFunction` `partialDerivativeXY()`
`BivariateRealFunction` `partialDerivativeY()`
`BivariateRealFunction` `partialDerivativeYY()`
`double` `value(double x, double y)` Compute the value for the function.

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

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

### Field Detail

#### N

    private static final short N

Number of points.

See Also:
  Constant Field Values

#### a

    private final double[][] a

Coefficients

#### partialDerivativeX

    private BivariateRealFunction partialDerivativeX

First partial derivative along x.

#### partialDerivativeY

    private BivariateRealFunction partialDerivativeY

First partial derivative along y.

#### partialDerivativeXX

    private BivariateRealFunction partialDerivativeXX

Second partial derivative along x.

#### partialDerivativeYY

    private BivariateRealFunction partialDerivativeYY

Second partial derivative along y.

#### partialDerivativeXY

    private BivariateRealFunction partialDerivativeXY

Second crossed partial derivative.

### Constructor Detail

#### BicubicSplineFunction

    public BicubicSplineFunction(double[] a)

Simple constructor.

Parameters:
  `a` - Spline coefficients

### Method Detail

#### value

    public double value(double x,
               double y)

Compute the value for the function.

Specified by:
  `value` in interface `BivariateRealFunction`
Parameters:
  `x` - Abscissa for which the function value should be computed.
  `y` - Ordinate for which the function value should be computed.
Returns:
  the value.

#### apply

    private double apply(double[] pX,
               double[] pY,
               double[][] coeff)

Compute the value of the bicubic polynomial.

Parameters:
  `pX` - Powers of the x-coordinate.
  `pY` - Powers of the y-coordinate.
  `coeff` - Spline coefficients.
Returns:
  the interpolated value.

#### partialDerivativeX

    public BivariateRealFunction partialDerivativeX()

Returns:
  the partial derivative wrt `x`.

#### partialDerivativeY

    public BivariateRealFunction partialDerivativeY()

Returns:
  the partial derivative wrt `y`.

#### partialDerivativeXX

    public BivariateRealFunction partialDerivativeXX()

Returns:
  the second partial derivative wrt `x`.

#### partialDerivativeYY

    public BivariateRealFunction partialDerivativeYY()

Returns:
  the second partial derivative wrt `y`.

#### partialDerivativeXY

    public BivariateRealFunction partialDerivativeXY()

Returns:
  the second partial cross-derivative.

#### computePartialDerivatives

    private void computePartialDerivatives()

Compute all partial derivatives functions.