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

java.lang.Object
  extended by 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:

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


Copyright (c) 2003-2012 Apache Software Foundation