1 /*****************************************************************************
2   FILE           : $Source: /projects/higgs1/SNNS/CVS/SNNS/kernel/sources/kr_const.h,v $
3   SHORTNAME      : const.h
4   SNNS VERSION   : 4.2
5 
6   PURPOSE        : SNNS-Kernel Constants
7   NOTES          :
8 
9   AUTHOR         : Niels Mache
10   DATE           : 01.03.90
11 
12   CHANGED BY     : Sven Doering
13   RCS VERSION    : $Revision: 2.7 $
14   LAST CHANGE    : $Date: 1998/02/25 15:26:39 $
15 
16     Copyright (c) 1990-1995  SNNS Group, IPVR, Univ. Stuttgart, FRG
17     Copyright (c) 1996-1998  SNNS Group, WSI, Univ. Tuebingen, FRG
18 
19 ******************************************************************************/
20 #ifndef KR_CONSTANTS
21 
22 #define KR_CONSTANTS
23 
24 /*  flag modifier:
25 
26 		   |------------------------------ Direct Link Flag
27 		   |  |--------------------------- Site Flag
28 		   |  |  |------------------------ |
29 		   |  |  |  |--------------------- | Topologic Type Flags
30 		   |  |  |  |  |------------------ |
31 		   |  |  |  |  |  |--------------- |
32 		   |  |  |  |  |  |  |------------ Refresh Flag
33 		   |  |  |  |  |  |  |	|--------- Enable Flag
34 		   |  |  |  |  |  |  |	|  |------ In-Use Flag
35 		   |  |  |  |  |  |  |	|  |  |--- Allocation Flag
36 
37 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
38 -----------------------------------------------
39                                            0  0  : Unit is free and may be allocated
40                                            0  1  : Unit is now allocated, but not ready to use
41 					   1  0  : Unit is allocated and ready to use
42 					   1  1  : Unit is allocated and ready to use
43 
44                                         0 -----  : Unit is freezed
45                                         1 -----  : Unit is active (will be updated during next cycle)
46 
47                                      0 --------  : Unit is not updated now
48                                      1 --------  : Unit is currently updated
49 
50 			 0  0  0  0 -----------  : Unknown topologic type
51 			 0  0  0  1 -----------  : Input type
52 			 0  0  1  0 -----------  : Output type
53 			 0  0  1  1 -----------  : Dual type (input and output)
54 			 0  1  0  0 -----------  : Hidden type
55 			 1  0  0  0 -----------  : Special type (no weight adjustment of input links)
56 
57 		   0  0 -----------------------  : Unit has no inputs (no links and no Sites)
58 		   0  1 -----------------------  : Unit has at least one site (and no direct wired inputs)
59 		   1  0 -----------------------  : Unit has direct input links (and no sites)
60 		   1  1 -----------------------  : -- NOT USED --
61 
62 */
63 
64 #define  UFLAG_FREE	 0x0000
65 #define  UFLAG_NOT_FREE  0x0001
66 #define  UFLAG_IN_USE	 0x0002
67 
68 #define  UFLAG_INITIALIZED   0x0007
69 #define  UFLAG_ENABLED	 0x0004
70 
71 #define  UFLAG_REFRESH	 0x0008
72 
73 #define  UFLAG_TTYP_PAT  0x00f0
74 #define  UFLAG_TTYP_UNKN 0x0000
75 #define  UFLAG_TTYP_IN	 0x0010
76 #define  UFLAG_TTYP_OUT  0x0020
77 #define  UFLAG_TTYP_DUAL 0x0030
78 #define  UFLAG_TTYP_HIDD 0x0040
79 #define  UFLAG_TTYP_SPEC 0x0080
80 #define  UFLAG_TTYP_SPEC_I 0x0090
81 #define  UFLAG_TTYP_SPEC_O 0x00a0
82 #define  UFLAG_TTYP_SPEC_H 0x00c0
83 #define  UFLAG_TTYP_SPEC_D 0x00b0
84 #define  UFLAG_TTYP_SPEC_X 0x00FE   /* only used to identfy toggle */
85 #define  UFLAG_TTYP_N_SPEC_X 0x00FF /* only used to identfy toggle */
86 
87 #define  UFLAG_INPUT_PAT 0x0300
88 #define  UFLAG_NO_INP	 0x0000
89 #define  UFLAG_SITES	 0x0100
90 #define  UFLAG_DLINKS	 0x0200
91 
92 
93 /*  The unit output identity function is the NULL pointer
94 */
95 #define     OUT_IDENTITY    NULL
96 
97 
98 
99 /* ***********************************************************
100 
101           Constants for selectors
102 
103 *********************************************************** */
104 /*  modes for unit counting
105 */
106 #define  UNIT_DELETE  1
107 #define  UNIT_ADD     2
108 
109 /*  topologic sorting modes
110 */
111 
112 #define  NOT_SORTED	  0
113 #define  TOPOLOGICAL	  1
114 #define  TOPOLOGICAL_FF   2
115 #define  TOPOLOGIC_TYPE   3
116 #define  PERMUTATION	  4
117 #define  ART1_TOPO_TYPE   5
118 #define  ART2_TOPO_TYPE   6
119 #define  ARTMAP_TOPO_TYPE 7
120 #define  TOPOLOGICAL_CC  8
121 #define  TOPOLOGICAL_RCC 9
122 #define  TOPOLOGICAL_BCC 10
123 #define  TOPOLOGIC_LOGICAL 11
124 #define  TOPOLOGICAL_JE  12
125 
126 /*  unit component selectors
127 */
128 #define  SEL_UNIT_ACT  1
129 #define  SEL_UNIT_OUT  2
130 #define  SEL_UNIT_IACT  3
131 #define  SEL_UNIT_BIAS  4
132 #define  SEL_UNIT_ALL   5
133 #define  SEL_UNIT_VALA 6
134 
135 /*  link searching selectors
136 */
137 #define  FIRST	  1
138 #define  NEXT	  2
139 #define  CURRENT  3
140 #define  NAME	  4
141 
142 /*  function searching in function table
143 */
144 #define  GET_NO_OF_FUNCS  1
145 #define  GET_FUNC_INFO    2
146 #define  SEARCH_FUNC      3
147 #define  GET_FUNC_NAME    4
148 #define  GET_DEFAULT_FUNC 5
149 
150 /*  link delete selectors
151 */
152 #define  INPUTS   0
153 #define  OUTPUTS  1
154 
155 /*  pattern function selectors
156 */
157 #define  PATTERN_SET  1
158 #define  PATTERN_GET  2
159 #define  PATTERN_DELETE  3
160 #define  PATTERN_MODIFY  4
161 #define  PATTERN_SHOW	 5
162 #define  PATTERN_NEW  6
163 #define  PATTERN_DELETE_ALL  7
164 #define  PATTERN_SHUFFLE_ON  8
165 #define  PATTERN_SHUFFLE_OFF 9
166 #define  PATTERN_VECTOR_NEW  10
167 #define  PATTERN_ARRAY_ALLOC 11
168 #define  PATTERN_SET_NUMBER  12
169 #define  PATTERN_GET_NUMBER  13
170 #define  PATTERN_SUB_SHUFFLE_ON 14
171 #define  PATTERN_SUB_SHUFFLE_OFF 15
172 #define  GET_SHUFFLE_FLAG 16
173 #define  GET_SUB_SHUFFLE_FLAG 17
174 #define  SUBPATTERN_GET_NUMBER 18
175 
176 /*#################################################
177 
178 GROUP: Parallel kernel constants
179 
180 #################################################*/
181 
182 
183 #endif
184 
185 
186 
187 
188 
189 
190