ca.nengo.model.impl
Class FunctionInput

java.lang.Object
  extended by ca.nengo.model.impl.FunctionInput
All Implemented Interfaces:
Node, Probeable, Resettable, SimulationMode.ModeConfigurable, VisiblyMutable, java.io.Serializable, java.lang.Cloneable

public class FunctionInput
extends java.lang.Object
implements Node, Probeable

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface ca.nengo.util.VisiblyMutable
VisiblyMutable.Event, VisiblyMutable.Listener, VisiblyMutable.NameChangeEvent, VisiblyMutable.NodeRemovedEvent
 
Field Summary
static java.lang.String ORIGIN_NAME
           
static java.lang.String STATE_NAME
           
 
Constructor Summary
FunctionInput(java.lang.String name, Function[] functions, Units units)
           
 
Method Summary
 void addChangeListener(VisiblyMutable.Listener listener)
           
 Node clone()
           
 java.lang.String getDocumentation()
           
 Function[] getFunctions()
           
 TimeSeries getHistory(java.lang.String stateName)
          Note that the units of TimeSeries' for a given state do not change over time (ie at different time steps).
 SimulationMode getMode()
           
 java.lang.String getName()
           
 Origin getOrigin(java.lang.String name)
           
 Origin[] getOrigins()
           
 Termination getTermination(java.lang.String name)
           
 Termination[] getTerminations()
           
 java.util.Properties listStates()
           
 void removeChangeListener(VisiblyMutable.Listener listener)
           
 void reset(boolean randomize)
          This method does nothing, as the FunctionInput has no state.
 void run(float startTime, float endTime)
          Runs the Node (including all its components), updating internal state and outputs as needed.
 void setDocumentation(java.lang.String text)
           
 void setFunctions(Function[] functions)
           
 void setMode(SimulationMode mode)
          This call has no effect.
 void setName(java.lang.String name)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ORIGIN_NAME

public static final java.lang.String ORIGIN_NAME
See Also:
Constant Field Values

STATE_NAME

public static final java.lang.String STATE_NAME
See Also:
Constant Field Values
Constructor Detail

FunctionInput

public FunctionInput(java.lang.String name,
                     Function[] functions,
                     Units units)
              throws StructuralException
Parameters:
name - The name of this Node
functions - Functions of time (simulation time) that produce the values that will be output by this Node. Each given function corresponds to a dimension in the output vectors. Each function must have input dimension 1.
units - The units in which the output values are to be interpreted
Throws:
StructuralException
Method Detail

setFunctions

public void setFunctions(Function[] functions)
                  throws StructuralException
Parameters:
functions - New list of functions (of simulation time) that define the output of this Node. (Must have the same length as existing Function list.)
Throws:
StructuralException

getFunctions

public Function[] getFunctions()
Returns:
array of functions

getName

public java.lang.String getName()
Specified by:
getName in interface Node
Returns:
Name of Node (must be unique in a Network)
See Also:
Node.getName()

setName

public void setName(java.lang.String name)
             throws StructuralException
Specified by:
setName in interface Node
Parameters:
name - The new name
Throws:
StructuralException

run

public void run(float startTime,
                float endTime)
Description copied from interface: Node
Runs the Node (including all its components), updating internal state and outputs as needed. Runs should be short (eg 1ms), because inputs can not be changed during a run, and outputs will only be communicated to other Nodes after a run.

Specified by:
run in interface Node
Parameters:
startTime - simulation time at which running starts (s)
endTime - simulation time at which running ends (s)
See Also:
Node.run(float, float)

reset

public void reset(boolean randomize)
This method does nothing, as the FunctionInput has no state.

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)

setMode

public void setMode(SimulationMode mode)
This call has no effect. DEFAULT mode is always used.

Specified by:
setMode in interface SimulationMode.ModeConfigurable
Parameters:
mode - SimulationMode in which it is desired that the object runs.
See Also:
SimulationMode.ModeConfigurable.setMode(ca.nengo.model.SimulationMode)

getMode

public SimulationMode getMode()
Specified by:
getMode in interface SimulationMode.ModeConfigurable
Returns:
SimulationMode.DEFAULT
See Also:
SimulationMode.ModeConfigurable.getMode()

getHistory

public TimeSeries getHistory(java.lang.String stateName)
                      throws SimulationException
Description copied from interface: Probeable
Note that the units of TimeSeries' for a given state do not change over time (ie at different time steps). CAUTION: The TimeSeries should not contain a reference to any arrays that you are going to change later. The caller owns what you return.

Specified by:
getHistory in interface Probeable
Parameters:
stateName - A state variable name
Returns:
History of values for the named state variable. The history must cover the most recent network time step, and no more. There should be no overlap in the time points returned for different steps.
Throws:
SimulationException - if the Probeable does not have the requested state
See Also:
Probeable.getHistory(java.lang.String)

listStates

public java.util.Properties listStates()
Specified by:
listStates in interface Probeable
Returns:
List of state variable names, eg "V", and associated descriptions eg "membrane potential (mV)"
See Also:
Probeable.listStates()

getOrigin

public Origin getOrigin(java.lang.String name)
                 throws StructuralException
Specified by:
getOrigin in interface Node
Parameters:
name - Name of an Origin on this Node
Returns:
The named Origin if it exists
Throws:
StructuralException - if the named Origin does not exist
See Also:
Node.getOrigin(java.lang.String)

getOrigins

public Origin[] getOrigins()
Specified by:
getOrigins in interface Node
Returns:
Sets of ouput channels (eg spiking outputs, gap junctional outputs, etc.)
See Also:
Node.getOrigins()

getTermination

public Termination getTermination(java.lang.String name)
                           throws StructuralException
Specified by:
getTermination in interface Node
Parameters:
name - Name of a Termination onto this Node
Returns:
The named Termination if it exists
Throws:
StructuralException - if the named Termination does not exist
See Also:
Node.getTermination(java.lang.String)

getTerminations

public Termination[] getTerminations()
Specified by:
getTerminations in interface Node
Returns:
Sets of input channels (these have the same dimension as corresponding Origins to which they are connected).
See Also:
Node.getTerminations()

getDocumentation

public java.lang.String getDocumentation()
Specified by:
getDocumentation in interface Node
Returns:
User-specified documentation for the Node, if any
See Also:
Node.getDocumentation()

setDocumentation

public void setDocumentation(java.lang.String text)
Specified by:
setDocumentation in interface Node
Parameters:
text - New user-specified documentation for the Node
See Also:
Node.setDocumentation(java.lang.String)

addChangeListener

public void addChangeListener(VisiblyMutable.Listener listener)
Specified by:
addChangeListener in interface VisiblyMutable
Parameters:
listener - Listener to add
See Also:
VisiblyMutable.addChangeListener(ca.nengo.util.VisiblyMutable.Listener)

removeChangeListener

public void removeChangeListener(VisiblyMutable.Listener listener)
Specified by:
removeChangeListener in interface VisiblyMutable
Parameters:
listener - Listener to remove
See Also:
VisiblyMutable.removeChangeListener(ca.nengo.util.VisiblyMutable.Listener)

clone

public Node clone()
           throws java.lang.CloneNotSupportedException
Specified by:
clone in interface Node
Overrides:
clone in class java.lang.Object
Returns:
An independent copy of the Node
Throws:
java.lang.CloneNotSupportedException