public void GetValue_GridPointArgument_GridPointValue(MklGridPointCurve.Interpolator interpolation, GridPointCurve.Extrapolator leftExtrapolation, GridPointCurve.Extrapolator rightExtrapolation) { var gridPointCurve = GridPointCurve.Create(interpolation, leftExtrapolation, rightExtrapolation); gridPointCurve.Add(1.5, 2.0); gridPointCurve.Add(0.5, 1.25); gridPointCurve.Add(5.75, 9.75); gridPointCurve.Add(4.0, 12.25); gridPointCurve.Add(8.0, 7.5); gridPointCurve.Update(); Assume.That(gridPointCurve.FittingQuality == FittingQuality.Exact); Assert.That(gridPointCurve.IsOperable); for (int j = 0; j < gridPointCurve.GridPointCount; j++) { double expected = gridPointCurve.GridPointValues[j]; double actual = gridPointCurve.GetValue(gridPointCurve.GridPointArguments[j]); Assert.That(actual, Is.EqualTo(expected).Within(1E-6), String.Format("Grid Point argument: {0}; Grid Point value: {1}; null-based Grid Point index {2}.", gridPointCurve.GridPointArguments[j], gridPointCurve.GridPointValues[j], j)); } }
/// <summary>Initializes a new instance of the <see cref="MklCurveInterpolationSpline" /> class. /// </summary> internal MklCurveInterpolationSpline() { NaturalCubicSpline = new MklDataFitting(SplineOrder.DF_PP_CUBIC, SplineType.DF_PP_NATURAL, SplineBoundaryCondition.DF_BC_FREE_END); BesselCubicSpline = new MklDataFitting(MklCurveInterpolationSpline.SplineOrder.DF_PP_CUBIC, MklCurveInterpolationSpline.SplineType.DF_PP_BESSEL, MklCurveInterpolationSpline.SplineBoundaryCondition.DF_BC_NOT_A_KNOT, null); }