SplineKernels.CubicHermite Property

Gets the standard 4-point cubic Hermite interpolation kernel with centered finite differences.

Definition

Namespace: Numerics.NET.Curves.Surfaces
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.1.0
C#
public static ISplineKernel1D CubicHermite { get; }

Property Value

ISplineKernel1D
A kernel implementing piecewise cubic Hermite interpolation with slopes computed using centered finite differences (Catmull-Rom style).

Remarks

This kernel performs local cubic interpolation using a 4-point stencil. At each evaluation point, it computes slopes using centered finite differences from neighboring points, then constructs a cubic Hermite polynomial on the current segment. This is also known as Catmull-Rom interpolation.

Continuity: C¹ (continuous value and first derivative)

Width: 4 (uses 4 neighboring points for each segment)

Characteristics:

  • Local method (no global solve required)
  • Passes through all data points (interpolating, not approximating)
  • May overshoot and oscillate near sharp features
  • Not guaranteed to preserve monotonicity

Difference from CubicSpline: This kernel is not the same as any CubicSplineKind (Natural, Clamped, NotAKnot). Those are global cubic spline methods that solve tridiagonal systems to ensure C² continuity or specific boundary conditions. This kernel is purely local and achieves only C¹ continuity.

Backward compatibility: This kernel produces the same results as the original hard-coded cubic implementation in earlier versions of the tensor-product grid surface code.

See Also