//******************************************************************************* // CSC 143 Computer Programming II Spring 1999 Instructor: Keith Hughes // // Homework 3 // File : \\Venus\katy\CIS143\Homework3\AdalineNetwork\layer.h // // Purpose : Declaration for NeuronLayer and LinkLayer classes. // // Author : Hsin-yi F. Berg // Date : 5/9/1999 Sun. // Last Update: 5/28/1999 Fri. // Update Note: Modification of the documentation // NeuralNet has been moved to NeuralNet.h //******************************************************************************* #ifndef LAYER_H #define LAYER_H #include "base.h" #include <iostream.h> #include <fstream.h> typedef int ID; // WEIGHT is the weight of the link, already declared in base.h extern const double WEIGHT; class Neuron; class Link; class NeuronLayer { public: /* NeuronLayer::NeuronLayer() Default constructor for a NeuronLayer. NeuronLayer is created empty. */ NeuronLayer(); /* NeuronLayer::~NeuronLayer() Default destructor for a NeuronLayer. */ ~NeuronLayer(); /* void NeuronLayer::SetHowManyNeurons(int n) Set how many Neurons are there in the layer (default is 0). This function can only be called once. */ void SetHowManyNeurons(int n); /* void NeuronLayer::SetNeuronValue(int whichNeuron, double Value) Set the value of a specified Neuron */ void SetNeuronValue(int whichNeuron, double Value); /* double NeuronLayer::GetNeuronValue(int whichNeuron) const Return the value of a specified Neuron */ double GetNeuronValue(int whichNeuron) const; /* void NeuronLayer::SetError(int whichNeuron, double newError) Set the error of a specific Neuron */ void NeuronLayer::SetError(int whichNeuron, double newError); /* double NeuronLayer::GetError(int whichNeuron) const Get the error of a specific Neuron. */ double NeuronLayer::GetError(int whichNeuron) const; /* int NeuronLayer::GetNumNeuron(void) const Return how many Neurons are already in the Neuron */ int GetNumNeuron(void) const; /* Neuron *&NeuronLayer::GetNeurons(void) Return the reference of Neurons */ Neuron *&GetNeurons(void); /* void NeuronLayer::Print(ostream& out) const print out the internal state of all the Neurons in the NeuronLayer to client supplied ostream */ void Print(ostream& out) const; /* void Neuron::Fire(void) fire the entire NeuronLayer */ void Fire(void); /* void NeuronLayer::ReadFromFile(istream &in) Read data into this NeuronLayer instance from file specified by "in" */ void NeuronLayer::ReadFromFile(istream &in); /* void NeuronLayer::WriteToFile(ostream &out) Write data of this NeuronLayer instance to file specified by "out" */ void NeuronLayer::WriteToFile(ostream &out); private: // id_count keeps track of how many NeuronLayers that have been created static int id_count; // each NeuronLayer automatically gets an unique id when it's created ID id; // number of Neurons in the layer int numNeuron; // neurons stores the collection of Neurons Neuron *neurons; }; class LinkLayer { public: /* LinkLayer::LinkLayer() Default constructor for a LinkLayer. LinkLayer is created empty. */ LinkLayer(); /* LinkLayer::~LinkLayer() Destructor for a LinkLayer. */ ~LinkLayer(); /* void LinkLayer::SetHowManyLinks(int n) set how many links there are in the layer. */ void SetHowManyLinks(int n); /* void LinkLayer::SetLinkWeight(double Weight) Set how many links there are in the layer. Set the weight of all links in the layer (all get the same value) */ void SetLinkWeight(double Weight); /* int LinkLayer::GetNumLink(void) const Get how many links there are in the layer. */ int GetNumLink(void) const; /* Link *&LinkLayer::GetLinks(void) Get how many links there are in the layer. */ Link *&GetLinks(void); /* void LinkLayer::Print(ostream &out) const Print out the internal state of all the Links in the LinkLayer to the client supplied ostream. */ void Print(ostream &out) const; /* void LinkLayer::ReadFromFile(istream &in) Read data into this LinkLayer instance from file specified by "in" */ void LinkLayer::ReadFromFile(istream &in); /* void LinkLayer::WriteToFile(ostream &out) Write data of this linkLayer instance to file specified by "out" */ void LinkLayer::WriteToFile(ostream &out); private: // id_count keeps track of how many LinkLayers that have been created static int id_count; // each LinkLayer automatically gets an unique id when it's created ID id; // number of Links in the layer int numLink; // links stores the collection of Links Link *links; }; #endif
Back Top