/*****************************************************************************
FILE : $Source: /projects/higgs1/SNNS/CVS/SNNS/kernel/sources/func_tbl.c,v $
SHORTNAME :
SNNS VERSION : 4.2
PURPOSE : SNNS-Kernel Function table
NOTES :
AUTHOR : Niels Mache
DATE : 25.06.90
CHANGED BY : Sven Doering, Michael Vogt, Ralf Huebner, Thomas Gern
RCS VERSION : $Revision: 2.51 $
LAST CHANGE : $Date: 1998/09/03 09:52:20 $
Copyright (c) 1990-1995 SNNS Group, IPVR, Univ. Stuttgart, FRG
Copyright (c) 1996-1998 SNNS Group, WSI, Univ. Tuebingen, FRG
******************************************************************************/
#include <config.h>
#include <stdio.h>
#include "kr_typ.h" /* Kernel Types and Constants */
#include "kr_const.h" /* Constant Declarators for SNNS-Kernel */
#include "learn_f.h"
#include "init_f.h"
#include "trans_f.h"
#include "remap_f.h"
#include "update_f.h"
#include "arttr_f.h"
#include "tbl_func.h"
#include "kr_td.h"
#include "cc_learn.h"
#include "tacoma_learn.h"
#include "cc_type.h"
#include "dlvq_learn.h"
#include "prun_f.h"
#include "stochastic_learn_f.h"
#include "scaled_conj_grad.h"
#include "func_tbl.ph"
/* The function table contains 5 entries:
- the XGUI-Identifier of this function (a pointer to a string constant),
note that the identifier have to match [A-Za-z]^[|, ]* (i.e. the first
character of the symbol must be a letter and all other characters must
not match [|, ])
- an integer constant that determine the class of the function.
8 different classes are possible:
OUT_FUNC, ACT_FUNC, ACT_DERIV_FUNC, SITE_FUNC, UPDATE_FUNC, LEARN_FUNC,
INIT_FUNC, PRUNING_FUNC and TEST_FUNC
- the number of input parameters for this function (only needed for Update,
Init, Learning and Test functions)
- the number of output parameters returned by this function (only needed
for Update, Learning and Test functions)
- a pointer to the (user defined) function.
*/
/* ********************************************************************* */
/* Here is the function table
*/
struct FuncTable kernel_func_table[] =
{
/* Output functions */
/* In 'kr_const.h' is defined that the NULL-pointer presents the
identity function. So the "Out_Identity" function is represented
by the NULL-pointer instead of the function pointer.
*/
/* This is the DEFAULT FUNCTION */
{"Out_Identity", OUT_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) OUT_IDENTITY},
{"Out_Threshold05", OUT_FUNC, 0, 0, (FunctionPtr) OUT_Threshold05},
{"Out_Clip_01", OUT_FUNC, 0, 0, (FunctionPtr) OUT_Clip_01},
{"Out_Clip_11", OUT_FUNC, 0, 0, (FunctionPtr) OUT_Clip_11},
{"Out_ART2_Noise_PLin", OUT_FUNC, 0, 0, (FunctionPtr) OUT_ART2_Noise_PLin},
{"Out_ART2_Noise_ContDiff", OUT_FUNC, 0, 0, (FunctionPtr) OUT_ART2_Noise_ContDiff},
/* Activation functions */
/* This is the DEFAULT FUNCTION */
{"Act_Logistic", ACT_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) ACT_Logistic},
{"Act_Elliott", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Elliott},
{"Act_BSB", ACT_FUNC, 0, 0, (FunctionPtr) ACT_BSBFunction},
{"Act_TanH", ACT_FUNC, 0, 0, (FunctionPtr) ACT_TanHFunction},
{"Act_TanH_Xdiv2", ACT_FUNC, 0, 0, (FunctionPtr) ACT_TanHFunction_Xdiv2},
{"Act_Perceptron", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Perceptron},
{"Act_Signum", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Signum},
{"Act_Signum0", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Signum0},
{"Act_Softmax", ACT_FUNC ,0, 0, (FunctionPtr) ACT_Softmax},
{"Act_StepFunc", ACT_FUNC, 0, 0, (FunctionPtr) ACT_StepFunction},
{"Act_HystStep", ACT_FUNC, 0, 0, (FunctionPtr) ACT_HystStepFunction},
{"Act_BAM", ACT_FUNC, 0, 0, (FunctionPtr) ACT_BAMFunction},
{"Logistic_notInhibit" , ACT_FUNC, 0, 0, (FunctionPtr) ACT_LogisticI},
{"Act_MinOutPlusWeight", ACT_FUNC, 0, 0, (FunctionPtr) ACT_MinOutPlusWeight},
{"Act_Identity", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Linear},
{"Act_IdentityPlusBias", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Linear_bias},
{"Act_LogisticTbl", ACT_FUNC, 0, 0, (FunctionPtr) ACT_LogisticTbl},
{"Act_RBF_Gaussian", ACT_FUNC, 0, 0, (FunctionPtr) ACT_RBF_Gaussian},
{"Act_RBF_MultiQuadratic", ACT_FUNC, 0, 0, (FunctionPtr) ACT_RBF_Multiquadratic},
{"Act_RBF_ThinPlateSpline", ACT_FUNC, 0, 0, (FunctionPtr) ACT_RBF_Thinplatespline},
{"Act_less_than_0", ACT_FUNC, 0, 0, (FunctionPtr) ACT_less_than_0},
{"Act_at_most_0", ACT_FUNC, 0, 0, (FunctionPtr) ACT_at_most_0},
{"Act_at_least_2", ACT_FUNC, 0, 0, (FunctionPtr) ACT_at_least_2},
{"Act_at_least_1", ACT_FUNC, 0, 0, (FunctionPtr) ACT_at_least_1},
{"Act_exactly_1", ACT_FUNC, 0, 0, (FunctionPtr) ACT_exactly_1},
{"Act_Product", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Product},
{"Act_ART1_NC", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART1_NC},
{"Act_ART2_Identity",ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_Linear},
{"Act_ART2_NormP", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormP},
{"Act_ART2_NormV", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormV},
{"Act_ART2_NormW", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormW},
{"Act_ART2_NormIP", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_NormIP},
{"Act_ART2_Rec", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_Rec},
{"Act_ART2_Rst", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ART2_Rst},
{"Act_ARTMAP_NCa", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ARTMAP_NCa},
{"Act_ARTMAP_NCb", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ARTMAP_NCb},
{"Act_ARTMAP_DRho", ACT_FUNC, 0, 0, (FunctionPtr) ACT_ARTMAP_DRho},
{"Act_LogSym", ACT_FUNC, 0, 0, (FunctionPtr) ACT_LogisticSym},
{"Act_CC_Thresh", ACT_FUNC, 0, 0, (FunctionPtr) ACT_CC_Threshold},
{"Act_Sinus", ACT_FUNC, 0, 0, (FunctionPtr) ACT_SIN},
{"Act_Exponential", ACT_FUNC, 0, 0, (FunctionPtr) ACT_EXPONENT},
{"Act_TD_Logistic", ACT_FUNC, 0, 0, (FunctionPtr) ACT_TD_Logistic},
{"Act_TD_Elliott", ACT_FUNC, 0, 0, (FunctionPtr) ACT_TD_Elliott},
{"Act_Euclid", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Euclid},
{"Act_Component", ACT_FUNC, 0, 0, (FunctionPtr) ACT_Component},
{"Act_RM", ACT_FUNC, 0, 0, (FunctionPtr) ACT_RM},
{"Act_TACOMA", ACT_FUNC, 0, 0, (FunctionPtr) ACT_TACOMA},
/* Derivation functions of the activation functions
NOTE: The derivative function of the activation function MUST have
the same name as the belonging activation function.
*/
{"Act_Logistic", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Logistic},
{"Act_Elliott", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Elliott},
{"Act_BSB", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_BSBFunction},
{"Act_TanH", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TanHFunction},
{"Act_TanH_Xdiv2", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TanHFunction_Xdiv2},
{"Act_Perceptron", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_Signum", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_Signum0", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_Softmax", ACT_DERIV_FUNC ,0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_StepFunc", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_HystStep", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_BAM", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Logistic_notInhibit", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_MinOutPlusWeight", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_Identity", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Identity},
{"Act_IdentityPlusBias", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Identity},
{"Act_LogisticTbl", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Logistic},
{"Act_RBF_Gaussian", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_RBF_Gaussian},
{"Act_RBF_MultiQuadratic", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_RBF_Multiquadratic},
{"Act_RBF_ThinPlateSpline", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_RBF_Thinplatespline},
{"Act_less_than_0", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_at_most_0", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_at_least_1", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_at_least_2", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_exactly_1", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_Product", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART1_NC", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART2_Identity",ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART2_NormP", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART2_NormV", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART2_NormW", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART2_NormIP", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART2_Rec", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ART2_Rst", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ARTMAP_NCa", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ARTMAP_NCb", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_ARTMAP_DRho", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_LogSym", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_LogisticSym},
{"Act_CC_Thresh", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_CC_Threshold},
{"Act_Sinus", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_SIN},
{"Act_Exponential", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_EXPONENT},
{"Act_TD_Logistic", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TD_Logistic},
{"Act_TD_Elliott", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TD_Elliott},
{"Act_Euclid", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_Component", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_RM", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_Dummy},
{"Act_TACOMA", ACT_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_DERIV_TACOMA},
/* Second derivation functions of the activation functions
NOTE: The second derivative function of the activation function
MUST have the same name as the belonging activation function.
*/
{"Act_Logistic", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Logistic},
{"Act_Elliott", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Elliott},
{"Act_BSB", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_BSBFunction},
{"Act_TanH", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_TanHFunction},
{"Act_TanHPlusBias", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_TanHFunction},
{"Act_TanH_Xdiv2", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_TanHFunction_Xdiv2},
{"Act_Perceptron", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Signum", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Signum0", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Softmax", ACT_2_DERIV_FUNC ,0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_StepFunc", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_HystStep", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_BAM", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Logistic_notInhibit", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_MinOutPlusWeight", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Identity", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Identity},
{"Act_IdentityPlusBias", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Identity},
{"Act_LogisticTbl", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Logistic},
{"Act_RBF_Gaussian", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_RBF_MultiQuadratic", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_RBF_ThinPlateSpline", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_less_than_0", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_at_most_0", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_at_least_1", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_at_least_2", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_exactly_1", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Product", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART1_NC", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART2_Identity", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART2_NormP", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART2_NormV", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART2_NormW", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART2_NormIP", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART2_Rec", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ART2_Rst", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ARTMAP_NCa", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ARTMAP_NCb", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_ARTMAP_DRho", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_LogSym", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_TanHFunction},
{"Act_TD_Logistic", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_TD_Elliott", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Euclid", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Component", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_RM", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_TACOMA", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_CC_Thresh", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Sinus", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
{"Act_Exponential", ACT_2_DERIV_FUNC, 0, 0, (FunctionPtr) ACT_2_DERIV_Dummy},
/* Site functions */
{"Site_WeightedSum", SITE_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) SITE_WeightedSum},
{"Site_Pi", SITE_FUNC, 0, 0, (FunctionPtr) SITE_ProductA},
{"Site_Produkt", SITE_FUNC, 0, 0, (FunctionPtr) SITE_Product},
{"Site_Max", SITE_FUNC, 0, 0, (FunctionPtr) SITE_Max},
{"Site_Min", SITE_FUNC, 0, 0, (FunctionPtr) SITE_Min},
{"Site_at_least_2", SITE_FUNC, 0, 0, (FunctionPtr) SITE_at_least_2},
{"Site_at_least_1", SITE_FUNC, 0, 0, (FunctionPtr) SITE_at_least_1},
{"Site_at_most_0", SITE_FUNC, 0, 0, (FunctionPtr) SITE_at_most_0},
{"Site_Reciprocal", SITE_FUNC, 0, 0, (FunctionPtr) SITE_Reciprocal_WeightedSum},
/* Update functions */
/* This is the DEFAULT FUNCTION */
{"Topological_Order", UPDATE_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) UPDATE_topologicalPropagate},
{"ART1_Stable", UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_ART1_Propagate},
{"ART1_Synchronous", UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_ART1_syncPropagate},
{"ART2_Stable", UPDATE_FUNC, 5, 0, (FunctionPtr) UPDATE_ART2_Propagate},
{"ART2_Synchronous", UPDATE_FUNC, 5, 0, (FunctionPtr) UPDATE_ART2_syncPropagate},
{"ARTMAP_Stable", UPDATE_FUNC, 3, 0, (FunctionPtr) UPDATE_ARTMAP_Propagate},
{"ARTMAP_Synchronous",UPDATE_FUNC, 3, 0, (FunctionPtr) UPDATE_ARTMAP_syncPropagate},
{"Auto_Synchronous", UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_RM_Propagate},
{"BAM_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_BAM},
{"BPTT_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_BPTT},
{"CC_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_CC_Propagate},
{"CounterPropagation",UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_CPNPropagate},
{"Dynamic_LVQ", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_DLVQ_Propagate},
{"Hopfield_Fixed_Act", UPDATE_FUNC, 1, 0, (FunctionPtr) UPDATE_FixAct_Hop},
{"Hopfield_Synchronous",UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_syncPropagateHop},
{"JE_Order" , UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_JE_Propagate},
{"JE_Special", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_JE_Special},
{"Kohonen_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_KohonenPropagate},
{"Random_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_randomOrderPropagate},
{"Random_Permutation",UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_randomPermutPropagate},
{"Serial_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_serialPropagate},
{"Synchonous_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_syncPropagate},
{"TimeDelay_Order", UPDATE_FUNC, 0, 0, (FunctionPtr) UPDATE_TimeDelayPropagate},
{"ENZO_prop", UPDATE_FUNC, 1, 0, (FunctionPtr) ENZO_propagate},
/* Leaning Functions */
/* This is the DEFAULT FUNCTION */
{"Std_Backpropagation", LEARN_FUNC | DEFAULT_FUNC | FF_LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_backprop},
{"ART1", LEARN_FUNC, 1, 0, (FunctionPtr) LEARN_ART1},
{"ART2", LEARN_FUNC, 5, 0, (FunctionPtr) LEARN_ART2},
{"ARTMAP", LEARN_FUNC, 3, 0, (FunctionPtr) LEARN_ARTMAP},
{"BackPercolation", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_perc},
{"BackpropBatch", LEARN_FUNC | FF_LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_backpropBatch},
{"BackpropChunk", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_backpropChunk},
{"BackpropClassJogChunk", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_backpropClassJogChunk},
{"BackpropJogChunk", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_backpropJogChunk},
{"BackpropMomentum", LEARN_FUNC | FF_LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_backpropMomentum},
{"BackpropWeightDecay", LEARN_FUNC | FF_LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_backpropWeightDecay},
{"BPTT", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_BPTT},
{"BBPTT", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_BBPTT},
{"CC", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_CC},
{"Counterpropagation", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_CPN},
{"Dynamic_LVQ", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_DLVQ}, /* No Of params must be 5 !!! Otherwise batchman will not work for this function */
{"Hebbian", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_HEBB},
{"JE_BP", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_JE_Backprop},
{"JE_BP_Momentum", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_JE_BackpropMomentum},
{"JE_Quickprop", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_JE_Quickprop},
{"JE_Rprop", LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_JE_Rprop},
{"Kohonen", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_kohonen},
{"Monte-Carlo", LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_MonteCarlo},
{"PruningFeedForward", LEARN_FUNC, 5, 1, (FunctionPtr) NULL},
{"QPTT", LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_QPTT},
{"Quickprop", LEARN_FUNC | FF_LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_quickprop},
{"RadialBasisLearning", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_RBF},
{"RBF-DDA", LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_RBF_DDA},
{"RM_delta", LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_RM_delta},
{"Rprop", LEARN_FUNC | FF_LEARN_FUNC, 3, 1, (FunctionPtr) LEARN_rprop},
{"RpropMAP", LEARN_FUNC | FF_LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_RpropMAP},
{"SCG", LEARN_FUNC | FF_LEARN_FUNC, 4, 2, (FunctionPtr) LEARN_SCG},
{"Sim_Ann_SS", LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_SimulatedAnnealingSS},
{"Sim_Ann_WTA", LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_SimulatedAnnealingWTA},
{"Sim_Ann_WWTA", LEARN_FUNC, 4, 1, (FunctionPtr) LEARN_SimulatedAnnealingWWTA},
{"TACOMA", LEARN_FUNC, 5, 1, (FunctionPtr) LEARN_Tacoma},
{"TimeDelayBackprop", LEARN_FUNC, 2, 1, (FunctionPtr) LEARN_TDbackprop},
/* Testing Functions */
/* This is the DEFAULT FUNCTION */
{"Std_Backpropagation", TEST_FUNC | DEFAULT_FUNC, 2, 1, (FunctionPtr) TEST_backprop},
/* {"ART1", TEST_FUNC, 1, 0, (FunctionPtr) TEST_ART1}, */
{"BackpropBatch", TEST_FUNC, 2, 1, (FunctionPtr) TEST_backprop},
/* {"ART2", TEST_FUNC, 5, 0, (FunctionPtr) TEST_ART2}, */
{"BackpropChunk", TEST_FUNC, 2, 1, (FunctionPtr) TEST_backprop},
{"BackpropClassJogChunk",TEST_FUNC, 2, 1, (FunctionPtr) TEST_backprop},
{"BackpropMomentum", TEST_FUNC, 4, 1, (FunctionPtr) TEST_backpropMomentum},
/* {"ARTMAP", TEST_FUNC, 3, 0, (FunctionPtr) TEST_ARTMAP}, */
{"BackpropWeightDecay", TEST_FUNC, 4, 1, (FunctionPtr) TEST_backpropMomentum},
/* {"BackPercolation", TEST_FUNC, 3, 1, (FunctionPtr) TEST_perc},
{"PruningFeedForward", TEST_FUNC, 5, 1, (FunctionPtr) NULL},
{"Hebbian", TEST_FUNC, 3, 1, (FunctionPtr) TEST_HEBB}, */
{"TimeDelayBackprop", TEST_FUNC, 2, 1, (FunctionPtr) TEST_TDbackprop},
/* {"RM_delta", TEST_FUNC, 2, 1, (FunctionPtr) TEST_RM_delta},*/
{"Quickprop", TEST_FUNC, 4, 1, (FunctionPtr) TEST_backpropMomentum},
/* {"Counterpropagation", TEST_FUNC, 3, 1, (FunctionPtr) TEST_CPN},*/
{"Rprop", TEST_FUNC, 3, 1, (FunctionPtr) TEST_rprop},
{"RpropMAP", TEST_FUNC, 5, 1, (FunctionPtr) TEST_MAP},
/* {"RadialBasislearning", TEST_FUNC, 4, 1, (FunctionPtr) TEST_RBF},
{"Dynamic_LVQ", TEST_FUNC, 5, 1, (FunctionPtr) TEST_DLVQ},*/
{"BPTT", TEST_FUNC, 3, 1, (FunctionPtr) TEST_BPTT},
{"CC", TEST_FUNC, 5, 1, (FunctionPtr) TEST_CasCor},
{"TACOMA", TEST_FUNC, 5, 1, (FunctionPtr) TEST_CasCor},
{"BBPTT", TEST_FUNC, 3, 1, (FunctionPtr) TEST_BPTT},
{"QPTT", TEST_FUNC, 4, 1, (FunctionPtr) TEST_BPTT},
/*{"Kohonen", TEST_FUNC, 5, 1, (FunctionPtr) TEST_kohonen},*/
{"JE_BP", TEST_FUNC, 3, 1, (FunctionPtr) TEST_JE_Backprop},
{"JE_BP_Momentum", TEST_FUNC, 5, 1, (FunctionPtr) TEST_JE_BackpropMomentum},
{"JE_Quickprop", TEST_FUNC, 5, 1, (FunctionPtr) TEST_JE_BackpropMomentum},
{"JE_Rprop", TEST_FUNC, 4, 1, (FunctionPtr) TEST_JE_Rprop},
{"Monte-Carlo", TEST_FUNC, 4, 1, (FunctionPtr) TEST_MonteCarlo},
{"SCG", TEST_FUNC, 4, 1, (FunctionPtr) TEST_SCG},
{"Sim_Ann_SS", TEST_FUNC, 4, 1, (FunctionPtr) TEST_SimulatedAnnealingSS},
{"Sim_Ann_WTA", TEST_FUNC, 4, 1, (FunctionPtr) TEST_SimulatedAnnealingWTA},
{"Sim_Ann_WWTA", TEST_FUNC, 4, 1, (FunctionPtr) TEST_SimulatedAnnealingWWTA},
/* Initialisation Functions */
/* This is the DEFAULT FUNCTION */
{"Randomize_Weights", INIT_FUNC | DEFAULT_FUNC, 2, 0, (FunctionPtr) INIT_randomizeWeights},
{"ART1_Weights", INIT_FUNC, 2, 0, (FunctionPtr) INIT_Weights_ART1},
{"ART2_Weights", INIT_FUNC, 2, 0, (FunctionPtr) INIT_Weights_ART2},
{"ARTMAP_Weights", INIT_FUNC, 4, 0, (FunctionPtr) INIT_Weights_ARTMAP},
{"CC_Weights", INIT_FUNC, 2, 0, (FunctionPtr) INIT_CC_Weights},
{"ClippHebb", INIT_FUNC, 2, 0, (FunctionPtr) INIT_ClippHebb},
{"CPN_Weights_v3.2", INIT_FUNC, 2, 0, (FunctionPtr) INIT_Weights_CPNv32},
{"CPN_Weights_v3.3", INIT_FUNC, 2, 0, (FunctionPtr) INIT_Weights_CPNv33},
{"CPN_Rand_Pat", INIT_FUNC, 0, 0, (FunctionPtr) INIT_Weights_CPN_Rand_Pat},
{"DLVQ_Weights", INIT_FUNC, 2, 0, (FunctionPtr) INIT_CC_Weights},
{"Hebb", INIT_FUNC, 2, 0, (FunctionPtr) INIT_Hebb},
{"Hebb_Fixed_Act", INIT_FUNC, 2, 0, (FunctionPtr) INIT_HOP_FixAct},
{"JE_Weights", INIT_FUNC, 5, 0, (FunctionPtr) INIT_JE_Weights},
{"Kohonen_Rand_Pat", INIT_FUNC, 0, 0, (FunctionPtr) INIT_SOM_Rand_Pat},
{"Kohonen_Weights_v3.2",INIT_FUNC, 2, 0, (FunctionPtr) INIT_SOM_Weights_v32},
{"Kohonen_Const", INIT_FUNC, 2, 0, (FunctionPtr) INIT_SOM_Weights_const},
{"PseudoInv", INIT_FUNC, 0, 0, (FunctionPtr) INIT_PseudoInv},
{"Random_Weights_Perc", INIT_FUNC, 2, 0, (FunctionPtr) INIT_randomizeWeights_perc},
{"RBF_Weights", INIT_FUNC, 5, 0, (FunctionPtr) INIT_RBF_Weights},
{"RBF_Weights_Kohonen", INIT_FUNC, 3, 0, (FunctionPtr) INIT_RBF_Weights_kohonen},
{"RBF_Weights_Redo", INIT_FUNC, 3, 0, (FunctionPtr) INIT_RBF_Weights_redo},
{"RM_Random_Weights", INIT_FUNC, 2, 0, (FunctionPtr) INIT_RM_randomizeWeights},
{"ENZO_noinit", INIT_FUNC, 0, 0, (FunctionPtr) ENZO_noinit},
/* Pruning Functions */
/* This is the DEFAULT FUNCTION */
{"MagPruning", PRUNING_FUNC | DEFAULT_FUNC, 1, 1, (FunctionPtr) PRUNE_Mag},
{"OptimalBrainDamage", PRUNING_FUNC, 1, 1, (FunctionPtr) PRUNE_OBD},
{"OptimalBrainSurgeon", PRUNING_FUNC, 1, 1, (FunctionPtr) PRUNE_OBS},
{"Skeletonization", PRUNING_FUNC, 1, 1, (FunctionPtr) PRUNE_Skeletonization},
{"Noncontributing_Units", PRUNING_FUNC, 1, 1, (FunctionPtr) PRUNE_Noncontributing},
/* Remap Functions */
/* This is the DEFAULT FUNCTION */
{"None", REMAP_FUNC | DEFAULT_FUNC, 0, 0, (FunctionPtr) REMAP_none},
{"Binary", REMAP_FUNC, 0, 0, (FunctionPtr) REMAP_binary},
{"Inverse", REMAP_FUNC, 0, 0, (FunctionPtr) REMAP_invers},
{"Clip", REMAP_FUNC, 2, 0, (FunctionPtr) REMAP_clip},
{"LinearScale", REMAP_FUNC, 2, 0, (FunctionPtr) REMAP_linearscale},
{"Norm", REMAP_FUNC, 0, 0, (FunctionPtr) REMAP_norm},
{"Threshold", REMAP_FUNC, 4, 0, (FunctionPtr) REMAP_threshold}
};
/* Define the function table size
*/
const int NoOfKernelFuncs = (sizeof (kernel_func_table) / sizeof (struct FuncTable));
/* ********************************************************************** */
syntax highlighted by Code2HTML, v. 0.9.1