ptolemy.domains.sdf.lib
Class VariableRecursiveLattice

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.InstantiableNamedObj
          extended by ptolemy.kernel.Entity
              extended by ptolemy.kernel.ComponentEntity
                  extended by ptolemy.actor.AtomicActor
                      extended by ptolemy.actor.TypedAtomicActor
                          extended by ptolemy.actor.lib.Transformer
                              extended by ptolemy.actor.lib.RecursiveLattice
                                  extended by ptolemy.domains.sdf.lib.VariableRecursiveLattice
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, ExplicitChangeContext, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class VariableRecursiveLattice
extends RecursiveLattice
implements ExplicitChangeContext

This actor implements a recursive (all-pole) filter with a lattice structure where the reflection coefficients are supplied at an input port. The blockSize parameter specifies the number of inputs of the filter that are processed per coefficient set provided on the newCoefficients input. If no coefficients are provided on that input port, then the default coefficients defined in the base class are used. In all other respects, the behavior of this actor is the same as that of the base class.

Since:
Ptolemy II 1.0
Version:
$Id: VariableRecursiveLattice.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee
See Also:
Serialized Form
Accepted Rating:
Yellow (eal)
Proposed Rating:
Yellow (eal)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private  int _blockSizeValue
           
 Parameter blockSize
          The number of inputs that use each each coefficient set.
 Parameter input_tokenConsumptionRate
          The number of tokens consumed from the input port.
 TypedIOPort newCoefficients
          The input for new coefficient values.
 Parameter output_tokenProductionRate
          The number of tokens produced from the output port.
 
Fields inherited from class ptolemy.actor.lib.RecursiveLattice
reflectionCoefficients
 
Fields inherited from class ptolemy.actor.lib.Transformer
input, output
 
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Constructor Summary
VariableRecursiveLattice(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
 void attributeChanged(Attribute attribute)
          Ensure that the blockSize parameter is positive.
 java.lang.Object clone(Workspace workspace)
          Clone the actor into the specified workspace.
 void fire()
          Consume the inputs and produce the outputs of the filter.
 Entity getContext()
          Return the change context being made explicit.
 java.util.List getModifiedVariables()
          Return a list of variables that this entity modifies.
 boolean prefire()
          Return false if the input does not have enough tokens to fire.
 
Methods inherited from class ptolemy.actor.lib.RecursiveLattice
initialize, postfire
 
Methods inherited from class ptolemy.actor.TypedAtomicActor
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints
 
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
 
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, preinitialize, removeInitializable, wrapup
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

blockSize

public Parameter blockSize
The number of inputs that use each each coefficient set. This is an integer that defaults to 1.


newCoefficients

public TypedIOPort newCoefficients
The input for new coefficient values. The type is an array of doubles.


input_tokenConsumptionRate

public Parameter input_tokenConsumptionRate
The number of tokens consumed from the input port.


output_tokenProductionRate

public Parameter output_tokenProductionRate
The number of tokens produced from the output port.


_blockSizeValue

private int _blockSizeValue
Constructor Detail

VariableRecursiveLattice

public VariableRecursiveLattice(CompositeEntity container,
                                java.lang.String name)
                         throws NameDuplicationException,
                                IllegalActionException
Construct an actor with the given container and name.

Parameters:
container - The container.
name - The name of this actor.
Throws:
IllegalActionException - If the actor cannot be contained by the proposed container.
NameDuplicationException - If the container already has an actor with this name.
Method Detail

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
Ensure that the blockSize parameter is positive.

Overrides:
attributeChanged in class RecursiveLattice
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the block size is invalid, or if the base class throws it.

clone

public java.lang.Object clone(Workspace workspace)
                       throws java.lang.CloneNotSupportedException
Clone the actor into the specified workspace. This calls the base class and then resets the type constraints.

Overrides:
clone in class RecursiveLattice
Parameters:
workspace - The workspace for the new object.
Returns:
A new actor.
Throws:
java.lang.CloneNotSupportedException - If a derived class contains an attribute that cannot be cloned.
See Also:
NamedObj.exportMoML(Writer, int, String), NamedObj.setDeferringChangeRequests(boolean)

fire

public void fire()
          throws IllegalActionException
Consume the inputs and produce the outputs of the filter.

Specified by:
fire in interface Executable
Overrides:
fire in class RecursiveLattice
Throws:
IllegalActionException - If parameter values are invalid, or if there is no director.

getModifiedVariables

public java.util.List getModifiedVariables()
                                    throws IllegalActionException
Return a list of variables that this entity modifies. The variables are assumed to have a change context of the given entity.

Specified by:
getModifiedVariables in interface ExplicitChangeContext
Returns:
A list of variables.
Throws:
IllegalActionException - If the list of modified variables cannot be returned.

getContext

public Entity getContext()
                  throws IllegalActionException
Return the change context being made explicit. In simple cases, this will simply be the entity implementing this interface. However, in more complex cases, directors may implement this interface, or entities may modify parameters according to a different change context (i.e. HDF)

Specified by:
getContext in interface ExplicitChangeContext
Returns:
The change context being made explicit.
Throws:
IllegalActionException - Not thrown in this base class.

prefire

public boolean prefire()
                throws IllegalActionException
Return false if the input does not have enough tokens to fire. Otherwise, return true.

Specified by:
prefire in interface Executable
Overrides:
prefire in class RecursiveLattice
Returns:
False if the number of input tokens available is not at least equal to the blockSize parameter.
Throws:
IllegalActionException - If the superclass throws it.