1 /*****************************************************************************
2   FILE           : $Source: /projects/higgs1/SNNS/CVS/SNNS/kernel/sources/enzo_mem_typ.h,v $
3   SHORTNAME      :
4   SNNS VERSION   : 4.2
5 
6   PURPOSE        : declaration of all Enzo related variables
7   NOTES          :
8 
9   AUTHOR         : Thomas Ragg
10   DATE           : 12.11.95
11 
12   CHANGED BY     :
13   RCS VERSION    : $Revision: 1.3 $
14   LAST CHANGE    : $Date: 1998/02/25 15:26:10 $
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 _ENZO_MEM_TYP_H
21 #define _ENZO_MEM_TYP_H
22 
23 typedef struct
24 {
25     /* ---------------------------------------------------------------------- */
26     /*                                                                        */
27     /*   These are all the variables you need to describe the internal        */
28     /*   state of an SNNS-net in memory.                                      */
29     /*                                                                        */
30     /*   Note that this is HIGHLY dependend on the version of SNNS!           */
31     /*   Manipulate the net only via the krui-functions!                      */
32     /*   Do NOT use this structure for anything but                           */
33     /*   krm_get_net() and krm_put_net() ...                                  */
34     /*                                                                        */
35     /* ---------------------------------------------------------------------- */
36 
37     int       NoOfLinks;
38     int       NoOfAllocLinks;
39     LinkArray link_array;
40     LinkArray link_block_list;
41     LinkArray free_link_ptr;
42 
43     int       NoOfSites;
44     int       NoOfNetSites;
45     int       NoOfAllocSites;
46     SiteArray site_array;
47     SiteArray site_block_list;
48     SiteArray free_site_ptr;
49 
50     int       NoOfAllocUnits;
51     int       FreeUnitIndex;
52     int       NoOfUnits;
53     int       NoOfInputUnits;
54     int       NoOfOutputUnits;
55     int       NoOfHiddenUnits;
56     int       MaxUnitNo;
57     int       MinUnitNo;
58     UnitArray unit_array;
59 
60     TopoPtrArray topo_ptr_array;
61 
62     int         NoOfNTableEntries;
63     int         NoOfAllocNTableEntries;
64     NTableArray NTable_array;
65     NTableArray NTable_block_list;
66     NTableArray free_NTable_entry;
67     NTableArray curr_NTable_entry;
68     NTableArray curr_NTable_block;
69 
70     int         NoOfSTableEntries;
71     int         NoOfAllocSTableEntries;
72     STableArray STable_array;
73     STableArray STable_block_list;
74     STableArray free_STable_entry;
75     STableArray curr_STable_entry;
76     STableArray curr_STable_block;
77 
78 
79     struct FtypeUnitStruct  *Ftype_list_root;
80     struct FtypeUnitStruct  *curr_Ftype_entry;
81     int                      NoOfFTableEntries;
82 
83     char update_func[FUNCTION_NAME_MAX_LEN],
84          learn_func [FUNCTION_NAME_MAX_LEN],
85          init_func  [FUNCTION_NAME_MAX_LEN];
86 
87     FlintType u_act, u_bias;
88     int u_ttflags, u_subnet_no, u_layer_no;
89     char u_act_func[FUNCTION_NAME_MAX_LEN],
90          u_out_func[FUNCTION_NAME_MAX_LEN];
91 
92     bool NetModified, NetInitialize, LearnFuncHasChanged;
93     struct Unit *unitPtr;
94     struct Site *sitePtr, *prevSitePtr;
95     struct Link *linkPtr, *prevLinkPtr;
96     int unitNo;
97     int specialNetworkType;
98 
99     int TopoSortID;
100     int no_of_topo_units;
101     /* global_topo_ptr seems to be unproblematic; its only used inside
102        the topol. sorting functions */
103 
104 } memNet;
105 
106 
107 typedef struct
108 {
109     int      number;
110 } memPat;
111 
112 #endif
113