go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itk::LimiterFunctionBase< TInput, NDimension > Class Template Referenceabstract

#include <itkLimiterFunctionBase.h>

Detailed Description

template<class TInput, unsigned int NDimension>
class itk::LimiterFunctionBase< TInput, NDimension >

Base class for all ITK limiter function objects.

LimiterFunctionBase is the base class for ITK limiter function objects. The abstract method Evaluate() should limit a function, i.e. it should make sure that its output is below a certain value. The derivative of a function that is limited also changes.

In formula:

\[ L(y) = L(f(x)), \]

where $f(x)$ is the original function. and $L(f(x))$ the limited version. The derivative with respect to $x$ should satisfy:

\[ dL/dx = \frac{dL}{df} \cdot \frac{df}{dx} \]

Subclasses must override Evaluate(value) and Evaluate(value, derivative) .

This class is template over the input type and the dimension of $x$.

Definition at line 50 of file itkLimiterFunctionBase.h.

Inheritance diagram for itk::LimiterFunctionBase< TInput, NDimension >:

Public Types

using ConstPointer = SmartPointer<const Self>
 
using DerivativeType = CovariantVector<DerivativeValueType, Self::Dimension>
 
using DerivativeValueType = OutputType
 
using Pointer = SmartPointer<Self>
 
using Self = LimiterFunctionBase
 
using Superclass = FunctionBase<TInput, typename NumericTraits<TInput>::RealType>
 

Public Member Functions

OutputType Evaluate (const InputType &input) const override=0
 
virtual OutputType Evaluate (const InputType &input, DerivativeType &derivative) const =0
 
virtual const char * GetClassName () const
 
virtual OutputType GetLowerBound () const
 
virtual InputType GetLowerThreshold () const
 
virtual OutputType GetUpperBound () const
 
virtual InputType GetUpperThreshold () const
 
virtual void Initialize ()
 
 ITK_DISALLOW_COPY_AND_MOVE (LimiterFunctionBase)
 
 itkStaticConstMacro (Dimension, unsigned int, NDimension)
 
virtual void SetLowerBound (OutputType _arg)
 
virtual void SetLowerThreshold (InputType _arg)
 
virtual void SetUpperBound (OutputType _arg)
 
virtual void SetUpperThreshold (InputType _arg)
 

Protected Member Functions

 LimiterFunctionBase ()
 
 ~LimiterFunctionBase () override=default
 

Protected Attributes

OutputType m_LowerBound {}
 
InputType m_LowerThreshold {}
 
OutputType m_UpperBound {}
 
InputType m_UpperThreshold {}
 

Member Typedef Documentation

◆ ConstPointer

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::ConstPointer = SmartPointer<const Self>

Definition at line 59 of file itkLimiterFunctionBase.h.

◆ DerivativeType

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::DerivativeType = CovariantVector<DerivativeValueType, Self::Dimension>

Definition at line 71 of file itkLimiterFunctionBase.h.

◆ DerivativeValueType

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::DerivativeValueType = OutputType

Definition at line 70 of file itkLimiterFunctionBase.h.

◆ Pointer

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::Pointer = SmartPointer<Self>

Definition at line 58 of file itkLimiterFunctionBase.h.

◆ Self

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::Self = LimiterFunctionBase

Standard class typedefs.

Definition at line 56 of file itkLimiterFunctionBase.h.

◆ Superclass

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::Superclass = FunctionBase<TInput, typename NumericTraits<TInput>::RealType>

Definition at line 57 of file itkLimiterFunctionBase.h.

Constructor & Destructor Documentation

◆ LimiterFunctionBase()

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::LimiterFunctionBase ( )
inlineprotected

Definition at line 107 of file itkLimiterFunctionBase.h.

◆ ~LimiterFunctionBase()

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::~LimiterFunctionBase ( )
overrideprotecteddefault

Member Function Documentation

◆ Evaluate() [1/2]

