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

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

All Implemented Interfaces:
  BivariateRealFunction

    public class BicubicSplineInterpolatingFunction

extends java.lang.Object
implements BivariateRealFunction

Function that implements the bicubic spline interpolation.

Since:
  2.1
Version:
  $Revision$ $Date$

Field Summary
`private static double[][]` `AINV` Matrix to compute the spline coefficients from the function values and function derivatives values
`private BicubicSplineFunction[][]` `splines` Set of cubic splines pacthing the whole data grid
`private double[]` `xval` Samples x-coordinates
`private double[]` `yval` Samples y-coordinates

Constructor Summary
`BicubicSplineInterpolatingFunction(double[] x, double[] y, double[][] z, double[][] dZdX, double[][] dZdY, double[][] dZdXdY)`

Method Summary
`private double[]` `computeSplineCoefficients(double[] beta)` Compute the spline coefficients from the list of function values and function partial derivatives values at the four corners of a grid element.
`private int` `searchIndex(double c, double[] val)`
`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

### AINV

    private static final double[][] AINV

  Matrix to compute the spline coefficients from the function values and function derivatives values

### xval

    private final double[] xval

  Samples x-coordinates

### yval

    private final double[] yval

  Samples y-coordinates

### splines

    private final BicubicSplineFunction[][] splines

  Set of cubic splines pacthing the whole data grid

Constructor Detail

### BicubicSplineInterpolatingFunction

    public BicubicSplineInterpolatingFunction(double[] x,
                                              double[] y,
                                              double[][] z,
                                              double[][] dZdX,
                                              double[][] dZdY,
                                              double[][] dZdXdY)
                                       throws DimensionMismatchException

Parameters:
  `x` - Sample values of the x-coordinate, in increasing order
  `y` - Sample values of the y-coordinate, in increasing order
  `z` - Values of the function on every grid point
  `dZdX` - Values of the partial derivative of function with respect to x on every grid point
  `dZdY` - Values of the partial derivative of function with respect to y on every grid point
  `dZdXdY` - Values of the cross partial derivative of function on every grid point
Throws:
  `DimensionMismatchException` - if the various arrays do not contain the expected number of elements.
  `java.lang.IllegalArgumentException` - if `x` or `y` are not strictly increasing.

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

### searchIndex

    private int searchIndex(double c,
                            double[] val)

  Parameters:
    `c` - coordinate
    `val` - coordinate samples
  Returns:
    the index in `val` corresponding to the interval containing `c`, or `-1` if `c` is out of the range defined by the end values of `val`

### computeSplineCoefficients

    private double[] computeSplineCoefficients(double[] beta)

  Compute the spline coefficients from the list of function values and function partial derivatives values at the four corners of a grid element. They must be specified in the following order:
  - f(0,0)
  - f(1,0)
  - f(0,1)
  - f(1,1)
  - fx(0,0)
  - fx(1,0)
  - fx(0,1)
  - fx(1,1)
  - fy(0,0)
  - fy(1,0)
  - fy(0,1)
  - fy(1,1)
  - fxy(0,0)
  - fxy(1,0)
  - fxy(0,1)
  - fxy(1,1)

  Parameters:
    `beta` - List of function values and function partial derivatives values
  Returns:
    the spline coefficients

Copyright (c) 2003-2010 Apache Software Foundation