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 | Static Public Member Functions | Protected Member Functions | Protected Attributes
itk::ExponentialLimiterFunction< TInput, NDimension > Class Template Reference

#include <itkExponentialLimiterFunction.h>

Detailed Description

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

A soft limiter.

If the input value exceeds the upper/lower threshold the output is diminished/increased, such that it never will exceed the UpperBound/LowerBound. It does this in a smooth manner, with an exponential function.

\[ L(f(x)) = (T-B) e^{(f-T)/(T-B)} + B, \]

where $B$ is the upper/lower bound and $T$ the upper/lower threshold

See also
LimiterFunctionBase, HardLimiterFunction

Definition at line 43 of file itkExponentialLimiterFunction.h.

Inheritance diagram for itk::ExponentialLimiterFunction< 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 = ExponentialLimiterFunction
 
using Superclass = LimiterFunctionBase< TInput, NDimension >
 
- Public Types inherited from itk::LimiterFunctionBase< TInput, NDimension >
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
 
OutputType Evaluate (const InputType &input, DerivativeType &derivative) const override
 
virtual const char * GetClassName () const
 
void Initialize () override
 
 ITK_DISALLOW_COPY_AND_MOVE (ExponentialLimiterFunction)
 
 itkStaticConstMacro (Dimension, unsigned int, Superclass::Dimension)
 
- Public Member Functions inherited from itk::LimiterFunctionBase< TInput, NDimension >
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)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

virtual void ComputeLimiterSettings ()
 
 ExponentialLimiterFunction ()
 
 ~ExponentialLimiterFunction () override=default
 
- Protected Member Functions inherited from itk::LimiterFunctionBase< TInput, NDimension >
 LimiterFunctionBase ()
 
 ~LimiterFunctionBase () override=default
 

Protected Attributes

double m_LTminLB
 
double m_LTminLBinv
 
double m_UTminUB
 
double m_UTminUBinv
 
- Protected Attributes inherited from itk::LimiterFunctionBase< TInput, NDimension >
OutputType m_LowerBound
 
InputType m_LowerThreshold
 
OutputType m_UpperBound
 
InputType m_UpperThreshold
 

Member Typedef Documentation

◆ ConstPointer

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

Definition at line 52 of file itkExponentialLimiterFunction.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::ExponentialLimiterFunction< TInput, NDimension >::Pointer = SmartPointer<Self>

Definition at line 51 of file itkExponentialLimiterFunction.h.

◆ Self

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

Standard class typedefs.

Definition at line 49 of file itkExponentialLimiterFunction.h.

◆ Superclass

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

Definition at line 50 of file itkExponentialLimiterFunction.h.

Constructor & Destructor Documentation

◆ ExponentialLimiterFunction()

template<class TInput , unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::ExponentialLimiterFunction ( )
protected

◆ ~ExponentialLimiterFunction()

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

Member Function Documentation

◆ ComputeLimiterSettings()

template<class TInput , unsigned int NDimension>
virtual void itk::ExponentialLimiterFunction< TInput, NDimension >::ComputeLimiterSettings ( )
protectedvirtual

◆ Evaluate() [1/2]

template<class TInput , unsigned int NDimension>
OutputType itk::ExponentialLimiterFunction< TInput, NDimension >::Evaluate ( const InputType &  input) const
overridevirtual

Limit the input value

Implements itk::LimiterFunctionBase< TInput, NDimension >.

◆ Evaluate() [2/2]

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

Limit the input value and change the input function derivative accordingly

Implements itk::LimiterFunctionBase< TInput, NDimension >.

◆ GetClassName()

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

Run-time type information (and related methods).

Reimplemented from itk::LimiterFunctionBase< TInput, NDimension >.

◆ Initialize()

template<class TInput , unsigned int NDimension>
void itk::ExponentialLimiterFunction< TInput, NDimension >::Initialize ( )
overridevirtual

Initialize the limiter; calls the ComputeLimiterSettings() function

Reimplemented from itk::LimiterFunctionBase< TInput, NDimension >.

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ itkStaticConstMacro()

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

Superclass' static consts

◆ New()

template<class TInput , unsigned int NDimension>
static Pointer itk::ExponentialLimiterFunction< TInput, NDimension >::New ( )
static

Define the New() function, for creation via the ObjectFactory

Field Documentation

◆ m_LTminLB

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_LTminLB
protected

Definition at line 90 of file itkExponentialLimiterFunction.h.

◆ m_LTminLBinv

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_LTminLBinv
protected

Definition at line 91 of file itkExponentialLimiterFunction.h.

◆ m_UTminUB

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_UTminUB
protected

Definition at line 88 of file itkExponentialLimiterFunction.h.

◆ m_UTminUBinv

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_UTminUBinv
protected

Definition at line 89 of file itkExponentialLimiterFunction.h.



Generated on Wed 12 Apr 2023 for elastix by doxygen 1.9.6 elastix logo