#include <IzhiNeuron.h>
Public Member Functions | |
IzhiNeuronBase (double a=0.02, double b=0.2, double c=-65.0, double d=8.0, double Vpeak=30.0, double Vinit=-0.06, double Inoise=0.0, double Iinject=0.0, double factI=1.0) | |
IzhiNeuronBase (string type, double Vinit=-0.06, double Inoise=0.0, double Iinject=0.0, double factI=1.0) | |
virtual | ~IzhiNeuronBase () |
virtual int | adjust (double dt) |
This tells the object that it should adjust to a new simulation time step width. | |
virtual int | advance (AdvanceInfo const &) |
Advance the neuron. | |
virtual int | reset (double dt) |
Reset the Izhi-Neuron. | |
bool | refractoryQ () |
Returns true iff the neuron is in its absolute refactory period. | |
virtual void | clearSynapticInput (void) |
virtual double | getManagedDelay () const |
virtual int | nSpikeInputPorts () const |
virtual int | nSpikeOutputPorts () const |
virtual int | nAnalogInputPorts () const |
virtual int | nAnalogOutputPorts () const |
virtual PortType | outputPortType (port_t o) const |
virtual PortType | inputPortType (port_t i) const |
Public Attributes | |
double | Vpeak |
If exceeds the Value of is resetet to d. [units=V; range=(-10,100);]. | |
double | Vinit |
The initial condition for at time . [units=V; range=(-1,1);]. | |
double | Inoise |
The standard deviation of the noise to be added each integration time constant. [range=(0,1); units=A;]. | |
double | Iinject |
A constant current to be injected into the LIF neuron. [units=A; range=(-1,1);]. | |
double | a |
A constant (0.02, 01) describing the coupling of variable u to Vm; [units=D; range=(0,10);]. | |
double | b |
A constant controlling sensitivity of u. [units=D; range=(0,10);]. | |
double | c |
A constant controlling reset of Vm (1000*Vreset). [units=mV; range=(-1000,1000);]. | |
double | d |
A constant controlling reset of u [units=D; range=(0,10);]. | |
Protected Attributes | |
double | Vm |
The membrane voltage [readonly; units=V;]. | |
double | u |
internal variable [readonly; units=V;] | |
double | dt_msec |
The time step [readonly; units=msec;]. | |
int | noiseType |
noise type (0.,,gaussian Noise, 1...pink noise, 3...Ornstein Uhlenbeck noise) [range=(0,2); units=;] | |
double | Isyn |
Summation point for all synaptic input currents. | |
double | factI |
Static Protected Attributes | |
static ThreadSpecificRandomDistribution < NormalDistribution > | white_noise |
Random number generator for white noise. |
Implements the model described in Izhikevich, 2004 'Which model to use for cortical spiking neurons'
Definition at line 24 of file IzhiNeuron.h.
IzhiNeuronBase::IzhiNeuronBase | ( | double | a = 0.02 , |
|
double | b = 0.2 , |
|||
double | c = -65.0 , |
|||
double | d = 8.0 , |
|||
double | Vpeak = 30.0 , |
|||
double | Vinit = -0.06 , |
|||
double | Inoise = 0.0 , |
|||
double | Iinject = 0.0 , |
|||
double | factI = 1.0 | |||
) |
Definition at line 20 of file IzhiNeuron.cpp.
virtual IzhiNeuronBase::~IzhiNeuronBase | ( | ) | [inline, virtual] |
Definition at line 43 of file IzhiNeuron.h.
This tells the object that it should adjust to a new simulation time step width.
Reimplemented from SimObject.
Definition at line 109 of file IzhiNeuron.cpp.
References dt_msec.
Referenced by reset().
int IzhiNeuronBase::advance | ( | AdvanceInfo const & | ai | ) | [virtual] |
Advance the neuron.
Reimplemented from SimObject.
Reimplemented in ExIzhiNeuronBase.
Definition at line 59 of file IzhiNeuron.cpp.
References a, ADVANCEFLAG_HASSPIKED, b, c, clearSynapticInput(), d, dt_msec, factI, Iinject, Inoise, Isyn, SingleOutputSpikeSender::out_port, SpikeOutputPort::setSpike(), u, Vm, Vpeak, and white_noise.
Reset the Izhi-Neuron.
Reimplemented from SimObject.
Definition at line 119 of file IzhiNeuron.cpp.
References adjust(), clearSynapticInput(), SingleOutputSpikeSender::reset(), u, Vinit, and Vm.
bool IzhiNeuronBase::refractoryQ | ( | ) | [inline] |
Returns true iff the neuron is in its absolute refactory period.
Definition at line 57 of file IzhiNeuron.h.
void IzhiNeuronBase::clearSynapticInput | ( | void | ) | [inline, virtual] |
Definition at line 103 of file IzhiNeuron.cpp.
References Isyn.
Referenced by ExIzhiNeuronBase::advance(), advance(), and reset().
virtual double IzhiNeuronBase::getManagedDelay | ( | ) | const [inline, virtual] |
virtual int IzhiNeuronBase::nSpikeInputPorts | ( | ) | const [inline, virtual] |
virtual int IzhiNeuronBase::nSpikeOutputPorts | ( | ) | const [inline, virtual] |
virtual int IzhiNeuronBase::nAnalogInputPorts | ( | ) | const [inline, virtual] |
virtual int IzhiNeuronBase::nAnalogOutputPorts | ( | ) | const [inline, virtual] |
Reimplemented from SimObject.
Definition at line 89 of file IzhiNeuron.h.
References SimObject::spiking, and SimObject::undefined.
Reimplemented from SimObject.
Definition at line 94 of file IzhiNeuron.h.
References SimObject::undefined.
If exceeds the Value of is resetet to d. [units=V; range=(-10,100);].
Definition at line 65 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), ExIzhiNeuronBase::ExIzhiNeuronBase(), and IzhiNeuronBase().
The initial condition for at time . [units=V; range=(-1,1);].
Definition at line 67 of file IzhiNeuron.h.
Referenced by reset().
The standard deviation of the noise to be added each integration time constant. [range=(0,1); units=A;].
Definition at line 69 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), and advance().
A constant current to be injected into the LIF neuron. [units=A; range=(-1,1);].
Definition at line 71 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), and advance().
A constant (0.02, 01) describing the coupling of variable u to Vm; [units=D; range=(0,10);].
Definition at line 75 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), ExIzhiNeuronBase::ExIzhiNeuronBase(), and IzhiNeuronBase().
A constant controlling sensitivity of u. [units=D; range=(0,10);].
Definition at line 77 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), ExIzhiNeuronBase::ExIzhiNeuronBase(), and IzhiNeuronBase().
A constant controlling reset of Vm (1000*Vreset). [units=mV; range=(-1000,1000);].
Definition at line 79 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), ExIzhiNeuronBase::ExIzhiNeuronBase(), and IzhiNeuronBase().
A constant controlling reset of u [units=D; range=(0,10);].
Definition at line 81 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), ExIzhiNeuronBase::ExIzhiNeuronBase(), and IzhiNeuronBase().
double IzhiNeuronBase::Vm [protected] |
The membrane voltage [readonly; units=V;].
Definition at line 101 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), CbExIzhiNeuron::conductanceInput(), CbIzhiNeuron::conductanceInput(), CbExIzhiNeuron::getVm(), CbIzhiNeuron::getVm(), and reset().
double IzhiNeuronBase::u [protected] |
internal variable [readonly; units=V;]
Definition at line 103 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), and reset().
double IzhiNeuronBase::dt_msec [protected] |
The time step [readonly; units=msec;].
Definition at line 105 of file IzhiNeuron.h.
Referenced by adjust(), ExIzhiNeuronBase::advance(), and advance().
ThreadSpecificRandomDistribution< NormalDistribution > IzhiNeuronBase::white_noise [static, protected] |
Random number generator for white noise.
Definition at line 109 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), and advance().
int IzhiNeuronBase::noiseType [protected] |
noise type (0.,,gaussian Noise, 1...pink noise, 3...Ornstein Uhlenbeck noise) [range=(0,2); units=;]
Definition at line 115 of file IzhiNeuron.h.
double IzhiNeuronBase::Isyn [protected] |
Summation point for all synaptic input currents.
Definition at line 117 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), advance(), clearSynapticInput(), CbExIzhiNeuron::conductanceInput(), CbIzhiNeuron::conductanceInput(), CbExIzhiNeuron::currentInput(), ExIzhiNeuron::currentInput(), CbIzhiNeuron::currentInput(), and IzhiNeuron::currentInput().
double IzhiNeuronBase::factI [protected] |
Definition at line 120 of file IzhiNeuron.h.
Referenced by ExIzhiNeuronBase::advance(), and advance().