00001
00024 #ifndef TCONORM_H_
00025 # define TCONORM_H_
00026
00027 #include <iostream>
00028 #include "Symbol.h"
00029
00031 namespace IRIS {
00032
00033 using namespace std;
00034
00037 namespace Fuzzy {
00038
00042 class Tconorm : public Symbol
00043 {
00044 public :
00045
00046
00047
00051 Tconorm( string name , double (*f)(double, double) );
00054 Tconorm( const Tconorm& Or );
00055
00056
00057
00058 virtual ~Tconorm( );
00059
00060
00061
00063 Tconorm& operator=( const Tconorm& Or );
00064
00065
00066
00067
00068
00072 virtual double eval( double a , double b )
00073 { return (*_function)(a,b); };
00077 virtual double operator()( double a , double b )
00078 { return (*_function)(a,b); };
00079
00080
00081
00083 friend ostream& operator<<( ostream& outs , const Tconorm& Or ) ;
00084
00085 protected :
00086
00087 double (*_function) (double, double) ;
00088
00089
00090
00091 void _copy ( const Tconorm& Or ) ;
00092 void _destroy( ) ;
00093
00094 };
00095
00096 }
00097
00098 }
00099
00100 #endif