Ejemplo n.º 1
0
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 ); 
}
Ejemplo n.º 3
0
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.
}