#ifndef _FFNet_Pattern_Categories_h_
#define _FFNet_Pattern_Categories_h_
/* David Weenink, 21 aug 1996 */

#ifndef _FFNet_h_
	#include "FFNet.h"
#endif
#ifndef _Pattern_h_
	#include "Pattern.h"
#endif
#ifndef _Categories_h_	
	#include "Categories.h"
#endif
#ifndef _Minimizers_h_	
	#include "Minimizers.h"
#endif

int FFNet_Pattern_Categories_learnPR (FFNet me, Pattern p, Categories c, long maxNumOfEpochs,
    double tolerance, Any parameters, int costFunctionType);
/* Conjugate Gradient minimization */

int FFNet_Pattern_Categories_learnFP (FFNet me, Pattern p, Categories c, long maxNumOfEpochs,
    double tolerance, Any parameters, int costFunctionType);
/* Fletcher Powell */

int FFNet_Pattern_Categories_learnSD (FFNet me, Pattern p, Categories c, long maxNumOfEpochs,
    double tolerance, Any parameters, int costFunctionType);
/* Steepest descent */

int FFNet_Pattern_Categories_learnSM (FFNet me, Pattern p, Categories c, long maxNumOfEpochs,
    double tolerance, Any parameters, int costFunctionType);
/* Conj. Gradient vdSmagt */

Categories FFNet_Pattern_to_Categories (FFNet me, Pattern p, int labeling);
/* classify the Pattern */
/* labeling = 1 : winner-takes-all */
/* labeling = 2 : stochastic */
/* Preconditions: I have labels */

 
#endif /* _FFNet_Pattern_Categories_h_ */
