mosaic.sim.neuron
Class PLThreshold

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--mosaic.sim.kernel.AbstractModelComponent
                          |
                          +--mosaic.sim.kernel.variable.AbstractVariable
                                |
                                +--mosaic.sim.neuron.ActiveVariable
                                      |
                                      +--mosaic.sim.neuron.Threshold
                                            |
                                            +--mosaic.sim.neuron.PLThreshold
All Implemented Interfaces:
java.util.EventListener, java.awt.image.ImageObserver, mosaic.sim.kernel.simevent.InputEventListener, java.awt.MenuContainer, mosaic.sim.kernel.ModelComponent, java.io.Serializable, mosaic.sim.kernel.simevent.SimEventListener, mosaic.sim.kernel.simevent.TimeEventListener, mosaic.sim.kernel.variable.Variable, mosaic.sim.kernel.variable.VariableChangeComponent
Direct Known Subclasses:
ConstantPLThreshold

public abstract class PLThreshold
extends Threshold

This class implements a threshold with piecewise linear functions.

See Also:
Serialized Form

Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
protected  double lastFireTime
          The simulation time when the associated neuron fired the last time.
protected  int lastState
          The previous state of the neuron, can be one of STATE_*.
protected  int state
          The current state of the neuron, can be one of STATE_*.
static int STATE_ABSOLUTE_REFRACTION
          The absolute refraction state means that the threshold is infinite (the associated neuron can not fire in any case).
static int STATE_QUIESCENT
          The quiescent state means that the threshold is constant (not changing over the time as long as the associated neuron does not fire).
static int STATE_RELATIVE_REFRACTION
          The relative refraction state means that the threshold is higher than the quiescent value, but approaches the quiescent value.
 
Fields inherited from class mosaic.sim.neuron.ActiveVariable
timer
 
Fields inherited from class mosaic.sim.kernel.variable.AbstractVariable
changedTime, definedBy, displayUnit, inCoupler, inputEventComponents, outCouplers, quantity, type, unit, variableChangeListeners
 
Fields inherited from class mosaic.sim.kernel.AbstractModelComponent
application, components, enabled, label, parentModelComponent, sCESupport
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface mosaic.sim.kernel.variable.Variable
CONSTANT, INPUT, OUTPUT, STATE, VARIABLE
 
Fields inherited from interface mosaic.sim.kernel.ModelComponent
INF, INFINITY, NEGATIVE_INFINITY, NEGINF, NEGINFINITY, POSITIVE_INFINITY
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PLThreshold()
          Creates a PLThreshold object and sets its state to STATE_QUIESCENT.
 
Method Summary
protected  double calculateIntersectionPoint(PLFunction f1, double startValue1, double startTime1, int numSegments1, PLFunction f2, double startValue2, double startTime2, int numSegments2)
           
 double calculateNextFireTime(Potential potential)
          Returns the next fire time of the associated neuron.
 void fired()
          This method is called by the associated neuron object whenever it fires.
abstract  float getAbsoluteRefractionTime()
          Returns the absolute refraction time.
 double getCurrentThreshold()
          Compute the current Neuron threshold from the gradient changes.
 double getLastFireTime()
          Returns the last fire time of the associated neuron.
abstract  float getQuiescentValue()
          Returns the quiescent value.
abstract  PLFunction getRelativeRefraction()
          Returns the relative refraction function.
abstract  float getRelativeRefractionStartValue()
          Returns the start value of the relative refraction function.
abstract  float getRelativeRefractionTime()
          Returns the relative refraction time.
 int getState()
          Returns the current internal state.
 void processSimEvent(mosaic.sim.kernel.simevent.SimEvent e)
          This method is called by the simulation framework whenever a time event occurs.
 void reset()
          Overrides the default behaviour of reset by also clearing the internal state variables.
 
Methods inherited from class mosaic.sim.neuron.Threshold
getValueObject
 
Methods inherited from class mosaic.sim.neuron.ActiveVariable
activateAt, activateIn, addTimeEventComponent, isActive, passivate, removeTimeEventComponent
 
Methods inherited from class mosaic.sim.kernel.variable.AbstractVariable
addInputEventComponent, addOutCoupler, addSimEventComponent, addVariableChangeListener, clearChangedTime, connect, getChangedTime, getDefinedBy, getDisplayUnit, getInCoupler, getOutCouplers, getQuantity, getUnit, getVariableChangeListener, informOutgoingCouplers, isTypeConstant, isTypeInput, isTypeOutput, isTypeState, isTypeVariable, removeInputEventComponent, removeOutCoupler, removeSimEventComponent, removeVariableChangeListener, setChangedTime, setChangedTime, setDefinedBy, setDisplayUnit, setInCoupler, setQuantity, setType, setTypeConstant, setTypeInput, setTypeOutput, setTypeState, setTypeVariable, setUnit, signalVariableChange, signalVariableChangeDirectly, unconnect
 
