50#ifndef LASS_GUARDIAN_OF_INCLUSION_NUM_SPLINE_LINEAR_H
51#define LASS_GUARDIAN_OF_INCLUSION_NUM_SPLINE_LINEAR_H
67class SplineLinear:
public Spline<ScalarType, DataType>
71 typedef DataTraits TDataTraits;
73 typedef typename TSplineBase::TScalar TScalar;
74 typedef typename TSplineBase::TData TData;
75 typedef typename TSplineBase::ControlRange TControlRange;
78 template <
typename PairInputIterator>
79 SplineLinear(PairInputIterator iFirst, PairInputIterator iLast);
80 template <
typename ScalarInputIterator,
typename DataInputIterator>
81 SplineLinear(ScalarInputIterator iFirstControl, ScalarInputIterator iLastControl,
82 DataInputIterator iFirstData);
84 const TData
operator()(TScalar iX)
const override;
85 const TData
derivative(TScalar iX)
const override;
87 const TData
integral(TScalar iA, TScalar iB)
const override;
100 static bool less(
const Node& iA,
const Node& iB) {
return iA.x < iB.x; }
103 typedef std::vector<Node> TNodes;
104 typedef typename TNodes::const_iterator TNodeConstIterator;
107 const TNodeConstIterator findNode(TScalar iX)
const;
111 size_t dataDimension_;
const TControlRange controlRange() const override
return the range of control values for which the spline can interpolate.
bool isEmpty() const override
return true if the spline contains any nodes at all.
const TData derivative(TScalar iX) const override
Get the first derivative of data value that corresponds with constrol value iX.
const TData integral(TScalar iA, TScalar iB) const override
Get the integrated data value between control points iA and iB.
const TData operator()(TScalar iX) const override
Get the linear interpolated data value that corresponds with constrol value iX.
abstract base class of splines.
numeric types and traits.
const SplineLinear< S, D, T >::TData SplineLinear< S, D, T >::derivative2(TScalar) const
Get the second derivative of data value that corresponds with constrol value iX.
Library for Assembled Shared Sources.