00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkSigmoidTransferFunction_h
00019 #define __itkSigmoidTransferFunction_h
00020
00021 #include "itkTransferFunctionBase.h"
00022
00023 namespace itk
00024 {
00025 namespace Statistics
00026 {
00027
00028 template<class ScalarType>
00029 class SigmoidTransferFunction : public TransferFunctionBase<ScalarType>
00030 {
00031
00032 public:
00033
00035 typedef SigmoidTransferFunction Self;
00036 typedef TransferFunctionBase<ScalarType> Superclass;
00037 typedef SmartPointer<Self> Pointer;
00038 typedef SmartPointer<const Self> ConstPointer;
00039
00041 itkTypeMacro(SigmoidTransferFunction, TransferFunctionBase);
00042
00044 itkNewMacro(Self) ;
00045
00047 itkSetMacro(Alpha,ScalarType);
00048 itkGetMacro(Alpha,ScalarType);
00049 itkSetMacro(Beta,ScalarType);
00050 itkGetMacro(Beta,ScalarType);
00051 itkSetMacro(OutputMinimum,ScalarType);
00052 itkGetMacro(OutputMinimum,ScalarType);
00053 itkSetMacro(OutputMaximum,ScalarType);
00054 itkGetMacro(OutputMaximum,ScalarType);
00055
00057 ScalarType Evaluate(const ScalarType& input) const;
00058
00060 ScalarType EvaluateDerivative(const ScalarType& input) const;
00061
00062 protected:
00063
00064 SigmoidTransferFunction();
00065 ~SigmoidTransferFunction();
00066
00068 virtual void PrintSelf( std::ostream& os, Indent indent ) const;
00069
00070 private:
00071
00072 ScalarType m_Alpha;
00073 ScalarType m_Beta;
00074 ScalarType m_OutputMinimum;
00075 ScalarType m_OutputMaximum;
00076 };
00077
00078 }
00079 }
00080
00081 #ifndef ITK_MANUAL_INSTANTIATION
00082 #include "itkSigmoidTransferFunction.txx"
00083 #endif
00084
00085 #endif