00001 #ifndef _RECURRENTNEURON_H 00002 #define _RECURRENTNEURON_H 00003 00004 #include "SimpleNeuron.h" 00005 #include "defines.h" 00006 #include <vector> 00007 00008 namespace annie 00009 { 00010 00026 class RecurrentNeuron : public SimpleNeuron 00027 { 00028 protected: 00030 int _time; 00031 00033 real _initialOutput; 00034 00036 real _lastOutput; 00037 00038 virtual void _recacheOutput(); 00039 public: 00047 RecurrentNeuron(int label, bool hasBias=false); 00048 00054 virtual void step(); 00055 00062 virtual real getNextOutput(); 00063 00070 virtual real getOutput(); 00071 00073 virtual real getLastOutput(); 00074 00076 virtual const char* getClassName(); 00077 00083 virtual int getTime(); 00084 00089 virtual void reset(real initialActivation); 00090 00092 virtual void calculateNewWeights(real learningRate); 00093 00095 virtual void update(); 00096 00098 virtual void setDesiredOutput(real desired); 00099 }; 00100 00101 }; //namespace annie 00102 #endif // define _RECURRENTNEURON_H 00103
1.2.14 written by Dimitri van Heesch,
© 1997-2002