The top of the network data structure is a network header. All network related functions
use a pointer to this data structure on input and all variables can be accessed from
this structure. The following information can be found.
A network description text, the creation and modification date are there for the user's convenience. The control information is important, it specifies the type of network, i.e. whether it is one of the standard network types found in the library or a user defined type of network, see also NET-flags. Most routines test this field to check if a certain routine may be called with this type of network.
Furthermore, some general data about the network, like the number of inputs or outputs,
the number of units, layers, weights and links in the network structure. These
parameters are only valid if they make sense for the type of network and may be
undefined if not appropriate. A general purpose data field allows the user to attach
his/her own data to the network structure. This may either be a long integer, a double
floating point or a pointer. The latter allows the user to attach any data to the
network data structure.
A pointer to the first and last unit of the double linked list of units gives access to the whole network structure, which will be explained in the next subsection. A pointer to a linked list of all weights is provided for quick access to the weights. See figure 3.1 for a schematic diagram of this set-up and the reference part for the actual implementation in C.
Figure 3.1: The top network data structure.