template<class TInput , unsigned int NDimension>
OutputType itk::LimiterFunctionBase< TInput, NDimension >::Evaluate ( const InputType & input) const
overridepure virtual

◆ Evaluate() [2/2]

template<class TInput , unsigned int NDimension>
virtual OutputType itk::LimiterFunctionBase< TInput, NDimension >::Evaluate ( const InputType & input,
DerivativeType & derivative ) const
pure virtual

Limit the input value and change the input function derivative accordingly

Implemented in itk::ExponentialLimiterFunction< TInput, NDimension >, and itk::HardLimiterFunction< TInput, NDimension >.

◆ GetClassName()

template<class TInput , unsigned int NDimension>
virtual const char * itk::LimiterFunctionBase< TInput, NDimension >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented in itk::ExponentialLimiterFunction< TInput, NDimension >, and itk::HardLimiterFunction< TInput, NDimension >.

◆ GetLowerBound()

template<class TInput , unsigned int NDimension>
virtual OutputType itk::LimiterFunctionBase< TInput, NDimension >::GetLowerBound ( ) const
virtual

◆ GetLowerThreshold()

template<class TInput , unsigned int NDimension>
virtual InputType itk::LimiterFunctionBase< TInput, NDimension >::GetLowerThreshold ( ) const
virtual

◆ GetUpperBound()

template<class TInput , unsigned int NDimension>
virtual OutputType itk::LimiterFunctionBase< TInput, NDimension >::GetUpperBound ( ) const
virtual

◆ GetUpperThreshold()

template<class TInput , unsigned int NDimension>
virtual InputType itk::LimiterFunctionBase< TInput, NDimension >::GetUpperThreshold ( ) const
virtual

◆ Initialize()

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::Initialize ( )
inlinevirtual

Initialize the limiter

Reimplemented in itk::ExponentialLimiterFunction< TInput, NDimension >.

Definition at line 103 of file itkLimiterFunctionBase.h.

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::ITK_DISALLOW_COPY_AND_MOVE ( LimiterFunctionBase< TInput, NDimension > )

◆ itkStaticConstMacro()

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::itkStaticConstMacro ( Dimension ,
unsigned int ,
NDimension  )

◆ SetLowerBound()

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetLowerBound ( OutputType _arg)
virtual

Set/Get the lower bound that the output should respect. Make sure it is lower than the higher bound.

◆ SetLowerThreshold()

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetLowerThreshold ( InputType _arg)
virtual

Set the point where the limiter starts to work. Only input values below this number will possibly be affected. Make sure it is >= than the LowerBound.

◆ SetUpperBound()

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetUpperBound ( OutputType _arg)
virtual

Set/Get the upper bound that the output should respect. Make sure it is higher than the lower bound.

◆ SetUpperThreshold()

template<class TInput , unsigned int NDimension>
virtual void itk::LimiterFunctionBase< TInput, NDimension >::SetUpperThreshold ( InputType _arg)
virtual

Set the point where the limiter starts to work. Only input values above this number will possibly be affected. Make sure it is <= than the UpperBound.

Field Documentation

◆ m_LowerBound

template<class TInput , unsigned int NDimension>
OutputType itk::LimiterFunctionBase< TInput, NDimension >::m_LowerBound {}
protected

Definition at line 119 of file itkLimiterFunctionBase.h.

◆ m_LowerThreshold

template<class TInput , unsigned int NDimension>
InputType itk::LimiterFunctionBase< TInput, NDimension >::m_LowerThreshold {}
protected

Definition at line 121 of file itkLimiterFunctionBase.h.

◆ m_UpperBound

template<class TInput , unsigned int NDimension>
OutputType itk::LimiterFunctionBase< TInput, NDimension >::m_UpperBound {}
protected

Definition at line 118 of file itkLimiterFunctionBase.h.

◆ m_UpperThreshold

template<class TInput , unsigned int NDimension>
InputType itk::LimiterFunctionBase< TInput, NDimension >::m_UpperThreshold {}
protected

Definition at line 120 of file itkLimiterFunctionBase.h.



Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo