Class NonnegativityPreservingCubicSplineInterpolator
- java.lang.Object
-
- com.opengamma.strata.math.impl.interpolation.PiecewisePolynomialInterpolator
-
- com.opengamma.strata.math.impl.interpolation.NonnegativityPreservingCubicSplineInterpolator
-
public class NonnegativityPreservingCubicSplineInterpolator extends PiecewisePolynomialInterpolator
Filter for nonnegativity of cubic spline interpolation based on R. L. Dougherty, A. Edelman, and J. M. Hyman, "Nonnegativity-, Monotonicity-, or Convexity-Preserving Cubic and Quintic Hermite Interpolation" Mathematics Of Computation, v. 52, n. 186, April 1989, pp. 471-494. First, interpolant is computed by another cubic interpolation method. Then the first derivatives are modified such that non-negativity conditions are satisfied. Note that shape-preserving three-point formula is used at endpoints in order to ensure positivity of an interpolant in the first interval and the last interval
-
-
Constructor Summary
Constructors Constructor Description NonnegativityPreservingCubicSplineInterpolator(PiecewisePolynomialInterpolator method)
Primary interpolation method should be passed.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PiecewisePolynomialInterpolator
getPrimaryMethod()
Hyman filter modifies derivative values at knot points which are initially computed by a "primary" interpolator.PiecewisePolynomialResult
interpolate(double[] xValues, double[] yValues)
Interpolate.PiecewisePolynomialResult
interpolate(double[] xValues, double[][] yValuesMatrix)
Interpolate.PiecewisePolynomialResultsWithSensitivity
interpolateWithSensitivity(double[] xValues, double[] yValues)
Derive interpolant on {xValues_i, yValues_i} and (yValues) node sensitivity.-
Methods inherited from class com.opengamma.strata.math.impl.interpolation.PiecewisePolynomialInterpolator
getValue, getValue, interpolate, interpolate, interpolate, interpolate, interpolate, interpolate
-
-
-
-
Constructor Detail
-
NonnegativityPreservingCubicSplineInterpolator
public NonnegativityPreservingCubicSplineInterpolator(PiecewisePolynomialInterpolator method)
Primary interpolation method should be passed.- Parameters:
method
- PiecewisePolynomialInterpolator
-
-
Method Detail
-
interpolate
public PiecewisePolynomialResult interpolate(double[] xValues, double[] yValues)
Description copied from class:PiecewisePolynomialInterpolator
Interpolate.- Specified by:
interpolate
in classPiecewisePolynomialInterpolator
- Parameters:
xValues
- X values of datayValues
- Y values of data- Returns:
PiecewisePolynomialResult
containing knots, coefficients of piecewise polynomials, number of intervals, degree of polynomials, dimension of spline
-
interpolate
public PiecewisePolynomialResult interpolate(double[] xValues, double[][] yValuesMatrix)
Description copied from class:PiecewisePolynomialInterpolator
Interpolate.- Specified by:
interpolate
in classPiecewisePolynomialInterpolator
- Parameters:
xValues
- X values of datayValuesMatrix
- Y values of data- Returns:
- Coefficient matrix whose i-th row vector is {a_n, a_{n-1}, ... } of f(x) = a_n * (x-x_i)^n + a_{n-1} * (x-x_i)^{n-1} +... for the i-th interval
-
interpolateWithSensitivity
public PiecewisePolynomialResultsWithSensitivity interpolateWithSensitivity(double[] xValues, double[] yValues)
Description copied from class:PiecewisePolynomialInterpolator
Derive interpolant on {xValues_i, yValues_i} and (yValues) node sensitivity.- Specified by:
interpolateWithSensitivity
in classPiecewisePolynomialInterpolator
- Parameters:
xValues
- X values of datayValues
- Y values of data- Returns:
PiecewisePolynomialResultsWithSensitivity
-
getPrimaryMethod
public PiecewisePolynomialInterpolator getPrimaryMethod()
Description copied from class:PiecewisePolynomialInterpolator
Hyman filter modifies derivative values at knot points which are initially computed by a "primary" interpolator.- Overrides:
getPrimaryMethod
in classPiecewisePolynomialInterpolator
- Returns:
- The primary interpolator for Hyman filter, interpolation method itself for other interpolators
-
-