• Main Page
  • Classes
  • Files
  • File List

BiasAsymmHomeostMechanism.h

00001 #ifndef BiasAsymmHomeostMECHANISM_H_
00002 #define BiasAsymmHomeostMECHANISM_H_
00003 
00004 #include "EvSimObject.h"
00005 #include "EvSimObjectTypeUtils.h"
00006 
00007 class BiasAsymmHomeostMechanism : public EvSimObject {
00008 
00009         EV_SIM_OBJECT( BiasAsymmHomeostMechanism )
00010 
00011 public:
00012         BiasAsymmHomeostMechanism(float eta_plus = 1e-5,
00013                                                           float eta_minus = 1e-5,
00014                                                           float rTarget = 20,
00015                                                           float tau = 5.0,
00016                                                           bool isActive = true)
00017         {
00018                 this->eta_plus = eta_plus;
00019                 this->eta_minus = eta_minus;
00020                 this->tau = tau;
00021                 this->rTarget = rTarget;
00022                 this->isActive = isActive;
00023         }
00024 
00025         float eta_plus;
00026 
00027         float eta_minus;
00028 
00029         float tau;
00030 
00031         float rTarget;
00032 
00033         bool isActive;
00034 
00035         virtual ~BiasAsymmHomeostMechanism();
00036 
00037         virtual void postMountAsMountedObj(EvSimNetwork &net, EvSimObject::ID self, EvSimObject::ID mountpoint);
00038 
00039         virtual void reset(SimContext &sim_ctxt);
00040 
00041         virtual void eventHit(SimContext & sim_ctxt, Time time, port_id_t port);
00042 
00043 protected:
00044 
00045         inline double C( double const& delta ) {
00046                 return exp( -delta/tau );
00047         };
00048 
00049         float r_estim;
00050 
00051         float *bias_ptr;
00052 
00053         double last_update_time;
00054 };
00055 
00056 #endif /* BiasAsymmHomeostMECHANISM_H_ */

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