org.jrobin.data

Class 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(long[] timestamps, double[] values)
Creates cubic spline interpolator from arrays of timestamps and corresponding datasource values.
CubicSplineInterpolator(Date[] dates, double[] values)
Creates cubic spline interpolator from arrays of Date objects and corresponding datasource values.
CubicSplineInterpolator(Calendar[] dates, double[] values)
Creates cubic spline interpolator from arrays of GregorianCalendar objects and corresponding datasource values.
CubicSplineInterpolator(double[] x, double[] y)
Creates cubic spline interpolator for an array of 2D-points.
Method Summary
doublegetValue(double xval)
Calculates spline-interpolated y-value for the corresponding x-value.
doublegetValue(long timestamp)
Method overriden from the base class.

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: RrdException 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: RrdException 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: RrdException 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: RrdException 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 overriden 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.

Parameters: timestamp timestamp in seconds

Returns: inteprolated datasource value