|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectptolemy.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.comm.HuffmanBasic
public class HuffmanBasic
Given a probability distribution, generate the Huffman code book. The probability distribution is given by the pmf parameter. The corresponding alphabet is given by the alphabet parameter. The code book is in a format of an array of strings, each string consists of '0' and '1's. The code book is sent to the huffmanCodeBook output port.
Red (cxh) |
Red (zhouye) |
Nested Class Summary | |
---|---|
static class |
HuffmanBasic.Node
A class that defines the node in binary tree that is used to construct the codebook of Huffman code. |
Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
---|
Entity.ContainedObjectsIterator |
Field Summary | |
---|---|
protected java.lang.String[] |
_codeBook
The huffman code book. |
protected boolean |
_parametersInvalid
Flag that indicates if the parameters are invalid. |
protected double[] |
_pmf
The probability mass function. |
Parameter |
alphabet
The alphabet of the input. |
TypedIOPort |
huffmanCodeBook
A port that produces the Huffman code book generated based on the probability mass function. |
Parameter |
pmf
The probability mass function. |
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 | |
---|---|
HuffmanBasic(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary | |
---|---|
private HuffmanBasic.Node |
_findMinNode(java.util.LinkedList list)
Find the node with the minimum probability value in the given linked list. |
private void |
_setCode(HuffmanBasic.Node node,
java.lang.String[] codeBook)
Set the Huffman codeword for the given node and all its children. |
void |
attributeChanged(Attribute attribute)
If the attribute being changed is pmf, then verify all the elements are positive and their sum is 1.0. |
java.lang.Object |
clone(Workspace workspace)
Override the base class to set type constraints. |
void |
fire()
Generate the Huffman codebook for the given pmf, and encode the input into booleans and send them to the output port. |
java.lang.String[] |
generateCodeBook(double[] pmf)
Generate the Huffman code book given the probability mass function. |
void |
initialize()
Initialize the actor by resetting the _parametersInvalid to true. |
Methods inherited from class ptolemy.actor.TypedAtomicActor |
---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
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 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, postfire, prefire, 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 |
---|
public Parameter pmf
public Parameter alphabet
public TypedIOPort huffmanCodeBook
protected java.lang.String[] _codeBook
protected boolean _parametersInvalid
protected double[] _pmf
Constructor Detail |
---|
public HuffmanBasic(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container
- The container.name
- The name of this actor.
IllegalActionException
- If the entity cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.Method Detail |
---|
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
clone
in class AtomicActor
workspace
- The workspace for the new object.
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
public void attributeChanged(Attribute attribute) throws IllegalActionException
attributeChanged
in class NamedObj
attribute
- The attribute that changed.
IllegalActionException
- If any element in pmf
is non-positive or the sum is not 1.0.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor
IllegalActionException
- Not thrown in this base class.public java.lang.String[] generateCodeBook(double[] pmf)
pmf
- The probability mass function.
public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor
IllegalActionException
- If the parent class throws it.private HuffmanBasic.Node _findMinNode(java.util.LinkedList list)
list
- The given linked list.
private void _setCode(HuffmanBasic.Node node, java.lang.String[] codeBook)
node
- The given node.codeBook
- The code book to be generated.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |