+++ /dev/null
-#ifndef __FPA__BASE__FUNCTORS__INVERTCOSTFUNCTION__H__
-#define __FPA__BASE__FUNCTORS__INVERTCOSTFUNCTION__H__
-
-#include <cmath>
-#include <itkFunctionBase.h>
-
-namespace fpa
-{
- namespace Base
- {
- namespace Functors
- {
- /**
- */
- template< class C >
- class InvertCostFunction
- : public itk::FunctionBase< C, C >
- {
- public:
- /// Type-related and pointers
- typedef InvertCostFunction Self;
- typedef itk::FunctionBase< C, C > Superclass;
- typedef itk::SmartPointer< Self > Pointer;
- typedef itk::SmartPointer< const Self > ConstPointer;
-
- public:
- itkNewMacro( Self );
- itkTypeMacro( InvertCostFunction, itkFunctionBase );
-
- itkGetConstMacro( Alpha, C );
- itkGetConstMacro( Beta, C );
-
- itkSetMacro( Alpha, C );
- itkSetMacro( Beta, C );
-
- public:
- virtual C Evaluate( const C& input ) const ITK_OVERRIDE
- {
- C a = std::pow( input, this->m_Alpha );
- if( input >= C( 0 ) )
- return( std::pow( C( 1 ) / ( C( 1 ) + a ), this->m_Beta ) );
- else
- return( std::pow( C( -1 ) / ( C( 1 ) - a ), this->m_Beta ) );
- }
-
- protected:
- InvertCostFunction( )
- : Superclass( ),
- m_Alpha( C( 1 ) ),
- m_Beta( C( 1 ) )
- { }
- virtual ~InvertCostFunction( )
- { }
-
- private:
- // Purposely not implemented
- InvertCostFunction( const Self& );
- void operator=( const Self& );
-
- protected:
- C m_Alpha;
- C m_Beta;
- };
-
- } // ecapseman
-
- } // ecapseman
-
-} // ecapseman
-
-#endif // __FPA__BASE__FUNCTORS__INVERTCOSTFUNCTION__H__
-
-// eof - $RCSfile$