ca.nengo.model.plasticity.impl
Class AbstractSpikeLearningFunction

java.lang.Object
  extended by ca.nengo.math.impl.AbstractFunction
      extended by ca.nengo.model.plasticity.impl.AbstractSpikeLearningFunction
All Implemented Interfaces:
Function, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
InSpikeErrorFunction, OutSpikeErrorFunction

public abstract class AbstractSpikeLearningFunction
extends AbstractFunction

Defines the input available to a spike-based learning rule function.

Author:
Trevor Bekolay
See Also:
Serialized Form

Field Summary
protected  float myLearningRate
           
 
Fields inherited from class ca.nengo.math.impl.AbstractFunction
DIMENSION_PROPERTY
 
Constructor Summary
AbstractSpikeLearningFunction()
          Ensures that the function is of the correct dimension.
 
Method Summary
 AbstractSpikeLearningFunction clone()
           
protected abstract  float deltaOmega(float timeSinceDifferent, float timeSinceSame, float currentWeight, float modInput, int postIndex, int preIndex, int dim)
          A learning rule that defines how the connection weight changes when a particular spike happens (either presynaptic spike or postsynaptic).
 float getLearningRate()
           
 float map(float[] from)
          Calls deltaOmega.
 void setLearningRate(float rate)
           
 
Methods inherited from class ca.nengo.math.impl.AbstractFunction
getDimension, multiMap
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myLearningRate

protected float myLearningRate
Constructor Detail

AbstractSpikeLearningFunction

public AbstractSpikeLearningFunction()
Ensures that the function is of the correct dimension.

Method Detail

map

public float map(float[] from)
Calls deltaOmega.

Specified by:
map in interface Function
Specified by:
map in class AbstractFunction
Parameters:
from - Must have same length as getDimension()
Returns:
result of function operation on arg
See Also:
Function.map(float[])

deltaOmega

protected abstract float deltaOmega(float timeSinceDifferent,
                                    float timeSinceSame,
                                    float currentWeight,
                                    float modInput,
                                    int postIndex,
                                    int preIndex,
                                    int dim)
A learning rule that defines how the connection weight changes when a particular spike happens (either presynaptic spike or postsynaptic).

Parameters:
timeSinceDifferent - The amount of time passed since the last spike of the different type -- that is, if this is an onInSpike function, it would be the amount of time since the last out spike
timeSinceSame - The amount of time passed since the last spike of the same type -- that is, if this is an onInSpike function, it would be the amount of time since the last in spike
currentWeight - The current connection weight between the pre and post neurons
modInput - The modulatory input, for this particular dimension (see dim)
postIndex - The neuron index in the post-synaptic population
preIndex - The neuron index in the pre-synaptic population
dim - The dimension of the modulatory input

clone

public AbstractSpikeLearningFunction clone()
                                    throws java.lang.CloneNotSupportedException
Specified by:
clone in interface Function
Overrides:
clone in class AbstractFunction
Throws:
java.lang.CloneNotSupportedException
See Also:
Object.clone()

setLearningRate

public void setLearningRate(float rate)
Parameters:
rate - New learning rate

getLearningRate

public float getLearningRate()