<Lems xmlns="http://www.neuroml.org/lems/0.7.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.neuroml.org/lems/0.7.2">
<Include file="NeuroMLCoreDimensions.xml"/>
<Include file="Synapses.xml"/>
<ComponentType name="spikeGeneratorRefPoisson"
extends="spikeGeneratorPoisson"
description="Generator of spikes whose ISI distribution is the maximum entropy distribution over [_minimumISI, +infinity) with mean 1/_averageRate">
<Parameter name="minimumISI" dimension="time"/>
<Dynamics>
<StateVariable name="tsince" dimension="time" exposure="tsince"/>
<StateVariable name="isi" dimension="time"/>
<TimeDerivative variable="tsince" value="1"/>
<OnStart>
<StateAssignment variable="tsince" value="0"/>
<StateAssignment variable="isi" value="minimumISI - (averageIsi-minimumISI) * log(1 - random(1))"/>
</OnStart>
<OnCondition test="tsince .gt. isi">
<StateAssignment variable="tsince" value="0"/>
<StateAssignment variable="isi" value="minimumISI - (averageIsi-minimumISI) * log(1 - random(1))"/>
<EventOut port="spike"/>
</OnCondition>
</Dynamics>
</ComponentType>
<ComponentType name="spikeGeneratorDelay"
extends="spikeGenerator"
description="Simple generator of spikes at a regular interval
set by _period, emitting the first spike at time
_delay + _period.">
<Parameter name="delay"
dimension="time"
description="Delay from the start of the simulation."/>
<Dynamics>
<StateVariable name="tsince" dimension="time" exposure="tsince"/>
<TimeDerivative variable="tsince" value="1"/>
<OnStart>
<StateAssignment variable="tsince" value="- delay"/>
</OnStart>
<OnCondition test="tsince .gt. period">
<StateAssignment variable="tsince" value="0"/>
<EventOut port="spike"/>
</OnCondition>
</Dynamics>
</ComponentType>
</Lems>