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
00050
00054 Tnorm( string name , double (*f)(double, double) );
00057 Tnorm( const Tnorm& And );
00058
00059
00060
00061 virtual ~Tnorm( );
00062
00063
00064
00066 Tnorm& operator=( const Tnorm& And );
00067
00068
00069
00070
00071
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
00084
00086 friend ostream& operator<<( ostream& outs , const Tnorm& And ) ;
00087
00088 protected :
00089
00090 double (*_function)( double , double );
00091
00092
00093
00094 void _copy ( const Tnorm& And ) ;
00095 void _destroy( ) ;
00096
00097 };
00098
00099 }
00100
00101 }
00102
00103 #endif