ca.nengo.model
Interface Projection

All Superinterfaces:
java.io.Serializable
All Known Implementing Classes:
ProjectionImpl

public interface Projection
extends java.io.Serializable

A connection between an Origin and a Termination.

Author:
Bryan Tripp

Method Summary
 void addBias(int numInterneurons, float tauInterneurons, float tauBias, boolean excitatory, boolean optimize)
          Makes all the synaptic weights in the projection either positive or negative, so that the projection accords with Dale's principle.
 boolean biasIsEnabled()
           
 void enableBias(boolean enable)
           
 Network getNetwork()
           
 Origin getOrigin()
           
 Termination getTermination()
           
 float[][] getWeights()
           
 void removeBias()
          Deletes bias-related interneurons, projections, origins, and terminations.
 

Method Detail

getOrigin

Origin getOrigin()
Returns:
Origin of this Projection (where information comes from)

getTermination

Termination getTermination()
Returns:
Termination of this Projection (where information goes)

getNetwork

Network getNetwork()
Returns:
The Network to which this Projection belongs

addBias

void addBias(int numInterneurons,
             float tauInterneurons,
             float tauBias,
             boolean excitatory,
             boolean optimize)
             throws StructuralException
Makes all the synaptic weights in the projection either positive or negative, so that the projection accords with Dale's principle. This introduces a bias current postsynaptically, which is a function of presynaptic activity. This bias is removed by projecting the same function through an ensemble of interneurons. See Parisien, Anderson & Eliasmith, 2007, Neural Computation for more detail.

Parameters:
numInterneurons - Number of interneurons through which bias function is projected
tauInterneurons - Time constant of post-synaptic current in projection from presynaptic ensemble to interneurons (typically short)
tauBias - Time constant of post-synaptic current in projection from interneurons to postsynaptic ensemble
excitatory - If true, synapses in main projection are made excitatory; if false, inhibitory
optimize - If true, performs optimizations to minimize distortion in the parallel projection through interneurons
Throws:
StructuralException

removeBias

void removeBias()
Deletes bias-related interneurons, projections, origins, and terminations.


enableBias

void enableBias(boolean enable)
Parameters:
enable - If true, and initializeBias(...) has been called, then bias is enabled; if false it is disabled (default true)

biasIsEnabled

boolean biasIsEnabled()
Returns:
true if bias is enabled

getWeights

float[][] getWeights()
Returns:
Matrix of weights in this Projection (if there are neurons on each end, then these are synaptic weights)