void SynChan::vProcess( const Eref& e, ProcPtr info ) { // http://www.genesis-sim.org/GENESIS/Hyperdoc/Manual-26.html#synchan // For a spike event, activation = weight / dt // is sent from SynHandler-s for one dt // For continuous activation in a graded synapse, // send activation for continous dt-s. setGk( e, calcGk() ); updateIk(); sendProcessMsgs( e, info ); // Sends out messages for channel. }
void MarkovChannel::vProcess( const Eref& e, const ProcPtr p ) { g_ = 0.0; //Cannot use the Gbar_ variable of the ChanBase class. The conductance //Gk_ calculated here is the "expected conductance" of the channel due to its //stochastic nature. for( unsigned int i = 0; i < numOpenStates_; ++i ) g_ += Gbars_[i] * state_[i]; setGk( e, g_ ); updateIk(); sendProcessMsgs( e, p ); }
void SynChan::process( const Eref& e, ProcPtr info ) { // while ( !pendingEvents_.empty() && // pendingEvents_.top().getDelay() <= info->currTime ) { activation_ += popBuffer(info->currTime) / info->dt; // pendingEvents_.pop(); // } X_ = modulation_ * activation_ * xconst1_ + X_ * xconst2_; Y_ = X_ * yconst1_ + Y_ * yconst2_; double Gk = Y_ * norm_; setGk( Gk ); updateIk(); activation_ = 0.0; modulation_ = 1.0; SynChanBase::process( e, info ); // Sends out messages for channel. }