// Copyright (C) 2000 Dominic Letourneau (dominic.letourneau@courrier.usherb.ca)

// GenericModel.h: interface for the GenericModel class.
//
//////////////////////////////////////////////////////////////////////

#ifndef _GENERIC_MODEL_H_
#define _GENERIC_MODEL_H_

#include "FuzzyModel.h"

namespace FD {

class GenericModel : public FuzzyModel  {

public:

	//constructor
	GenericModel();

	GenericModel(const GenericModel& model);

	GenericModel(std::string nodeName, ParameterSet params);

	GenericModel(std::istream &in){readFrom(in);}

	//destructor
	virtual ~GenericModel();

	//fuzzy conjunction operator (min)
	virtual float conjunction(Vector<float> &c_values);

	//fuzzy disjunction operator (max)
	virtual float disjunction(Vector<float> &d_values);

	//Mamdani defuzzification 
	virtual Vector<float>& defuzzification();
	
	//cloning capability
	virtual ObjectRef clone();

	virtual void printOn(std::ostream &out=std::cout) const;
	
	virtual void readFrom(std::istream &in=std::cin);

private:

};
}//namespace FD

#endif 


syntax highlighted by Code2HTML, v. 0.9.1