00001 #ifndef _LINK_H 00002 #define _LINK_H 00003 00004 #include "defines.h" 00005 00006 namespace annie 00007 { 00008 00009 //forward declaration 00010 class Neuron; 00011 00016 class Link 00017 { 00018 private: 00020 Neuron *_from; 00021 00023 Neuron *_to; 00024 00026 real _weight; 00027 00034 real _deltaWeight; 00035 00036 real _lastDeltaWeight; 00037 public: 00043 Link(Neuron *to, Neuron *from); 00044 00050 Link(Neuron *to, Neuron *from, real weight); 00051 00056 virtual ~Link(); 00057 00059 Neuron *getSource() const; 00060 00062 Neuron *getDestination() const; 00063 00065 real getWeight() const; 00066 00068 void setWeight(real weight); 00069 00074 void setDeltaWeight(real delta); 00075 00082 void updateWeight(); 00083 00089 bool isEqualTo(Link *l); 00090 00095 real getLastDeltaWeight(); 00096 }; 00097 00098 }; //namespace annie 00099 #endif // define _LINK_H 00100