00001
00022 #ifndef GAUSSMF_H_
00023 # define GAUSSMF_H_
00024
00025 #include "MembershipFn.h"
00026
00027 namespace IRIS {
00028
00029 using namespace std;
00030
00031 namespace Fuzzy {
00032
00034 class GaussMF : public MembershipFn
00035 {
00036
00037 public:
00038
00040 static const unsigned NUM_PARMS = 2;
00041
00042
00043
00050 GaussMF( double sig=0 , double c=0 );
00060 GaussMF( const string& name ,
00061 double sig=0 , double c=0 ,
00062 double min=0 , double max=0 );
00065 GaussMF( const MembershipFn::parm_list& parm );
00066
00067
00068
00070 ~GaussMF( );
00071
00072
00073
00078 void set ( double a=0 , double b=0 );
00079
00080
00081 virtual void discretize( unsigned degree );
00082
00083
00084
00089 void get ( double &a , double &b );
00090
00091
00092 virtual double eval( double x ) const;
00093 virtual double operator() ( double val ) const;
00094
00095
00096 virtual void draw() const;
00097
00098 };
00099
00100 }
00101
00102 }
00103
00104 #endif