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

#include <itkExponentialLimiterFunction.h>

Detailed Description

template<typename 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

using ConstPointer = SmartPointer<const Self>
using DerivativeType
using DerivativeValueType
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
void Initialize () override
 ITK_DISALLOW_COPY_AND_MOVE (ExponentialLimiterFunction)
 itkOverrideGetNameOfClassMacro (ExponentialLimiterFunction)
 itkStaticConstMacro (Dimension, unsigned int, Superclass::Dimension)
Public Member Functions inherited from itk::LimiterFunctionBase< TInput, NDimension >
virtual OutputType GetLowerBound () const
virtual InputType GetLowerThreshold () const
virtual OutputType GetUpperBound () const
virtual InputType GetUpperThreshold () const
 ITK_DISALLOW_COPY_AND_MOVE (LimiterFunctionBase)
 itkOverrideGetNameOfClassMacro (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<typename TInput, unsigned int NDimension>
using itk::ExponentialLimiterFunction< TInput, NDimension >::ConstPointer = SmartPointer<const Self>

Definition at line 52 of file itkExponentialLimiterFunction.h.

◆ DerivativeType

template<typename TInput, unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::DerivativeType

Definition at line 71 of file itkLimiterFunctionBase.h.

◆ DerivativeValueType

template<typename TInput, unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::DerivativeValueType

Definition at line 70 of file itkLimiterFunctionBase.h.

◆ Pointer

template<typename TInput, unsigned int NDimension>
using itk::ExponentialLimiterFunction< TInput, NDimension >::Pointer = SmartPointer<Self>

Definition at line 51 of file itkExponentialLimiterFunction.h.

◆ Self

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

Standard class typedefs.

Definition at line 49 of file itkExponentialLimiterFunction.h.

◆ Superclass

template<typename 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<typename TInput, unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::ExponentialLimiterFunction ( )
protected

◆ ~ExponentialLimiterFunction()

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

Member Function Documentation

◆ ComputeLimiterSettings()

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

◆ Evaluate() [1/2]

template<typename 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<typename 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 >.

◆ Initialize()

template<typename 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<typename TInput, unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::ITK_DISALLOW_COPY_AND_MOVE ( ExponentialLimiterFunction< TInput, NDimension > )

◆ itkOverrideGetNameOfClassMacro()

template<typename TInput, unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::itkOverrideGetNameOfClassMacro ( ExponentialLimiterFunction< TInput, NDimension > )

Run-time type information (and related methods).

◆ itkStaticConstMacro()

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

Superclass' static consts

◆ New()

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

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

Member Data Documentation

◆ m_LTminLB

template<typename TInput, unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_LTminLB {}
protected

Definition at line 90 of file itkExponentialLimiterFunction.h.

◆ m_LTminLBinv

template<typename TInput, unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_LTminLBinv {}
protected

Definition at line 91 of file itkExponentialLimiterFunction.h.

◆ m_UTminUB

template<typename TInput, unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_UTminUB {}
protected

Definition at line 88 of file itkExponentialLimiterFunction.h.

◆ m_UTminUBinv

template<typename TInput, unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_UTminUBinv {}
protected

Definition at line 89 of file itkExponentialLimiterFunction.h.



Generated on 26-02-2026 for elastix by doxygen 1.16.1 (669aeeefca743c148e2d935b3d3c69535c7491e6) elastix logo