00001
00023 #ifndef DSIGMF_H_
00024 # define DSIGMF_H_
00025
00026 #include "MembershipFn.h"
00027
00028 namespace IRIS {
00029
00030 using namespace std;
00031
00032 namespace Fuzzy {
00033
00036 class dSigMF : public MembershipFn
00037 {
00038
00039 public:
00040
00042 static const unsigned NUM_PARMS = 4;
00043
00044
00045
00053 dSigMF( double a=0 , double b=0 , double c=0 , double d=0 );
00064 dSigMF( const string& name ,
00065 double a=0 , double b=0 , double c=0 , double d=0 ,
00066 double min=0 , double max=0 );
00069 dSigMF( const MembershipFn::parm_list& parm );
00070
00071
00072
00074 ~dSigMF( );
00075
00076
00077
00084 void set ( double a=0 , double b=0 , double c=0 , double d=0 );
00085
00086
00087 virtual void discretize( unsigned degree );
00088
00089
00090
00096 void get ( double &a , double &b , double &c , double &d );
00097
00098
00099 virtual double eval( double x ) const;
00100 virtual double operator() ( double val ) const;
00101
00102
00103 virtual void draw() const;
00104
00105 };
00106
00107 }
00108
00109 }
00110
00111 #endif