int main(int argc, char **argv) { printf("r\n"); timeDelay(5); printf("a\n"); timeDelay(1); return 0; }
void escapeNoiseNeuron::excite ( baseType c ) { // baseType phase = 1.0 + pcoBase::exactTime - this->x[0]; if ( ( pcoBase::nextFiring() - this->time >= timeDelay() ) && ( this->time - lastFiring >t_ref() -timeDelay() ) ) // nicht mehr refraktär und noch nicht feuernd { pot = pot + c; baseType newKey = this->time + timeDelay() +gslNoise::getExponential ( exp ( - escapeNoise_a() * pot+ escapeNoise_b() ) ); // pcoBase::decreaseKey(); eventHandler::updateKey ( _fire_, newKey ); } }
void pulseCoupledExcitatoryNeuron::setInitialCondition ( vector<double> &r ) { baseType value = r[0]; if ( value < 0 ) // refrakt�r { refractory = true; registerCallBack(_fire_, numeric_limits<baseType>::max()); lastFiring = dynNode::time; } else if (value >= 1.0) // feurend { refractory = false; registerCallBack(_fire_, dynNode::time + timeDelay()); } else if (value == 0.0) // membranpotential null { refractory = false; lastFiring = - numeric_limits<baseType>::max(); registerCallBack(_fire_, numeric_limits<baseType>::max()); } else // membranpotential zwischen 0 und 1 { refractory = false; lastFiring = dynNode::time + 1 / leakage() * log ( value ); registerCallBack(_fire_, numeric_limits<baseType>::max()); } }
void pulseCoupledExcitatoryNeuron::excite ( baseType c ) // gibt zurück, ob das Neuron sofort feuert. { // numberOfExcitations++; if ( nextFiring() != numeric_limits<baseType>::max() ) return; if (!refractory) { baseType phase = dynNode::time - lastFiring; baseType pot = exp ( - leakage() * phase ); if ( pot + c > 1 ) eventHandler::decreaseKey(_fire_, dynNode::time + timeDelay()); else lastFiring = dynNode::time + 1.0/ leakage() * log (pot + c ); } if ( refractory && dynNode::time - lastFiring > t_ref()) { refractory = false; lastFiring = dynNode::time + 1.0 / leakage() * log ( c ); } }
void pcoDelay::sendExcitations () { registerOneTimeCallBack ( _distributeExcitations_, dynNode::time + timeDelay() ); // eventHandler::increaseKey ( _fire_, time + numeric_limits<baseType>::epsilon() * 1000.0 ); }