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 | Private Member Functions
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

typedef SmartPointer< const SelfConstPointer
 
typedef CovariantVector< DerivativeValueType, itkGetStaticConstMacro(Dimension) > DerivativeType
 
typedef OutputType DerivativeValueType
 
typedef Superclass::InputType InputType
 
typedef Superclass::OutputType OutputType
 
typedef SmartPointer< SelfPointer
 
typedef LimiterFunctionBase Self
 
typedef FunctionBase< TInput, typename NumericTraits< TInput >::RealType > Superclass
 

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 (void)
 
 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
 

Protected Attributes

OutputType m_LowerBound
 
InputType m_LowerThreshold
 
OutputType m_UpperBound
 
InputType m_UpperThreshold
 

Private Member Functions

 LimiterFunctionBase (const Self &)
 
void operator= (const Self &)
 

Member Typedef Documentation

◆ ConstPointer

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

Definition at line 59 of file itkLimiterFunctionBase.h.

◆ DerivativeType

template<class TInput , unsigned int NDimension>
typedef CovariantVector< DerivativeValueType, itkGetStaticConstMacro( Dimension ) > itk::LimiterFunctionBase< TInput, NDimension >::DerivativeType

Definition at line 73 of file itkLimiterFunctionBase.h.

◆ DerivativeValueType

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

Definition at line 70 of file itkLimiterFunctionBase.h.

◆ InputType

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

Superclass' typedefs

Definition at line 67 of file itkLimiterFunctionBase.h.

◆ OutputType

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

Definition at line 68 of file itkLimiterFunctionBase.h.

◆ Pointer

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

Definition at line 58 of file itkLimiterFunctionBase.h.

◆ Self

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

Standard class typedefs.

Definition at line 56 of file itkLimiterFunctionBase.h.

◆ Superclass

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

Definition at line 57 of file itkLimiterFunctionBase.h.

Constructor & Destructor Documentation

◆ LimiterFunctionBase() [1/2]

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

Definition at line 106 of file itkLimiterFunctionBase.h.

◆ ~LimiterFunctionBase()

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

Definition at line 117 of file itkLimiterFunctionBase.h.

◆ LimiterFunctionBase() [2/2]

template<class TInput , unsigned int NDimension>
itk::LimiterFunctionBase< TInput, NDimension >::LimiterFunctionBase ( const Self )
private

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 ( void  )
inlinevirtual

Initialize the limiter

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

Definition at line 102 of file itkLimiterFunctionBase.h.

◆ itkStaticConstMacro()

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

◆ operator=()

template<class TInput , unsigned int NDimension>
void itk::LimiterFunctionBase< TInput, NDimension >::operator= ( const Self )
private

◆ 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 120 of file itkLimiterFunctionBase.h.

◆ m_LowerThreshold

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

Definition at line 122 of file itkLimiterFunctionBase.h.

◆ m_UpperBound

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

Definition at line 119 of file itkLimiterFunctionBase.h.

◆ m_UpperThreshold

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

Definition at line 121 of file itkLimiterFunctionBase.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo