
     This document is for C programmers who are not familiar with the
C++ constructs.  The C code uses a 'class' design to implement the
Neural network.

     A class is an object which has data and functions which operate on the
data.  The data is generally private so users of a class have no direct access
to the data except through the class functions.  In this case there is a
struct Neural_net which contains all the information needed to train and test
a neural network.  However, you should never directly access this data
structure.  Only use the functions provided.

A class must first be constructed (initialized) which is done by calling the
class's constructor.  There are several constructors for the Neural network.

Neural_net_constr (...)              --> All size and learning parameters must
                                         be specified
Neural_net_read_constr (...)         --> Reads size and weights from a file and
                                         learning parameters must be specified.
Neural_net_default_constr (...)      --> Only size needs to be specified.
                                         Learning parameters are set to default
                                         values.
Neural_net_default_read_constr (...) --> Read size and weights from file
                                         and learning parameters are set to
                                         default values.

Each constructor will return a pointer to a Neural_net if successful,
otherwise it returns NULL.  Now that you have a pointer to a valid Neural_net,
you may call any of the functions which operate on a Neural_net and pass as
its first parameter the pointer to the Neural_net.

When you are finished with the Neural_net, you must destroy (free) it.
To do this you just call the Neural_net destructor

Neural_net_destr (Neural_net *);

This function will free all memory associated with the Neural_net and the
pointer itself.

See the header file Neural_net.h for an explanation of the functions and
their prototypes.  See the document Neural_network.doc for a full explanation
of each function and look at the programs xor_c_dbd.c and xor_c_bp.c to see
how a Neural_net is constructed, used, and destructed in a typical example.



