ptolemy.actor.lib
Class TrigFunction
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.TrigFunction
- 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 TrigFunction
- extends Transformer
Produce an output token on each firing with a value that is
equal to the specified trigonometric function of the input.
The input and output types are DoubleToken. The functions
are exactly those in the java.lang.Math class. They are:
- acos: The arc cosine of an angle, in the range from
0.0 through pi. If the argument is NaN or its absolute value is
greater than 1, then the result is NaN.
- asin: The arc sine of an angle, in the range of
-pi/2 through pi/2. If the argument is NaN or its absolute
value is greater than 1, then the result is NaN.
If the argument is positive zero, then the result is positive zero;
if the argument is negative zero, then the result is negative zero.
- atan: The arc tangent of an angle, in the range of
-pi/2 through pi/2. If the argument is NaN, then the result is NaN.
If the argument is positive zero, then the result is positive zero;
if the argument is negative zero, then the result is negative zero.
- cos: The trigonometric cosine of an angle.
If the argument is NaN or an infinity, then the result is NaN.
- sin: The trigonometric sine of an angle.
If the argument is NaN or an infinity, then the result is NaN.
- tan: The trigonometric tangent of an angle.
If the argument is NaN or an infinity, then the result is NaN.
If the argument is positive zero, then the result is positive zero;
if the argument is negative zero, then the result is negative zero
(NOTE: The above documentation is adapted from the class documentation
for java.lang.Math as released in JDK 1.3).
(NOTE: This actor will eventually be augmented to do hyperbolic trig
functions, and possibly to operate on matrices and arrays).
The following functions in java.lang.Math are implemented elsewhere:
- abs: AbsoluteValue actor.
- atan2: CartesianToPolar actor.
- ceil: Round actor
- exp: MathFunction actor.
- floor: Round actor
- remainder: MathFunction actor.
- log: MathFunction actor.
- max: Maximum actor.
- min: Minimum actor.
- round: Round actor.
- sqrt: MathFunction actor.
- toDegrees: Scale actor (with factor 180.0/PI).
- toRadians: Scale actor (with factor PI/180.0).
- Since:
- Ptolemy II 1.0
- Version:
- $Id: TrigFunction.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Edward A. Lee
- See Also:
CartesianToPolar
,
AbsoluteValue
,
UnaryMathFunction
,
Scale
,
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 |
TrigFunction(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary |
private double |
_doFunction(double in)
Calculate the function on the given argument. |
void |
attributeChanged(Attribute attribute)
Override the base class to determine which function is being
specified. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
fire()
Compute the specified trigonometric function of the input. |
int |
iterate(int count)
Invoke a specified number of iterations of this actor. |
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.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 |
function
public StringParameter function
- The function to compute. This is a string-valued attribute
that defaults to "sin".
_resultArray
private DoubleToken[] _resultArray
_function
private int _function
_ACOS
private static final int _ACOS
- See Also:
- Constant Field Values
_ASIN
private static final int _ASIN
- See Also:
- Constant Field Values
_ATAN
private static final int _ATAN
- See Also:
- Constant Field Values
_COS
private static final int _COS
- See Also:
- Constant Field Values
_SIN
private static final int _SIN
- See Also:
- Constant Field Values
_TAN
private static final int _TAN
- See Also:
- Constant Field Values
TrigFunction
public TrigFunction(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 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
- 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
- Compute the specified trigonometric 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
- Invoke a specified number of iterations of this actor. Each
iteration computes the trigonometric function specified by the
function attribute 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
- If iterating cannot be
performed.
_doFunction
private double _doFunction(double in)
- Calculate the function on the given argument.
- Parameters:
in
- The input value.
- Returns:
- The result of applying the function.