public final class MiNiNeuron extends Object implements Neuron
Modifier and Type | Class and Description |
---|---|
class |
MiNiNeuron.State |
Modifier and Type | Field and Description |
---|---|
double |
clampThreshold
clamp the threshold during absolute refractory period
|
double |
clampVoltage
clamp the membrane voltage during absolute refractory period
|
static double |
cost
the expected cost of inserting a preliminary fire estimate into the
event queue (as opposed to performing another NR iteration)
|
static double |
cost_Schedule
the cost associated with one queue schedule (see D'Haene, 2009)
|
static double |
cost_Update
the cost associated with one neuron update (see D’Haene, 2009)
|
boolean |
fire
whether the next fire event is a final calculation,
as opposed to a preliminary estimate (see D'Haene, 2009)
|
double |
lastFireTime
last time the neuron fired; negative means no last spike
|
double |
lastInputTime
last time the neuron received a spike
|
MiNiNeuronPara |
para
neuron parameters
|
static double |
rEPS
the criterion for removing synapses: if a synaptic channel does not
get an input for a long time such that its current decays below rEPS,
it is removed from computations of the voltage and future updates up
until it gets an input
|
MiNiNeuron.State[][] |
sta_p
two-dimensional array pointing to the state variables.
|
TreeSet<MiNiNeuron.State> |
state
linked list for state variables
|
double |
tAvg
running average of the time interval between input spikes
|
static double |
tEPS
the epsilon of a final firing time calculation
|
long |
tHost
long imposes a constraint on the maximum number of hosts to be 64
|
Constructor and Description |
---|
MiNiNeuron(MiNiNeuronPara para) |
Modifier and Type | Method and Description |
---|---|
double[] |
getCurr(double currTime)
Used mainly for intracellular recording.
|
double |
getMemV(double currTime)
Used mainly for intracellular recording.
|
boolean |
getRecord()
record the neuron
|
double |
getSensoryWeight() |
long |
getTHost() |
double |
getTimeOfLastUpdate() |
double |
getTimeOfNextFire()
get the value of timeOfNextFire
|
void |
init(int expid,
int trialid,
Seed idum,
Network net,
int id)
initialize the neuron
|
boolean |
isSensory()
sensory report
|
double |
membraneVoltage(double t)
Compute the membrane voltage.
|
boolean |
realFire() |
double |
safeDerivative(double t)
Computes the "safe derivative" (see D'Haene, 2009) of the
thresholdDiff function.
|
void |
setMemV(double memV)
set the membrane voltage
|
void |
setRecord(boolean record)
set the neuron record or not.
|
void |
setTHost(long id)
set the target host id, 0 means none, 1 means yes
|
void |
setTimeOfLastUpdate(double timeOfLastUpdate) |
void |
setTimeOfNextFire(double timeOfNextFire)
set a new value to timeOfNextFire
|
double |
thresholdDiff(double t)
Compute the difference between the membrane voltage and the membrane
voltage threshold.
|
String |
toString() |
double |
updateFire()
update of the neuron after firing
the current time is TimeOfNextFire
|
double |
updateInput(double time,
Synapse input)
update of the neuron after receiving a spike
the current time is time
|
public static double tEPS
public static double rEPS
public static double cost_Update
public static double cost_Schedule
public static double cost
public double tAvg
public double lastInputTime
public double lastFireTime
public double clampVoltage
public double clampThreshold
public boolean fire
public long tHost
public MiNiNeuronPara para
public TreeSet<MiNiNeuron.State> state
public MiNiNeuron.State[][] sta_p
public MiNiNeuron(MiNiNeuronPara para)
public double[] getCurr(double currTime)
public double getMemV(double currTime)
public long getTHost()
public double getTimeOfNextFire()
Neuron
getTimeOfNextFire
in interface Neuron
public boolean realFire()
public void setRecord(boolean record)
Neuron
public void setTHost(long id)
Neuron
public void setTimeOfNextFire(double timeOfNextFire)
Neuron
setTimeOfNextFire
in interface Neuron
timeOfNextFire
- the new value to be usedpublic void init(int expid, int trialid, Seed idum, Network net, int id)
Neuron
public double updateFire()
Neuron
updateFire
in interface Neuron
public double updateInput(double time, Synapse input)
Neuron
updateInput
in interface Neuron
input
- it is a InputEvent event in the input queuepublic double getSensoryWeight()
public double getTimeOfLastUpdate()
public void setMemV(double memV)
public void setTimeOfLastUpdate(double timeOfLastUpdate)
public double membraneVoltage(double t)
t
- absolute time tpublic double thresholdDiff(double t)
MNNeuron
class is optimized to
perform this function quickly, at the expense of
membraneVoltage()
.
This method is based on Equation 3.5 in Mihalas and Niebur, 2009.t
- absolute time tpublic double safeDerivative(double t)
t
- absolute time t