org.rrd4j.data
Class CubicSplineInterpolator

java.lang.Object
  extended by org.rrd4j.data.Plottable
      extended by org.rrd4j.data.CubicSplineInterpolator

public class CubicSplineInterpolator
extends Plottable

Class used to interpolate datasource values from the collection of (timestamp, values) points using natural cubic spline interpolation.

WARNING: So far, this class cannot handle NaN datasource values (an exception will be thrown by the constructor). Future releases might change this.


Constructor Summary
CubicSplineInterpolator(Calendar[] dates, double[] values)
          Creates cubic spline interpolator from arrays of GregorianCalendar objects and corresponding datasource values.
CubicSplineInterpolator(Date[] dates, double[] values)
          Creates cubic spline interpolator from arrays of Date objects and corresponding datasource values.
CubicSplineInterpolator(double[] x, double[] y)
          Creates cubic spline interpolator for an array of 2D-points.
CubicSplineInterpolator(long[] timestamps, double[] values)
          Creates cubic spline interpolator from arrays of timestamps and corresponding datasource values.
 
Method Summary
 double getValue(double xval)
          Calculates spline-interpolated y-value for the corresponding x-value.
 double getValue(long timestamp)
          Method overridden from the base class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CubicSplineInterpolator

public CubicSplineInterpolator(long[] timestamps,
                               double[] values)
Creates cubic spline interpolator from arrays of timestamps and corresponding datasource values.

Parameters:
timestamps - timestamps in seconds
values - corresponding datasource values
Throws:
IllegalArgumentException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.

CubicSplineInterpolator

public CubicSplineInterpolator(Date[] dates,
                               double[] values)
Creates cubic spline interpolator from arrays of Date objects and corresponding datasource values.

Parameters:
dates - Array of Date objects
values - corresponding datasource values
Throws:
IllegalArgumentException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.

CubicSplineInterpolator

public CubicSplineInterpolator(Calendar[] dates,
                               double[] values)
Creates cubic spline interpolator from arrays of GregorianCalendar objects and corresponding datasource values.

Parameters:
dates - Array of GregorianCalendar objects
values - corresponding datasource values
Throws:
IllegalArgumentException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.

CubicSplineInterpolator

public CubicSplineInterpolator(double[] x,
                               double[] y)
Creates cubic spline interpolator for an array of 2D-points.

Parameters:
x - x-axis point coordinates
y - y-axis point coordinates
Throws:
IllegalArgumentException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.
Method Detail

getValue

public double getValue(double xval)
Calculates spline-interpolated y-value for the corresponding x-value. Call this if you need spline-interpolated values in your code.

Parameters:
xval - x-value
Returns:
inteprolated y-value

getValue

public double getValue(long timestamp)
Method overridden from the base class. This method will be called by the framework. Call this method only if you need spline-interpolated values in your code.

Overrides:
getValue in class Plottable
Parameters:
timestamp - timestamp in seconds
Returns:
inteprolated datasource value


Copyright © 2011. All Rights Reserved.