go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
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 >:
Inheritance graph
[legend]

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 2023-01-13 for elastix by doxygen 1.9.6 elastix logo