00001
00022 #ifndef TRIMF_H_
00023 # define TRIMF_H_
00024
00025 #include "MembershipFn.h"
00026
00027 namespace IRIS {
00028
00029 using namespace std;
00030
00031 namespace Fuzzy {
00032
00046 class TriMF : public MembershipFn
00047 {
00048
00049 public:
00050
00052 static const unsigned NUM_PARMS = 3;
00053
00054
00055
00062 TriMF( double a=0 , double b=0 , double c=0 );
00072 TriMF( const string& name ,
00073 double a=0 , double b=0 , double c=0 ,
00074 double min=0 , double max=0 );
00078 TriMF( const MembershipFn::parm_list& parm );
00079
00080
00081
00083 ~TriMF( );
00084
00085
00086
00092 void set ( double a=0 , double b=0 , double c=0 );
00093
00094
00095 virtual void discretize( unsigned degree );
00096
00097
00098
00103 void get ( double &a , double &b , double &c );
00104
00105
00106 virtual double eval( double x ) const;
00107 virtual double operator() ( double val ) const;
00108
00109
00110 virtual void draw() const;
00111
00112 };
00113
00114 }
00115
00116 }
00117
00118 #endif
00119