ptolemy.actor.lib
Class Interpolator

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.Source
                              extended by ptolemy.actor.lib.LimitedFiringSource
                                  extended by ptolemy.actor.lib.SequenceSource
                                      extended by ptolemy.actor.lib.Interpolator
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, SequenceActor, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class Interpolator
extends SequenceSource

Produce an interpolation based on the parameters. This class uses the Interpolation class in the math package to compute the interpolation. The values parameter specifies a sequence of values to produce at the output. The indexes parameter specifies when those values should be produced. The values and indexes parameters must both contain arrays, and have equal lengths or an exception will be thrown. The indexes array must be increasing and non-negative. The values are periodic if the period parameter contains a positive value. In this case, the period must be greater than the largest index, and values within the index range 0 to (period-1) are repeated indefinitely. If the period is zero, the values are not periodic, and the values outside the range of the indexes are considered to be 0.0. The order parameter specifies which order of interpolation to apply whenever the iteration count does not match an index in indexes. The Interpolation class currently supports zero, first, and third order interpolations. The default parameter are those set in the Interpolation class.

This actor counts iterations. Whenever the iteration count matches an entry in the indexes array, the corresponding entry (at the same position) in the values array is produced at the output. Whenever the iteration count does not match a value in the indexes array, an interpolation of the values is produced at the output.

Output type is DoubleToken.

Since:
Ptolemy II 0.3
Version:
$Id: Interpolator.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Sarah Packman, Yuhong Xiong
See Also:
Interpolation, Serialized Form
Accepted Rating:
Yellow (yuhong)
Proposed Rating:
Yellow (yuhong)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private  int[] _indexes
           
private  Interpolation _interpolation
           
private  int _iterationCount
           
private  double[] _values
           
 Parameter indexes
          The indexes at which the specified values will be produced.
 Parameter order
          The order of interpolation for non-index iterations.
 Parameter period
          The period of the reference values.
 Parameter values
          The values that will be produced at the specified indexes.
 
Fields inherited from class ptolemy.actor.lib.LimitedFiringSource
_firingCountLimit, firingCountLimit
 
Fields inherited from class ptolemy.actor.lib.Source
output, trigger
 
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
Interpolator(CompositeEntity container, java.lang.String name)
          Construct an actor with the specified container and name.
 
Method Summary
 void attributeChanged(Attribute attribute)
          Check the validity of the parameter.
 java.lang.Object clone(Workspace workspace)
          Clone the actor into the specified workspace.
 void fire()
          Output the value at the current iteration count.
 void initialize()
          Set the iteration count to zero.
 boolean postfire()
          Update the iteration counter, then call the super class method.
 
Methods inherited from class ptolemy.actor.lib.Source
prefire
 
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.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.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

indexes

public Parameter indexes
The indexes at which the specified values will be produced. This parameter is an array of integers, with default value {0, 1}.


order

public Parameter order
The order of interpolation for non-index iterations. This parameter must contain an IntToken.


period

public Parameter period
The period of the reference values. This parameter must contain an IntToken.


values

public Parameter values
The values that will be produced at the specified indexes. This parameter is an array, with default value {1.0, 0.0}.


_indexes

private transient int[] _indexes

_iterationCount

private int _iterationCount

_interpolation

private Interpolation _interpolation

_values

private transient double[] _values
Constructor Detail

Interpolator

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

Parameters:
container - The container.
name - The name of this actor.
Throws:
IllegalActionException - If the entity 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
Check the validity of the parameter.

Overrides:
attributeChanged in class LimitedFiringSource
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the argument is the values parameter and it does not contain an one dimensional array; or the argument is the indexes parameter and it does not contain an one dimensional array or is not increasing and non-negative; or the argument is the period parameter and is negative; or the argument is the order parameter and the order is not supported by the Interpolation class.

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 initializes private variables. public members to the parameters of the new actor.

Overrides:
clone in class AtomicActor
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
Output the value at the current iteration count. The output is one of the reference values if the iteration count matches one of the indexes, or is interpolated otherwise.

Specified by:
fire in interface Executable
Overrides:
fire in class Source
Throws:
IllegalActionException - If the values and indexes parameters do not contain arrays of the same length, or the period is not 0 and not greater than the largest index.

initialize

public void initialize()
                throws IllegalActionException
Set the iteration count to zero.

Specified by:
initialize in interface Initializable
Overrides:
initialize in class LimitedFiringSource
Throws:
IllegalActionException - If the super class throws it.

postfire

public boolean postfire()
                 throws IllegalActionException
Update the iteration counter, then call the super class method.

Specified by:
postfire in interface Executable
Overrides:
postfire in class LimitedFiringSource
Returns:
A boolean returned by the super class method.
Throws:
IllegalActionException - If the super class throws it.