00001
00022 #ifndef SIGMF_H_
00023 # define SIGMF_H_
00024
00025 #include "MembershipFn.h"
00026
00027 namespace IRIS {
00028
00029 using namespace std;
00030
00031 namespace Fuzzy {
00032
00034 class SigMF : public MembershipFn
00035 {
00036
00037 public:
00038
00040 static const unsigned NUM_PARMS = 2;
00041
00042
00043
00047 SigMF( double a=0 , double b=0 );
00056 SigMF( const string& name ,
00057 double a=0 , double b=0 ,
00058 double min=0 , double max=0 );
00061 SigMF( const MembershipFn::parm_list& parm );
00062
00063
00064
00066 ~SigMF( );
00067
00068
00069
00073 void set ( double a=0 , double b=0 );
00074
00075
00076 virtual void discretize( unsigned degree );
00077
00078
00079
00083 void get ( double &a , double &b );
00084
00085
00086 virtual double eval( double x ) const;
00087 virtual double operator() ( double val ) const;
00088
00089
00090 virtual void draw() const;
00091
00092 };
00093
00094 }
00095
00096 }
00097
00098 #endif