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

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