Debug programs should link to the debug version of the DLL (FLC3d.DLL) whereas release programs link to 
FLC3.DLL
	
		
		FUNCTION CALL
		 | 
		
		INPUT(S)
		 | 
		
		RETURN
		 | 
		
		Notes
		 | 
		Express | 
		Pro | 
	
	
		| CFLC::CFLC(void) | 
		  | 
		  | 
		Constructor | 
		X | 
		  | 
	
	
		| int 
		CFLC::Reset(void) | 
		  | 
		error code | 
		Clears all FLC components  | 
		X | 
		  | 
	
	
		| int 
		CFLC::GetFLCNum(void) | 
		  | 
		  | 
		Returns FLC serial number | 
		X | 
		  | 
	
	
		| void 
		CFLC::ResetFLCno(void) | 
		  | 
		  | 
		Resets FLC counter (use with caution) | 
		  | 
		X | 
	
	
		| void 
		CFLC::SetNumFuzzySets(int 
		n) | 
		number of fuzzy sets | 
		  | 
		Sets number of Fuzzy Sets in FLC | 
		X | 
		  | 
	
	
		| int 
		CFLC::GetNumFuzzySets(void) | 
		  | 
		number of fuzzy sets | 
		  | 
		X | 
		  | 
	
	
		| void 
		CFLC::SetNumVars(int 
		n) | 
		number of variables | 
		  | 
		Always 3 (in all existing DLL clients) | 
		X | 
		  | 
	
	
		| int 
		CFLC::GetNumVars(void) | 
		  | 
		number of variables | 
		  | 
		X | 
		  | 
	
	
		| void 
		CFLC::SetRuleSetSize(int 
		n) | 
		number of rules | 
		  | 
		  | 
		X | 
		  | 
	
	
		| int 
		CFLC::GetRuleSetSize(void) | 
		  | 
		number of rules | 
		  | 
		X | 
		  | 
	
	
		| void 
		CFLC::SetName(string strFLC) | 
		FLC name | 
		  | 
		Generated automatically on creation (FLC_nn where nn is the FLC 
		number) | 
		X | 
		  | 
	
	
		| string CFLC::Name(void) | 
		  | 
		FLC name | 
		  | 
		X | 
		  | 
	
	
		| void 
		CFLC::SetShape(int 
		sn) | 
		FLC shape number | 
		  | 
		Only 2 shapes coded at present: 
		0 for 3x3, and 1 for 5x5 | 
		X | 
		  | 
	
	
		| int 
		CFLC::GetShape(void) | 
		  | 
		FLC shape number | 
		  | 
		X | 
		  | 
	
	
		| void 
		CFLC::SetRSModel(string strRSM) | 
		Rule Set model name | 
		  | 
		  | 
		X | 
		  | 
	
	
		| string CFLC::RSModel(void) | 
		  | 
		Rule Set model name | 
		  | 
		X | 
		  | 
	
	
		| void 
		CFLC::SetRSModel(int 
		nRSn) | 
		rule set model number | 
		  | 
		Check FLC_DLL.H for acceptable values | 
		X | 
		  | 
	
	
		| int 
		CFLC::RSModelMax(void) | 
		  | 
		Max Rule Set Model | 
		Upper bound in predefined rule sets | 
		X | 
		  | 
	
	
		| int 
		CFLC::FSModelMax(void) | 
		  | 
		Max Fuzzy Set Model | 
		Upper bound in predefined fuzzy sets | 
		X | 
		  | 
	
	
		int 
		CFLC::Calculate(double 
		*Val) 
		int 
		CFLC::Calculate(void); | 
		FLC inputs (doubles) | 
		error code | 
		  | 
		X | 
		  | 
	
	
		| int 
		CFLC::DetermineRuleSetSize(void) | 
		  | 
		Number of Rules | 
		A fully determined rule set should be 9 for a 2-variable FL 
		controller with each variable defined with 3 fuzzy states (or 25 if 5 
		fuzzy states). | 
		X | 
		  | 
	
	
		| int 
		CFLC::AllocateRuleSpace(void) | 
		  | 
		error code | 
		Used in Rule Set constitution | 
		X | 
		  | 
	
	
		int 
		CFLC::InitRuleSet(int 
		nSize) 
		int 
		CFLC::InitRuleSet(void) | 
		Number of rules | 
		error code | 
		SetRuleSetSize must have been called first if Size not given here. | 
		X | 
		  | 
	
	
		| int 
		CFLC::InitVarSet(int 
		nNumVars) | 
		Number of variables | 
		error code | 
		  | 
		X | 
		  | 
	
	
		| int 
		CFLC::InitFuzzySets(int 
		nNumFS) | 
		Number of fuzzy sets | 
		error code | 
		One can create many Fuzzy Sets, and associate/dissociate them from 
		existing variables. For simplicity, our samples generally use 1 FS per 
		Variable.  | 
		X | 
		  | 
	
	
		int 
		CFLC::ClearFuzzySets(void) 
		int 
		CFLC::ClearVarSet(void) 
		int 
		CFLC::ClearRuleSet() | 
		  | 
		error code | 
		Not often used separately. Use Reset() instead | 
		X | 
		  | 
	
	
		int 
		CFLC::EvaluateAllPremises(void) 
		int 
		CFLC::EvaluateAllPremises(double 
		*Val) | 
		Variable values | 
		error code | 
		See sample application for details Only used with full access to 
		API, otherwise called implicitly with Calculate call. 
		If values are not provided here, they must be defined prior to this 
		call.  | 
		X | 
		  | 
	
	
		| int 
		CFLC::InferenceRules(void) | 
		  | 
		error code | 
		See sample application for details | 
		X | 
		  | 
	
	
		| int 
		CFLC::GenerateFuzzyOutputs(void) | 
		  | 
		error code | 
		See sample application for details | 
		X | 
		  | 
	
	
		| double 
		CFLC::OutState(int 
		i) | 
		Fuzzy State | 
		error code | 
		Returns strength of fuzzy state "i" | 
		X | 
		  | 
	
	
		| int 
		CFLC::Defuzzify(int 
		DeFuzz = 0) | 
		  | 
		error code | 
		Defuzzify outputs into a single "crisp" output. Only one defuzzification 
		method (fuzzy centroid) is coded in current version. It is probably the 
		most balanced calculation method.  | 
		X | 
		  | 
	
	
		| int 
		CFLC::LoadDefault33RuleSet(CFLRule *rs, 
		int NumRules,
		int ArrIdx) | 
		  | 
		  | 
		Load one of the built-in 3x3 rule sets | 
		X | 
		  | 
	
	
		| int 
		CFLC::LoadDefault55RuleSet(CFLRule *rs, 
		int NumRules,
		int ArrIdx) | 
		  | 
		  | 
		Load one of the built-in 5x5 rule sets | 
		X | 
		  | 
	
	
		| int 
		CFLC::LoadCustom33RuleSet(CFLRule *rs, 
		int ***CustRS33, 
		string *CustRS33n, int 
		NumRules, int 
		ArrIdx) | 
		  | 
		  | 
		Requires full access to the API | 
		  | 
		X | 
	
	
		| int 
		CFLC::LoadCustom55RuleSet(CFLRule *rs, 
		int*** CustRS55, 
		string *CustRS55n, int 
		NumRules, int 
		ArrIdx) | 
		  | 
		  | 
		Requires full access to the API | 
		  | 
		X | 
	
	
		CFLVariable* VarArray() 
		CFuzzySet* FSArray() 
		CFLRule* RuleArray() | 
		  | 
		pointers | 
		These pointers allow the programmer to access the inner components 
		of the FL controller. | 
		X | 
		  | 
	
	
		BOOL boolFS() 
		BOOL boolVS() 
		BOOL boolVS() | 
		  | 
		boolean | 
		Used to test whether the FLC has a FS (a Set of fuzzy sets), a VS or 
		Variable Set, and a RS, i.e. a rule set. | 
		X | 
		  | 
	
	
		| BOOL bFLC_Built() | 
		  | 
		boolean | 
		single call to check whether the FLC is operational | 
		X | 
		  | 
	
	
		| int 
		nCredit() | 
		  | 
		integer | 
		The DLL is enabled with a given credit, decremented when a new FLC 
		is built. | 
		X | 
		  | 
	
	
		| int 
		nUsage() | 
		  | 
		integer | 
		Num FLC currently operational. | 
		X | 
		  | 
	
To write your own FLC code, please refer to sample code, in particular the 
Sample1 console application which is particularly easy to read, and to the 
22-page
class description document.