ptolemy.domains.sdf.lib
Class MatrixJoin
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.sdf.lib.SDFTransformer
ptolemy.domains.sdf.lib.MatrixJoin
- 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 MatrixJoin
- extends SDFTransformer
This actor joins matrices into a single matrix by tiling.
It reads N*M input matrices from the input port, where N is
the value of the rows parameter, and M is
the value of the columns parameter. The matrices
read are arranged left-to-right,
top-to-bottom, in a raster scan pattern.
For example, if rows = columns = 2, then on
each firing, four matrices, A, B, C, D, will be read from
the input channel. Assuming A is the first one read, then
the output matrix will be a matrix arranged as follows:
A B
C D
The size of the output depends on the matrices in the top row
and left column. That is, in the above examples, the number of
columns in the output will equal the sum of the number of columns
in A and B. The number of rows will equal the sum of the number
of rows in A and C. The matrices are tiled in raster-scan order,
first A, then B, then C, and then D. Gaps are zero filled,
and overlaps are overwritten, where later matrices in the raster-scan
order overwrite earlier matrices. For example, if B has more rows
than A, then the bottom rows of B will be overwritten by rows of D.
- Since:
- Ptolemy II 6.1
- Version:
- $Id: MatrixJoin.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Edward Lee
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Field Summary |
Parameter |
columns
The number of matrices to arrange left to right on the output. |
Parameter |
rows
The number of matrices to arrange top to bottom on 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 |
Constructor Summary |
MatrixJoin(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary |
void |
attributeChanged(Attribute attribute)
Ensure that the rows and columns parameters are both positive. |
void |
fire()
Consume the inputs and produce the output matrix. |
boolean |
prefire()
Return true if each input channel has enough tokens for this actor to
fire. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, 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 |
columns
public Parameter columns
- The number of matrices to arrange left to right on the output.
This is an integer that defaults to 1.
rows
public Parameter rows
- The number of matrices to arrange top to bottom on the output.
This is an integer that defaults to 1.
MatrixJoin
public MatrixJoin(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
- Ensure that the rows and columns parameters are both positive.
- Overrides:
attributeChanged
in class NamedObj
- Parameters:
attribute
- The attribute that has changed.
- Throws:
IllegalActionException
- If the parameters are out of range.
fire
public void fire()
throws IllegalActionException
- Consume the inputs and produce the output matrix.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If not enough tokens are available.
prefire
public boolean prefire()
throws IllegalActionException
- Return true if each input channel has enough tokens for this actor to
fire. The number of tokens required is the value of the columns parameter.
- Specified by:
prefire
in interface Executable
- Overrides:
prefire
in class SDFTransformer
- Returns:
- boolean True if there are enough tokens at the input port
for this actor to fire.
- Throws:
IllegalActionException
- If the hasToken() query to the
input port throws it.- See Also:
IOPort.hasToken(int, int)