Nengo.ca

ca.nengo.model.impl
Class EnsembleTermination

java.lang.Object
  extended by ca.nengo.model.impl.EnsembleTermination
All Implemented Interfaces:
Resettable, Termination, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
PlasticEnsembleTermination

public class EnsembleTermination
extends java.lang.Object
implements Termination

A Termination that is composed of Terminations onto multiple Nodes. The dimensions of the Terminations onto each Node must be the same.

Physiologically, this might correspond to a set of n axons passing into a neuron pool. Each neuron in the pool receives synaptic connections from as many as n of these axons (zero weight is equivalent to no connection). Sometimes we deal with this set of axons only in terms of the branches they send to one specific Neuron (a Node-level Termination) but here we deal with all branches (an Ensemble-level Termination). In either case the spikes transmitted by the axons are the same.

TODO: test

See Also:
Serialized Form

Constructor Summary
EnsembleTermination(Node node, java.lang.String name, Termination[] nodeTerminations)
           
 
Method Summary
 EnsembleTermination clone()
           
 EnsembleTermination clone(Node node)
          Clone method that changes necessary parameters to point to a new parent, for use in cloning ensembles, etc.
 int getDimensions()
           
 InstantaneousOutput getInput()
           
 boolean getModulatory()
          Returns true if more than half of node terminations are modulatory.
 java.lang.String getName()
           
 Node getNode()
           
 Termination[] getNodeTerminations()
           
 float getTau()
          Returns the average.
 void reset(boolean randomize)
           
 void setModulatory(boolean modulatory)
           
 void setTau(float tau)
           
 void setValues(InstantaneousOutput values)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EnsembleTermination

public EnsembleTermination(Node node,
                           java.lang.String name,
                           Termination[] nodeTerminations)
                    throws StructuralException
Parameters:
node - The parent Node
name - Name of this Termination
nodeTerminations - Node-level Terminations that make up this Termination
Throws:
StructuralException - If dimensions of different terminations are not all the same
Method Detail

getName

public java.lang.String getName()
Specified by:
getName in interface Termination
Returns:
Name of this Termination (unique in the scope of the object the which the Termination is connected, eg the Neuron or Ensemble).
See Also:
Termination.getName()

getDimensions

public int getDimensions()
Specified by:
getDimensions in interface Termination
Returns:
Dimensionality of information entering this Termination (eg number of axons, or dimension of decoded function of variables represented by sending Ensemble)
See Also:
Termination.getDimensions()

setValues

public void setValues(InstantaneousOutput values)
               throws SimulationException
Specified by:
setValues in interface Termination
Parameters:
values - InstantaneousOutput (eg from another Ensemble) to apply to this Termination.
Throws:
SimulationException - if the given values have the wrong dimension
See Also:
Termination.setValues(ca.nengo.model.InstantaneousOutput)

getInput

public InstantaneousOutput getInput()
Specified by:
getInput in interface Termination
Returns:
Latest input to the underlying terminations.

getModulatory

public boolean getModulatory()
Returns true if more than half of node terminations are modulatory.

Specified by:
getModulatory in interface Termination
Returns:
Whether the Termination is modulatory, in the sense of neuromodulation, ie true if input via this Termination is not summed to drive a node, but influences node activity in some other way
See Also:
Termination.getModulatory()

getTau

public float getTau()
Returns the average.

Specified by:
getTau in interface Termination
Returns:
Time constant of dominant dynamics
See Also:
Termination.getTau()

setModulatory

public void setModulatory(boolean modulatory)
Specified by:
setModulatory in interface Termination
Parameters:
modulatory - True if the Termination is to be modulatory
See Also:
Termination.setModulatory(boolean)

setTau

public void setTau(float tau)
            throws StructuralException
Specified by:
setTau in interface Termination
Parameters:
tau - Time constant of dominant dynamics
Throws:
StructuralException - if the time constant cannot be changed
See Also:
Termination.setTau(float)

getNode

public Node getNode()
Specified by:
getNode in interface Termination
Returns:
The Node to which this Termination belongs
See Also:
Termination.getNode()

getNodeTerminations

public Termination[] getNodeTerminations()
Returns:
Array with all of the underlying node terminations

reset

public void reset(boolean randomize)
Specified by:
reset in interface Resettable
Parameters:
randomize - True indicates that the object should be reset to a randomly selected initial state (the object must be aware of the distribution from which to draw from). False indicates that the object should be reset to a fixed initial state (which it must also know). Some objects may not support randomization of the initial state, in which case a fixed state will be used in either case.
See Also:
Resettable.reset(boolean)

clone

public EnsembleTermination clone()
                          throws java.lang.CloneNotSupportedException
Specified by:
clone in interface Termination
Overrides:
clone in class java.lang.Object
Returns:
Valid clone
Throws:
java.lang.CloneNotSupportedException - if clone can't be made

clone

public EnsembleTermination clone(Node node)
                          throws java.lang.CloneNotSupportedException
Description copied from interface: Termination
Clone method that changes necessary parameters to point to a new parent, for use in cloning ensembles, etc.

Specified by:
clone in interface Termination
Parameters:
node - New parent node
Returns:
A clone of the termination for the new parent ensemble
Throws:
java.lang.CloneNotSupportedException - if clone cannot be made

Nengo.ca