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