ptolemy.actor.lib
Class MathFunction

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.MathFunction
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

Deprecated. This breaks the class mechanism. Generally, it is awkward to have the ports of an actor depend on parameter values. Use UnaryMathFunction instead.

public class MathFunction
extends TypedAtomicActor

Produce an output token on each firing with a value that is equal to the specified math function of the input. The input and output types are DoubleToken. The functions are a subset of those in the java.lang.Math class. They are:

NOTES:

1. Some functions like exp, log, square, and sqrt act on a single operand only. Other functions like modulo act on two operands. The actor acquires a second input when the function is changed to modulo, and loses the input when the function is changed back.

2. There is an alternative to using the MathFunction.modulo() method If you want to use the IEEE remainder standard, use the Remainder actor.

Since:
Ptolemy II 1.0
Version:
$Id: MathFunction.java 57040 2010-01-27 20:52:32Z cxh $
Author:
C. Fong
See Also:
AbsoluteValue, Remainder, Scale, TrigFunction, Serialized Form
Accepted Rating:
Yellow (janneck)
Proposed Rating:
Yellow (chf)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private static int _EXP
          Deprecated.  
private  int _function
          Deprecated.  
private static int _LOG
          Deprecated.  
private static int _MODULO
          Deprecated.  
private  DoubleToken[] _resultArray
          Deprecated.  
private static int _SIGN
          Deprecated.  
private static int _SQRT
          Deprecated.  
private static int _SQUARE
          Deprecated.  
 TypedIOPort firstOperand
          Deprecated. The port for the first operand.
 StringParameter function
          Deprecated. The function to compute.
 TypedIOPort output
          Deprecated. Output port.
 TypedIOPort secondOperand
          Deprecated. The port for the second operand, if it is needed.
 
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
MathFunction(CompositeEntity container, java.lang.String name)
          Deprecated. Construct an actor with the given container and name.
 
Method Summary
private  void _createSecondPort()
          Deprecated. Create the second port needed by modulo function
private  double _doFunction(double input1, double input2)
          Deprecated. Calculate the function on the given argument.
 void attributeChanged(Attribute attribute)
          Deprecated. Override the base class to determine which function is being specified.
 java.lang.Object clone(Workspace workspace)
          Deprecated. Clone the actor into the specified workspace.
 void fire()
          Deprecated. Consume at most one input token from each input channel, and compute the specified math function of the input.
 int iterate(int count)
          Deprecated. Invoke a specified number of iterations of this actor.
 
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, initialize, inputPortList, isFireFunctional, isStrict, newReceiver, outputPortList, postfire, prefire, 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, postfire, prefire, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, initialize, 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

function

public StringParameter function
Deprecated. 
The function to compute. This is a string-valued attribute that defaults to "exp".


firstOperand

public TypedIOPort firstOperand
Deprecated. 
The port for the first operand. The port has type BaseType.DOUBLE


secondOperand

public TypedIOPort secondOperand
Deprecated. 
The port for the second operand, if it is needed. The port has type BaseType.DOUBLE


output

public TypedIOPort output
Deprecated. 
Output port. The port has type BaseType.DOUBLE


_resultArray

private DoubleToken[] _resultArray
Deprecated. 

_function

private int _function
Deprecated. 

_EXP

private static final int _EXP
Deprecated. 
See Also:
Constant Field Values

_LOG

private static final int _LOG
Deprecated. 
See Also:
Constant Field Values

_MODULO

private static final int _MODULO
Deprecated. 
See Also:
Constant Field Values

_SIGN

private static final int _SIGN
Deprecated. 
See Also:
Constant Field Values

_SQUARE

private static final int _SQUARE
Deprecated. 
See Also:
Constant Field Values

_SQRT

private static final int _SQRT
Deprecated. 
See Also:
Constant Field Values
Constructor Detail

MathFunction

public MathFunction(CompositeEntity container,
                    java.lang.String name)
             throws NameDuplicationException,
                    IllegalActionException
Deprecated. 
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.
Method Detail

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
Deprecated. 
Override the base class to determine which function is being specified.

Overrides:
attributeChanged in class NamedObj
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the function is not recognized.

clone

public java.lang.Object clone(Workspace workspace)
                       throws java.lang.CloneNotSupportedException
Deprecated. 
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
Deprecated. 
Consume at most one input token from each input channel, and compute the specified math function of the input. If there is no input, then produce no output.

Specified by:
fire in interface Executable
Overrides:
fire in class AtomicActor
Throws:
IllegalActionException - If there is no director.

iterate

public int iterate(int count)
            throws IllegalActionException
Deprecated. 
Invoke a specified number of iterations of this actor. Each iteration computes the math function specified by the function parameter on a single token. An invocation of this method therefore applies the function to count successive input tokens.

This method should be called instead of the usual prefire(), fire(), postfire() methods when this actor is used in a domain that supports vectorized actors. This leads to more efficient execution.

Specified by:
iterate in interface Executable
Overrides:
iterate in class AtomicActor
Parameters:
count - The number of iterations to perform.
Returns:
COMPLETED if the actor was successfully iterated the specified number of times. Otherwise, return NOT_READY, and do not consume any input tokens.
Throws:
IllegalActionException - Not thrown in this base class

_createSecondPort

private void _createSecondPort()
                        throws NameDuplicationException,
                               IllegalActionException
Deprecated. 
Create the second port needed by modulo function

Throws:
NameDuplicationException
IllegalActionException

_doFunction

private double _doFunction(double input1,
                           double input2)
Deprecated. 
Calculate the function on the given argument.

Parameters:
input1 - The first input value.
input2 - The second input value.
Returns:
The result of applying the function.