/***************************************************************************** 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 #include #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)); /* ********************************************************************** */