Methods inherited from class mosaic.sim.kernel.AbstractModelComponent
addModelComponent, addModelComponentEventListener, addModelComponentEventListener, addNotify, containsModelComponent, disable, enable, findParentModelComponent, fireModelComponentAdded, fireModelComponentChanged, fireModelComponentChanged, fireModelComponentDisabled, fireModelComponentEnabled, fireModelComponentGotContinuous, fireModelComponentGotDiscrete, fireModelComponentRemoved, getInfo, getLabel, getMinimumSize, getModelComponents, getParentModelComponent, getPreferredSize, getSimApplication, getTime, initialize, isDisabled, isEnabled, paintComponent, printDebugOutput, printDebugOutput, printDebugOutput, printDebugOutput, printErrorOutput, printErrorOutput, printLogOutput, printLogOutput, removeModelComponent, removeModelComponentEventListener, removeModelComponentEventListener, removeNotify, setEnabled, setLabel, setParentModelComponent, setSimApplication
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, , addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getUIClassID, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paintWithBuffer, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update, updateUI, writeObject
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 
Methods inherited from interface mosaic.sim.kernel.simevent.SimEventListener
addSimEventComponent, removeSimEventComponent
 
Methods inherited from interface mosaic.sim.kernel.ModelComponent
addModelComponent, addModelComponentEventListener, addModelComponentEventListener, containsModelComponent, disable, enable, fireModelComponentAdded, fireModelComponentChanged, fireModelComponentChanged, fireModelComponentDisabled, fireModelComponentEnabled, fireModelComponentGotContinuous, fireModelComponentGotDiscrete, fireModelComponentRemoved, getInfo, getLabel, getModelComponents, getParentModelComponent, getSimApplication, getTime, initialize, isDisabled, isEnabled, removeModelComponent, removeModelComponentEventListener, removeModelComponentEventListener, setEnabled, setParentModelComponent, setSimApplication
 

Field Detail

STATE_QUIESCENT

public static final int STATE_QUIESCENT
The quiescent state means that the threshold is constant (not changing over the time as long as the associated neuron does not fire).

STATE_ABSOLUTE_REFRACTION

public static final int STATE_ABSOLUTE_REFRACTION
The absolute refraction state means that the threshold is infinite (the associated neuron can not fire in any case).

STATE_RELATIVE_REFRACTION

public static final int STATE_RELATIVE_REFRACTION
The relative refraction state means that the threshold is higher than the quiescent value, but approaches the quiescent value.

lastFireTime

protected double lastFireTime
The simulation time when the associated neuron fired the last time.

state

protected int state
The current state of the neuron, can be one of STATE_*.

lastState

protected int lastState
The previous state of the neuron, can be one of STATE_*.
Constructor Detail

PLThreshold

public PLThreshold()
Creates a PLThreshold object and sets its state to STATE_QUIESCENT.
Method Detail

calculateIntersectionPoint

protected double calculateIntersectionPoint(PLFunction f1,
                                            double startValue1,
                                            double startTime1,
                                            int numSegments1,
                                            PLFunction f2,
                                            double startValue2,
                                            double startTime2,
                                            int numSegments2)

calculateNextFireTime

public double calculateNextFireTime(Potential potential)
Returns the next fire time of the associated neuron. That is the first possible intersection of the current threshold function with the given potential function.
Overrides:
calculateNextFireTime in class Threshold
Parameters:
potential - The potential function to compute the intersection with.

fired

public void fired()
This method is called by the associated neuron object whenever it fires. The threshold then switches to STATE_ABSOLUTE_REFRACTION and activates a timer to switch to STATE_RELATIVE_REFRACTION after the absolute refraction time.
Overrides:
fired in class Threshold

processSimEvent

public void processSimEvent(mosaic.sim.kernel.simevent.SimEvent e)
This method is called by the simulation framework whenever a time event occurs. It is used within PLThreshold for state internal transitions.
Overrides:
processSimEvent in class mosaic.sim.kernel.variable.AbstractVariable

getState

public int getState()
Returns the current internal state.
See Also:
state

getLastFireTime

public double getLastFireTime()
Returns the last fire time of the associated neuron.
See Also:
lastFireTime

getCurrentThreshold

public double getCurrentThreshold()
Compute the current Neuron threshold from the gradient changes.
Overrides:
getCurrentThreshold in class Threshold

reset

public void reset()
Overrides the default behaviour of reset by also clearing the internal state variables.
Overrides:
reset in class mosaic.sim.kernel.AbstractModelComponent

getQuiescentValue

public abstract float getQuiescentValue()
Returns the quiescent value. This method must be overridden in subclasses.

getAbsoluteRefractionTime

public abstract float getAbsoluteRefractionTime()
Returns the absolute refraction time. This method must be overridden in subclasses.

getRelativeRefractionTime

public abstract float getRelativeRefractionTime()
Returns the relative refraction time. This method must be overridden in subclasses.

getRelativeRefraction

public abstract PLFunction getRelativeRefraction()
Returns the relative refraction function. This method must be overridden in subclasses.

getRelativeRefractionStartValue

public abstract float getRelativeRefractionStartValue()
Returns the start value of the relative refraction function. This method must be overridden in subclasses.