• Main Page
  • Classes
  • Files
  • File List

BiasAdaptiveHomeostMechanism.h

00001 #ifndef BiasAdaptiveHomeostMECHANISM_H_
00002 #define BiasAdaptiveHomeostMECHANISM_H_
00003 
00004 #include "EvSimObject.h"
00005 #include "EvSimObjectTypeUtils.h"
00006 
00007 class BiasAdaptiveHomeostMechanism : public EvSimObject {
00008 
00009         EV_SIM_OBJECT( BiasAdaptiveHomeostMechanism )
00010 
00011 public:
00012         BiasAdaptiveHomeostMechanism(float eta = 1e-5,
00013                                                                  float eta_rt = 1e-5,
00014                                                                  float Vthresh = -5,
00015                                                                  float mu = 0.9,
00016                                                                  float biasMax = 15,
00017                                                                  float biasMin = -15,
00018                                                              bool isActive = true)
00019         {
00020                 this->eta = eta;
00021                 this->eta_rt = eta_rt;
00022                 this->Vthresh = Vthresh;
00023                 this->mu = mu;
00024                 this->biasMax = biasMax;
00025                 this->biasMin = biasMin;
00026                 this->isActive = isActive;
00027         }
00028 
00029         float eta;
00030 
00031         float eta_rt;
00032 
00033         float mu;
00034 
00035         float biasMax;
00036 
00037         float biasMin;
00038 
00039         float Vthresh;
00040 
00041         bool isActive;
00042 
00043         void setActive(bool active, Time time);
00044 
00045         void updateRtarget(Time time);
00046 
00047         virtual ~BiasAdaptiveHomeostMechanism();
00048 
00049         virtual void postMountAsMountedObj(EvSimNetwork &net, EvSimObject::ID self, EvSimObject::ID mountpoint);
00050 
00051         virtual void updateState(SimContext &sim_context, Time time, update_id_t upd_id);
00052 
00053         virtual void reset(SimContext &sim_ctxt);
00054 
00055         virtual void eventHit(SimContext & sim_ctxt, Time time, port_id_t port);
00056 
00057 
00058 protected:
00059         float *bias_ptr;
00060         double *vm_ptr;
00061         float rTarget;
00062         double prev_vm;
00063         double last_bias_upd_time;
00064         double last_rtgt_upd_time;
00065 };
00066 
00067 #endif /* BiasAdaptiveHomeostMECHANISM_H_ */

Generated on Wed Sep 18 2013 11:25:39 for NEVESIM by  doxygen 1.7.1