ptolemy.actor.lib
Class DiscreteRandomSource
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.Source
ptolemy.actor.lib.RandomSource
ptolemy.actor.lib.DiscreteRandomSource
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class DiscreteRandomSource
- extends RandomSource
An actor that produces tokens with a given probability mass function.
The probability mass function is a parameter, pmf, of this
actor. The pmf must be an array that contains entries that
are all between 0.0 and 1.1, and sum to 1.0. By default, pmf is
initialized to {0.5, 0.5}.
Output values are selected at random from the values parameter,
which contains an ArrayToken. This array must have the same length as
pmf. Thus the i-th token in values has probability
pmf[i]. The output port has the same type as the elements of
the values array. The default values are {0, 1}, which are
integers.
- Since:
- Ptolemy II 1.0
- Version:
- $Id: DiscreteRandomSource.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Jeff Tsay, Yuhong Xiong
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Field Summary |
private Token |
_current
Random value calculated in prefire(). |
private double[] |
_pmf
Cache of probability mass function. |
Parameter |
pmf
The probability mass function. |
Parameter |
values
The values to be sent to the output. |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
protected void |
_generateRandomNumber()
Choose one of the tokens in values randomly, using
the pmf parameter to select one. |
void |
attributeChanged(Attribute attribute)
If the specified attribute is pmf, then check that its
entries are all between zero and one, and that they add to one,
and that its dimension is correct. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
fire()
Output the token selected in the prefire() method. |
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.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 |
pmf
public Parameter pmf
- The probability mass function.
This parameter contains an array of doubles, with default value
{0.5, 0.5}.
values
public Parameter values
- The values to be sent to the output.
This parameter contains an ArrayToken, initially with value
{0, 1} (an int array).
_current
private Token _current
- Random value calculated in prefire().
_pmf
private transient double[] _pmf
- Cache of probability mass function.
DiscreteRandomSource
public DiscreteRandomSource(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.
attributeChanged
public void attributeChanged(Attribute attribute)
throws IllegalActionException
- If the specified attribute is pmf, then check that its
entries are all between zero and one, and that they add to one,
and that its dimension is correct.
- Overrides:
attributeChanged
in class RandomSource
- Parameters:
attribute
- The attribute that changed.
- Throws:
IllegalActionException
- If the requirements are
violated.
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 sets the parameter public members to refer
to the parameters of the new actor.
- Overrides:
clone
in class RandomSource
- 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 token selected in the prefire() method.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class RandomSource
- Throws:
IllegalActionException
- If there is no director.
_generateRandomNumber
protected void _generateRandomNumber()
throws IllegalActionException
- Choose one of the tokens in values randomly, using
the pmf parameter to select one. The chosen token
will be sent to the output in the fire() method.
- Specified by:
_generateRandomNumber
in class RandomSource
- Throws:
IllegalActionException
- If parameter values are incorrect.