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);
00056
00058 virtual ScalarType Evaluate(const ScalarType& input) const;
00059
00061 virtual ScalarType EvaluateDerivative(const ScalarType& input) const;
00062
00063 protected:
00064
00065 SigmoidTransferFunction();
00066 virtual ~SigmoidTransferFunction();
00067
00069 virtual void PrintSelf( std::ostream& os, Indent indent ) const;
00070
00071 private:
00072
00073 ScalarType m_Alpha;
00074 ScalarType m_Beta;
00075 ScalarType m_OutputMinimum;
00076 ScalarType m_OutputMaximum;
00077 };
00078
00079 }
00080 }
00081
00082 #ifndef ITK_MANUAL_INSTANTIATION
00083 #include "itkSigmoidTransferFunction.txx"
00084 #endif
00085
00086 #endif
00087