Package org.jrobin.data
Class CubicSplineInterpolator
- java.lang.Object
-
- org.jrobin.data.Plottable
-
- org.jrobin.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
Constructors Constructor Description 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.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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getValue(double xval)
Calculates spline-interpolated y-value for the corresponding x-value.double
getValue(long timestamp)
Method overriden from the base class.
-
-
-
Constructor Detail
-
CubicSplineInterpolator
public CubicSplineInterpolator(long[] timestamps, double[] values) throws RrdException
Creates cubic spline interpolator from arrays of timestamps and corresponding datasource values.- Parameters:
timestamps
- timestamps in secondsvalues
- 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) throws RrdException
Creates cubic spline interpolator from arrays of Date objects and corresponding datasource values.- Parameters:
dates
- Array of Date objectsvalues
- 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) throws RrdException
Creates cubic spline interpolator from arrays of GregorianCalendar objects and corresponding datasource values.- Parameters:
dates
- Array of GregorianCalendar objectsvalues
- 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) throws RrdException
Creates cubic spline interpolator for an array of 2D-points.- Parameters:
x
- x-axis point coordinatesy
- 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.
-
-