Tnorm.h

Go to the documentation of this file.
00001 
00024 #ifndef         TNORM_H_
00025 # define        TNORM_H_
00026 
00027 #include <iostream>
00028 #include "Symbol.h"
00029 
00031 namespace IRIS {
00032 
00033   using namespace std;
00034 
00037   namespace Fuzzy {
00038 
00045     class Tnorm : public Symbol
00046     {
00047       public :
00048     
00049     //  CONSTRUCTORS  /////////////////////////////////////////////////////
00050     
00054         Tnorm( string name , double (*f)(double, double) );
00057         Tnorm( const Tnorm& And );
00058     
00059     //  DESTRUCTORS  //////////////////////////////////////////////////////
00060     
00061         virtual ~Tnorm( );
00062     
00063     //  SET MEMBER FUNCTIONS (MUTATORS)  //////////////////////////////////
00064     
00066         Tnorm& operator=( const Tnorm& And );
00067 
00068     //  GET MEMBER FUNCTIONS (ACCESSORS)  /////////////////////////////////
00069 
00070         //        /// returns a copy/clone of this object
00071         //        Symbol* clone() const ;
00075         double eval( double a , double b )
00076             { return (*_function)(a,b); };
00080         double operator()( double a , double b )
00081             { return (*_function)(a,b); };
00082 
00083     //  (OTHER) OVERLOADED OPERATORS  /////////////////////////////////////
00084 
00086         friend ostream& operator<<( ostream& outs , const Tnorm& And ) ;
00087     
00088       protected :
00089     
00090         double (*_function)( double , double );  // associated triangular norm
00091     
00092     //  UTILITIES  ////////////////////////////////////////////////////////
00093     
00094         void _copy ( const Tnorm& And ) ;
00095         void _destroy( ) ;
00096       
00097     }; // end of Tnorm class
00098 
00099   } // end of Fuzzy namespace
00100 
00101 } // end of IRIS namespace
00102     
00103 #endif      /* !TNORM_H_ */

Generated on Tue Dec 12 13:41:39 2006 for IRIS Intelligent Systems Tools by  doxygen 1.4.6