ptolemy.actor.lib.conversions
Class DoubleToFix
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.Transformer
ptolemy.actor.lib.conversions.Converter
ptolemy.actor.lib.conversions.DoubleToFix
- 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 DoubleToFix
- extends Converter
This actor converts a DoubleToken to a FixToken with a specified
precision. Note that this conversion is lossy, in that the output
is an approximation of the input. The approximation can be
constructed using a variety of rounding and overflow strategies.
The precision of the output is given by the precision parameter,
which is an integer matrix of the form [m, n], where
the total number of bits in the output is m, of which
n are integer bits. The default precision is [16, 2], which means
that an output has 16 bits, of which 2 bits represent the
integer part.
The rounding strategy is defined by the rounding parameter and
defaults to nearest (or half_floor), selecting the nearest
representable value. The floor value nearer to minus infinity is used
for values half way between representable values. Other strategies
such as truncate are described under ptolemy.math.Rounding.
The overflow strategy is defined by the overflow parameter and
defaults to saturate (or clip). Out of range values are
saturated to the nearest representable value. Other strategies
such as modulo are described under ptolemy.math.Overflow.
- Since:
- Ptolemy II 0.4
- Version:
- $Id: DoubleToFix.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Bart Kienhuis, Contributor: Edward A. Lee, Ed.Willink,
- See Also:
FixToken
,
Overflow
,
Precision
,
Rounding
,
Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Constructor Summary |
DoubleToFix(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary |
void |
attributeChanged(Attribute attribute)
Override the base class to set locally cached variables. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
fire()
Read at most one token from the input and output the converted
fixed-point value with the precision given by the
precision parameter, overflow strategy given by the
overflow parameter, and rounding strategy given by the
rounding parameter. |
boolean |
prefire()
Return false if the input port has no token, otherwise return
what the superclass returns (presumably true). |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, 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 |
precision
public Parameter precision
- The precision of the output fixed-point number, which is represented
by a 2-element integer matrix.
overflow
public StringAttribute overflow
- The overflow strategy used, such as "saturate" or "modulo".
rounding
public StringAttribute rounding
- The rounding strategy used, such as "nearest" or "truncate".
_quantization
private FixPointQuantization _quantization
DoubleToFix
public DoubleToFix(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
- Override the base class to set locally cached variables.
- Overrides:
attributeChanged
in class NamedObj
- Parameters:
attribute
- The attribute that changed.
- Throws:
IllegalActionException
- If the parameter value is invalid.
clone
public java.lang.Object clone(Workspace workspace)
throws java.lang.CloneNotSupportedException
- Clone the actor into the specified workspace.
- 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
- Read at most one token from the input and output the converted
fixed-point value with the precision given by the
precision parameter, overflow strategy given by the
overflow parameter, and rounding strategy given by the
rounding parameter.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If there is no director.
prefire
public boolean prefire()
throws IllegalActionException
- Return false if the input port has no token, otherwise return
what the superclass returns (presumably true).
- Specified by:
prefire
in interface Executable
- Overrides:
prefire
in class AtomicActor
- Returns:
- True if this actor is ready for firing, false otherwise.
- Throws:
IllegalActionException
- If there is no director.