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

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::DerivativeType DerivativeType
 
typedef Superclass::DerivativeValueType DerivativeValueType
 
typedef Superclass::InputType InputType
 
typedef Superclass::OutputType OutputType
 
typedef SmartPointer< SelfPointer
 
typedef ExponentialLimiterFunction Self
 
typedef LimiterFunctionBase< TInput, NDimension > Superclass
 
- Public Types inherited from itk::LimiterFunctionBase< TInput, NDimension >
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
 
OutputType Evaluate (const InputType &input, DerivativeType &derivative) const override
 
virtual const char * GetClassName () const
 
void Initialize (void) override
 
 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 (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)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

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

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
 

Private Member Functions

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

Member Typedef Documentation

◆ ConstPointer

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

Definition at line 52 of file itkExponentialLimiterFunction.h.

◆ DerivativeType

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

Definition at line 67 of file itkExponentialLimiterFunction.h.

◆ DerivativeValueType

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

Definition at line 66 of file itkExponentialLimiterFunction.h.

◆ InputType

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

Superclass' typedefs

Definition at line 64 of file itkExponentialLimiterFunction.h.

◆ OutputType

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

Definition at line 65 of file itkExponentialLimiterFunction.h.

◆ Pointer

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

Definition at line 51 of file itkExponentialLimiterFunction.h.

◆ Self

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

Standard class typedefs.

Definition at line 49 of file itkExponentialLimiterFunction.h.

◆ Superclass

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

Definition at line 50 of file itkExponentialLimiterFunction.h.

Constructor & Destructor Documentation

◆ ExponentialLimiterFunction() [1/2]

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

◆ ~ExponentialLimiterFunction()

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

Definition at line 81 of file itkExponentialLimiterFunction.h.

◆ ExponentialLimiterFunction() [2/2]

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

Member Function Documentation

◆ ComputeLimiterSettings()

template<class TInput , unsigned int NDimension>
virtual void itk::ExponentialLimiterFunction< TInput, NDimension >::ComputeLimiterSettings ( void  )
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 ( void  )
overridevirtual

Initialize the limiter; calls the ComputeLimiterSettings() function

Reimplemented from itk::LimiterFunctionBase< 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

◆ operator=()

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

Field Documentation

◆ m_LTminLB

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

Definition at line 87 of file itkExponentialLimiterFunction.h.

◆ m_LTminLBinv

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

Definition at line 88 of file itkExponentialLimiterFunction.h.

◆ m_UTminUB

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

Definition at line 85 of file itkExponentialLimiterFunction.h.

◆ m_UTminUBinv

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

Definition at line 86 of file itkExponentialLimiterFunction.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo