00001
00022 #ifndef BELLMF_H_
00023 # define BELLMF_H_
00024
00025 #include "MembershipFn.h"
00026
00027 namespace IRIS {
00028
00029 using namespace std;
00030
00031 namespace Fuzzy {
00032
00034 class BellMF : public MembershipFn
00035 {
00036
00037 public:
00038
00040 static const unsigned NUM_PARMS = 3;
00041
00042
00043
00047 BellMF( double a=0 , double b=0 , double c=0 );
00056 BellMF( const string& name ,
00057 double a=0 , double b=0 , double c=0 ,
00058 double min=0 , double max=0 );
00061 BellMF( const MembershipFn::parm_list& parm );
00062
00063
00064
00066 ~BellMF( );
00067
00068
00069
00073 void set ( double a=0 , double b=0 , double c=0 );
00074
00075
00076 virtual void discretize( unsigned degree );
00077
00078
00079
00083 void get ( double &a , double &b , double &c );
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