1+ //! The Cubic Spline interpolation stategy
2+ //!
3+ //! This module defines the [`CubicSpline`] struct which can be used with
4+ //! [`Interp1DBuilder::strategy()`](super::super::Interp1DBuilder::strategy).
5+ //!
6+ //! # Boundary conditions
7+ //! The Cubic Spline Strategy can be customized with bounday conditions.
8+ //! There are 3 Levels of boundary conditions:
9+ //! - [`BoundaryCondition`] The toplevel boundary applys to the whole dataset
10+ //! - [`RowBoundary`] applys to a single row in the dataset (use with [`BoundaryCondition::Individual`])
11+ //! - [`SingleBoundary`] applys to an individual boundary of a single row (use with [`RowBoundary::Mixed`])
12+ //!
13+
114use std:: {
215 fmt:: Debug ,
316 ops:: { Add , Neg , Sub , SubAssign } ,
@@ -15,8 +28,8 @@ use super::{Interp1DStrategy, Interp1DStrategyBuilder};
1528
1629const AX0 : Axis = Axis ( 0 ) ;
1730
18- /// Marker trait that is implemented for anithing that satisfies
19- /// the trait bounds required to be used as an element in the QubicSpline
31+ /// Marker trait that is implemented for anything that satisfies
32+ /// the trait bounds required to be used as an element in the CubicSpline
2033/// strategy.
2134pub trait SplineNum :
2235 Debug
@@ -52,7 +65,7 @@ impl<T> SplineNum for T where
5265{
5366}
5467
55- /// The CubicSpline 1d interpolation Strategy
68+ /// The CubicSpline 1d interpolation Strategy (Builder)
5669///
5770/// # Example
5871/// From [Wikipedia](https://en.wikipedia.org/wiki/Spline_interpolation#Example)
@@ -753,6 +766,9 @@ enum Extrapolate {
753766 Periodic ,
754767}
755768
769+ /// The CubicSpline 1d interpolation Strategy (Implementation)
770+ ///
771+ /// This is constructed by [`CubicSpline`]
756772#[ derive( Debug ) ]
757773pub struct CubicSplineStrategy < Sd , D >
758774where
0 commit comments