18#ifndef itkRecursiveBSplineInterpolationWeightFunction_h
19#define itkRecursiveBSplineInterpolationWeightFunction_h
21#include "itkBSplineInterpolationWeightFunction.h"
47template <
typename TCoordRep =
float,
unsigned int VSpaceDimension = 2,
unsigned int VSplineOrder = 3>
49 :
public BSplineInterpolationWeightFunction<TCoordRep, VSpaceDimension, VSplineOrder>
56 using Superclass = BSplineInterpolationWeightFunction<TCoordRep, VSpaceDimension, VSplineOrder>;
73 using typename Superclass::WeightsType;
74 using typename Superclass::IndexType;
75 using typename Superclass::SizeType;
76 using typename Superclass::ContinuousIndexType;
79 static constexpr unsigned NumberOfIndices = Math::UnsignedPower(VSplineOrder + 1, VSpaceDimension);
85 Evaluate(
const ContinuousIndexType & index, IndexType & startIndex)
const;
96 using Superclass::PrintSelf;
102 Evaluate(
const ContinuousIndexType & index)
const override;
113 Evaluate(
const ContinuousIndexType & index, WeightsType & weights, IndexType & startIndex)
const override;
126#ifndef ITK_MANUAL_INSTANTIATION
127# include "itkRecursiveBSplineInterpolationWeightFunction.hxx"
Derivative of a B-spline kernel used for density estimation and nonparametric regression.
B-spline kernel used for density estimation and nonparameteric regression.
Derivative of a B-spline kernel used for density estimation and nonparametric regression.
RecursiveBSplineInterpolationWeightFunction()=default
~RecursiveBSplineInterpolationWeightFunction() override=default
SmartPointer< const Self > ConstPointer
static constexpr unsigned NumberOfIndices
WeightsType EvaluateSecondOrderDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
BSplineKernelFunction2< VSplineOrder > KernelType
WeightsType EvaluateDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
BSplineSecondOrderDerivativeKernelFunction2< VSplineOrder > SecondOrderDerivativeKernelType
itkStaticConstMacro(SplineOrder, unsigned int, VSplineOrder)
ITK_DISALLOW_COPY_AND_MOVE(RecursiveBSplineInterpolationWeightFunction)
unsigned int m_NumberOfIndices
WeightsType Evaluate(const ContinuousIndexType &index, IndexType &startIndex) const
SmartPointer< Self > Pointer
RecursiveBSplineInterpolationWeightFunction Self
WeightsType Evaluate(const ContinuousIndexType &index) const override
BSplineInterpolationWeightFunction< TCoordRep, VSpaceDimension, VSplineOrder > Superclass
itkStaticConstMacro(SpaceDimension, unsigned int, VSpaceDimension)
void Evaluate(const ContinuousIndexType &index, WeightsType &weights, IndexType &startIndex) const override
BSplineDerivativeKernelFunction2< VSplineOrder > DerivativeKernelType