1 /*****************************************************************************
2   FILE           : $Source: /projects/higgs1/SNNS/CVS/SNNS/kernel/sources/cc_glob.h,v $
3   SHORTNAME      : cc_glob.h
4   SNNS VERSION   : 4.2
5 
6   PURPOSE        : Header file of correspondent '.c' file
7   NOTES          : This file was put together from the earlier files cc_rcc
8                    and cc_rcc_topo
9 
10   AUTHOR         : Michael Schmalzl
11   DATE           : 5.2.92
12 
13   CHANGED BY     : Michael Schmalzl
14   RCS VERSION    : $Revision: 2.3 $
15   LAST CHANGE    : $Date: 1998/02/25 15:25:52 $
16 
17     Copyright (c) 1990-1995  SNNS Group, IPVR, Univ. Stuttgart, FRG
18     Copyright (c) 1996-1998  SNNS Group, WSI, Univ. Tuebingen, FRG
19 
20 ******************************************************************************/
21 #ifndef _CC_GLOB_DEFINED_
22 #define  _CC_GLOB_DEFINED_
23 
24 /* begin global definition section */
25 extern void      cc_printHeadline(char* s,int Length);
26 extern float     cc_getErr (int StartPattern, int EndPattern);
27 extern void      cc_LayerCorrectnessTest(float* ParameterInArray,
28 					 int StartPattern,
29 					 int EndPattern);
30 extern krui_err  cc_freeStorage(int StartPattern, int EndPattern, int flag);
31 extern krui_err  cc_deleteAllSpecialAndAllHiddenUnits(void);
32 extern krui_err  cc_allocateStorage(int StartPattern, int EndPattern,
33 				    int NoOfSpecialUnits);
34 extern void      cc_initActivationArrays(void);
35 extern FlintType cc_generateRandomNo(float maxValue);
36 extern void      cc_getActivationsForActualPattern(int SubPatterNo,int First,
37 					      int* pat,int* sub);
38 extern void      cc_initOutputUnits(void);
39 extern krui_err  cc_getPatternParameter(int StartPattern, int Endpattern,
40 					int* start, int* end, int* n);
41 extern void      cc_initInputUnitsWithPattern(int PatternNo);
42 extern krui_err  cc_setPointers(void);
43 extern krui_err  cc_initSpecialUnitLinks(void);
44 extern krui_err  cc_deleteAllSpecialUnits(void);
45 
46 extern krui_err  cc_topoSort(int topoSortId);
47 extern void      cc_setCycletestFlag(struct Unit* UnitPtr);
48 
49 extern struct CC_DATA cc_data;
50 extern char *cc_onOffArray[];
51 extern char *cc_actFuncArray[];
52 extern char *cc_actFuncArray2[];
53 extern char *cc_learningFuncArray[];
54 extern char *cc_ModificationArray[];
55 extern char *cc_pruningFuncArray[];
56 extern int cc_end;
57 extern int cc_storageFree;
58 extern int cc_allButtonIsPressed;
59 extern int cc_cascadeFlag;
60 /* pcc */
61 extern int LastInsertedHiddenUnit;
62 extern int cc_backfittingOnOff;
63 extern int cc_MaxSpecialUnitNo;
64 extern int cc_modification;
65 extern struct Unit  **FirstInputUnitPtr,**FirstHiddenUnitPtr,
66                     **FirstOutputUnitPtr,**FirstSpecialUnitPtr,
67                     *bestSpecialUnitPtr;
68 
69 extern float **OutputUnitError;
70 extern float **SpecialUnitAct;
71 extern float **CorBetweenSpecialActAndOutError;
72 extern float *MeanOutputUnitError;
73 extern float *SpecialUnitSumAct;
74 
75 extern float SumSqError;
76 extern int cc_printOnOff;
77 extern int *reset;
78 extern int cc_cascade;
79 extern int FirstUnitOnLastLayer;
80 
81 extern float cc_Parameter[5];
82 extern int NoOfLayers;         /* Number of hidden layers */
83 extern struct CC_LAYER* ListOfLayers;  /* holds data for each layer */
84 extern int SizeOfLayerlist;
85 extern float** ActOfUnit;
86 extern float cc_fse;
87 extern int cc_learningFunction;
88 
89 
90 /* now the variables needed by display */
91 
92 extern int cc_display_mode;
93 extern int cc_LayerDistance;
94 extern int cc_outputXMax;
95 
96 extern int cc_fastmode;
97 extern int cc_actualNetSaved;
98 
99 extern krui_err (*cc_propagateSpecialUnitsBackward)
100                              (int start,int end,int n,int counter,
101                               float param1,float param2,float param3);
102 extern float (*cc_propagateOutputUnitsBackward)
103                              (int PatternNo, int sub_pat_no,
104                               float param1,float param2,float param3);
105 extern float (*cc_SpecialUnitUpdate)( float oldValue, float* previousSlope,
106 				      float* currentSlope, float* LastChange,
107 				      float param1,float param2,float param3);
108 extern float (*cc_OutputUnitUpdate)(float oldValue, float* previousSlope,
109 				    float* currentSlope, float* LastChange,
110 				    float param1,float param2,float param3);
111 extern float QuickPropOfflinePart(float oldValue, float* previousSlope,
112 				  float* currentSlope, float* LastChange,
113 				  float epsilon,float mu,float decay);
114 extern float BackPropOfflinePart(float oldValue, float* previousSlope,
115 				 float* currentSlope,float* LastChange,
116 				 float dummy1,float dummy2,float dummy3);
117 extern float OfflineBackPropOfflinePart(float oldValue, float* previousSlope,
118 					float* currentSlope,float* LastChange,
119 					float eta,float mu,float dummy);
120 extern float RPropOfflinePart(float oldValue, float* previousSlope,
121 			      float* currentSlope, float* LastChange,
122 			      float epsilonMinus,float epsilonPlus,float dummy);
123 extern float OnlineBackPropOfflinePart(float oldValue, float* previousSlope,
124 				       float* currentSlope, float* LastChange,
125 				       float eta,float mu,float dummy);
126 
127 extern int NetLearnAlgorithm;
128 
129 /* end global definition section */
130 
131 #endif /* _CC_GLOB_DEFINED_ */
132